diff --git a/.github/workflows/demo-reproducibility.yml b/.github/workflows/demo-reproducibility.yml new file mode 100644 index 00000000..789b05e4 --- /dev/null +++ b/.github/workflows/demo-reproducibility.yml @@ -0,0 +1,51 @@ +name: Local demo reproducibility + +on: + pull_request: + paths: + - .github/workflows/demo-reproducibility.yml + - scripts/demo/reproduce_fresh.py + - scripts/demo/browser_smoke.cjs + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: demo-reproduction-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: false + +jobs: + fresh-search-demo: + runs-on: ubuntu-24.04 + timeout-minutes: 45 + env: + EMBEDDING_CONTAINER_CPUS: "2.0" + steps: + - uses: actions/checkout@v7 + with: + persist-credentials: false + - uses: actions/setup-java@v6 + with: + distribution: temurin + java-version: "17" + - uses: actions/setup-node@v7 + with: + node-version: "22" + - name: Prepare isolated Chromium dependency + env: + DEMO_BROWSER_MODULE: ${{ runner.temp }}/docgrid-demo-browser/node_modules/playwright + run: | + npm install --prefix "$RUNNER_TEMP/docgrid-demo-browser" --no-save --package-lock=false playwright@1.64.1 + node "$DEMO_BROWSER_MODULE/cli.js" install --with-deps chromium + - name: Reproduce start, verify, browser and stop with real BGE-M3 + env: + DEMO_BROWSER_MODULE: ${{ runner.temp }}/docgrid-demo-browser/node_modules/playwright + run: python3 scripts/demo/reproduce_fresh.py + - name: Preserve redacted per-purpose evidence + if: always() + uses: actions/upload-artifact@v7 + with: + name: local-demo-reproduction-${{ github.run_id }}-${{ github.run_attempt }} + path: .demo/reproduction/ + if-no-files-found: warn diff --git a/README.md b/README.md index 7403f7c6..5f2a5605 100644 --- a/README.md +++ b/README.md @@ -336,31 +336,20 @@ python3 scripts/demo/seed_demo_corpus.py 실패 종료합니다. 실제 생성 답변·인용까지 검사하려면 `--scope rag`를 지정합니다. 실행별 원장은 `.demo/reports//`에 저장하며, 자세한 판정은 [예제 검증 안내](examples/demo-corpus/README.md)를 참고하세요. -아래는 판정 개선 전인 2026-10-16 새 DB에서 실행한 당시 출력입니다(MacBook Pro M5, BGE-M3 준비 완료, -Ollama 미실행). 현재 출력 형식과 다르며, `…`는 생략한 부분입니다. - -```text -[계정] demo@docgrid.local 회원가입 완료 -[계정] demo@docgrid.local 로그인 완료 -[업로드] 1/15 01-remote-work-policy.pdf → 문서 3 -… -[업로드] 15/15 15-club-support.hwpx → 문서 17 -[인덱싱] INDEXED 0/15 · 처리 중 0 · 대기 15 · 실패 0 (0.1초) -… -[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (22.4초) - -== 요약 == -업로드: 15/15건 성공 (실패 0건, 이미 INDEXED였던 기존 문서 0건) -INDEXED: 15건 · 인덱싱 실패: 0건 · 시간 안에 끝나지 않음: 0건 -소요 시간: 업로드 1.2초 · 전체 23.6초 - -== 예시 검색 == -질문: 재택근무는 일주일에 며칠까지 할 수 있고 언제까지 신청해야 하나요? - 1. 재택근무 운영 규정 (유사도 74.8%) 재택근무 운영 규정 데모랩 주식회사(가상 회사) 시연용 예제 문서 · 시행일 2026년 1월 1일 제1조(목적) 이 규정은 데… - 2. 유연근무제 운영 지침 (유사도 62.6%) 유연근무제 운영 지침 데모랩 주식회사(가상 회사) 시연용 예제 문서 · 시행일 2026년 1월 1일 1. 시차출퇴근제 출근 시… - 3. 연차휴가 사용 지침 (유사도 52.4%) 연차휴가 사용 지침 데모랩 주식회사(가상 회사) 시연용 예제 문서 · 시행일 2026년 1월 1일 1. 연차 발생 연차휴가는 … -[RAG] LLM 답변 생성 실패 → 대체 답변 표시(2.0초 대기): AI 답변 생성이 지연되고 있습니다. 가장 관련도 높은 문서에서 다음 내용을 찾았습니다: "재택근무 운영 규정 … 제3조(재택근무 횟수) 1. 재택근무는 주 2일까지 허용한다. … -``` +2026-10-18 독립 GitHub hosted 환경의 실제 PostgreSQL·Valkey·BGE-M3·백엔드·프런트엔드 회차에서 +업로드·INDEXED **15/15**, 기대 검색 **3/3**, 다운로드 해시 **15/15**가 통과했습니다. 같은 계정 재실행과 +종료 후 재기동에서도 문서 ID **15/15**가 유지됐으며, Chromium 로그인·검색·다운로드도 통과했습니다. + +| 같은 실행기의 명령 | 관측 소요 시간 | +| --- | --- | +| 첫 start: 의존성·이미지·모델 준비 포함 | 196.632초 | +| 첫 verify | 24.135초 | +| 같은 계정 verify 재실행 | 3.072초 | +| 데이터·모델 캐시를 보존한 start | 26.061초 | + +이 수치는 해당 실행기의 개발 시연 기동·검증 시간이며 운영 복구 시간이나 성능 우위를 뜻하지 않습니다. +실제 Ollama 생성 답변은 실행하지 않았습니다. 준비 오류·중단·브라우저 진단 회차와 최종 통과 근거는 +[독립 환경 검증 기록](docs/test-results/demo-fresh-20261018/README.md)에 분리해 두었습니다. `--scope rag`에서 Ollama와 `qwen2.5:7b`가 준비되어 있으면 실제 답변·인용 검사 결과를 확인할 수 있습니다. 같은 계정이나 새로 가입한 계정으로 웹(`http://localhost:3000`)에 로그인해 다음 질문을 검색해 봅니다. diff --git a/docs/design/local-demo-lifecycle.md b/docs/design/local-demo-lifecycle.md index b1370fdf..0f33fae9 100644 --- a/docs/design/local-demo-lifecycle.md +++ b/docs/design/local-demo-lifecycle.md @@ -49,7 +49,8 @@ Ollama가 없으면 생성 답변은 실패 대체 경로를 사용한다. searc ```text stop 또는 start 도중 취소 → PID + 시작 시각 + 명령 fingerprint + 프로세스 그룹 대조 - → 소유 그룹 TERM → 확인된 잔존 자식만 필요시 KILL + → 부모 계보로 등록한 분리 자식 JVM의 현재 식별정보 재조회 + → 등록된 자식 PID와 소유 그룹 TERM → 확인된 잔존 자식만 필요시 KILL → 저장된 Docker endpoint·Engine·컨테이너 ID·Compose 작업공간 대조 → 이번 실행이 시작한 서비스만 stop → API·관리·Web 포트 해제 확인 @@ -62,6 +63,9 @@ DB 볼륨·원본·모델 캐시·이전 실행 기록 → 보존 ``` 자식 supervisor가 먼저 PID 파일을 기록해 부모 상태 저장 중단에도 회수할 수 있게 한다. +Gradle의 단발성 Daemon은 별도 프로세스 그룹을 만들 수 있다. 따라서 supervisor는 살아 있는 부모 계보에서 +확인한 자식의 PID·시작 시각·명령 fingerprint를 주기적으로 기록한다. 실제 listener가 이 기록과 일치하는지도 +확인하며, 분리된 그룹 전체를 임의로 소유한다고 간주하지 않는다. 종료 직전에도 계보를 재조회한다. 기동 중 중단된 세션은 컨테이너 전후 상태도 다시 대조한다. 같은 PID만으로 종료하지 않는다. READY 기록이 있어도 status는 실제 준비 상태를 다시 검사하며, 검증 실패 후에는 서버를 남겨 원인을 확인할 수 있다. diff --git a/docs/test-results/demo-fresh-20261018/README.md b/docs/test-results/demo-fresh-20261018/README.md new file mode 100644 index 00000000..9fc18adf --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/README.md @@ -0,0 +1,132 @@ +# 독립 환경 로컬 시연 재현 + +## 목적 + +새 사용자가 통합 명령으로 시작·검증·종료를 재현할 수 있는지 실제 서비스에서 확인한다. +시연 성공 판정과 종료 소유권을 함께 확인하며, 로컬 PostgreSQL 결과를 OpenSQL HA 검증으로 확대하지 않는다. + +## 테스트 환경 + +- GitHub hosted Ubuntu 24.04 임시 실행기, Java 17·Node 22·Python 3. +- PostgreSQL 17·pgvector 0.8.1, Valkey, 실제 BAAI/bge-m3 CPU 모델, Gradle 백엔드, 프런트엔드, Chromium. +- Embedding 컨테이너 CPU 상한 2.0, 기본 메모리 상한 4 GiB. 이는 호스트 전체 사양이나 처리량 벤치마크 수치가 아니다. +- 예제 15건: PDF 5·DOCX 5·HWPX 5. 기대 검색 질문 3개. 실제 Ollama는 기동하지 않는다. +- 개인 컴퓨터의 기존 Docker 자원이나 GCP 공개 서비스는 사용하지 않는다. +- 별도 macOS 점검은 실제 Gradle 도움말·제어 프로세스 계약 검사다. macOS 전체 서비스 E2E와 구분한다. + +## 테스트 방법 + +```bash +python3 scripts/demo/reproduce_fresh.py +``` + +이 harness는 GitHub hosted 실행기에서만 실행한다. 일반 사용자는 README의 `scripts/demo.py`를 사용한다. + +```text +그림 1 — 실제 서비스와 검증 경로 + +빈 컨테이너·볼륨 확인 → start + ├─ PostgreSQL·Valkey·BGE-M3 준비 + ├─ Gradle 백엔드 → 실제 readiness·listener 확인 + └─ 프런트엔드 → API 프록시 대조 + │ +verify → 프런트엔드 프록시 ─┴→ 가입·업로드·인덱싱·검색·원본 다운로드 + └─ 같은 계정 재실행 → 이전 원장과 문서 ID 비교 +Chromium → 로그인 UI → 질문 전송 → 근거 문서 → 다운로드 해시 +``` + +검증기는 실제 HTTP 프록시와 모델을 사용한다. search 범위의 생성 답변은 미실행이며, 제어 모델로 대신 성공시키지 않는다. + +```text +그림 2 — 분리 JVM의 소유권 점검 + +통합 명령 → supervisor 전용 그룹 → Gradle launcher + └─ 단발성 JVM: 별도 그룹 가능 + └─ Spring Boot JVM·실제 API 포트 + +관측된 부모 계보 → PID·시작 시각·명령 fingerprint 등록 +준비 판정 → 실제 listener가 소유 그룹 또는 등록된 PID인가? +종료 → 계보 재조회 → 일치하는 자식 PID만 종료 → 그룹·포트 해제 확인 +``` + +그룹 ID 하나에 의존하던 가정은 실제 Gradle 점검에서 성립하지 않았다. 확인된 계보와 개별 식별정보를 사용하도록 보완했다. + +## 관측 결과 + +전체 회차 [39105569049](https://github.com/DocGrid/docgrid/actions/runs/39105569049)가 통과했다. +실행 소스 head는 `dbf782c`, 실행기가 체크아웃한 PR 병합 미리보기는 `a62175ee3e4621c6411feb3af5f4ed3663802b6c`다. +정상 브라우저 컨텍스트 1개와 JavaScript 비활성 SSR 경계 컨텍스트 1개를 사용했다. + +| 목적 | 명령·방법 | 실제 결과 | 근거 | +| --- | --- | --- | --- | +| 최초 기동 | `scripts/demo.py start --timeout 1200` | 196.632초, 코드 0 | [로그](runs/39105569049-1/cold-start.log) | +| 첫 시연 | `scripts/demo.py verify --timeout 900` | 24.135초, 업로드·INDEXED 15/15, 검색 3/3, 해시 15/15 | [원장](runs/39105569049-1/first-result/summary.json) | +| 같은 계정 재실행 | 같은 verify | 3.072초, 문서 ID 15/15 일치, 필수 단계 통과 | [원장](runs/39105569049-1/replay-result/summary.json) | +| SSR 인증 경계 | 실제 Chromium, JavaScript 비활성 | POST fallback·초기 제출 비활성 모두 확인 | [별도 판정](runs/39105569049-1/browser/ssr-auth.json) | +| 사용자 경로 | 실제 Chromium 로그인→질문→문서→다운로드 | 3.782초, 세 기능 통과, 원본 52,683 bytes SHA-256 일치 | [판정](runs/39105569049-1/browser/summary.json), [화면](runs/39105569049-1/browser/search.png) | +| 실제 준비·중복 기동 | status·활성 세션 start | 모두 코드 0, 기존 세션 재사용 | [상태](runs/39105569049-1/ready-status.log), [재사용](runs/39105569049-1/reuse-start.log) | +| 중복 start | 첫 기동 중 두 번째 start | 코드 1, 기대한 거부 | [로그](runs/39105569049-1/concurrent-start.log) | +| 준비 부족 | 닫힌 임베딩 주소로 start | 코드 1, 정리 뒤 포트·컨테이너 중지 확인 | [로그](runs/39105569049-1/missing-provider.log) | +| 기동 도중 중단 | backend 프로세스 등록 직후 부모에 SIGTERM | 코드 130, 정리 확인 | [로그](runs/39105569049-1/interrupted-start.log) | +| 캐시 재기동 | stop 뒤 start | 26.061초, 코드 0 | [로그](runs/39105569049-1/warm-start.log) | +| 데이터 보존 | 재기동 뒤 verify | 3.626초, 필수 단계·문서 ID 15/15 통과 | [원장](runs/39105569049-1/warm-result/summary.json) | +| 종료·환경 보존 | stop·재실행·최종 상태 조회 | 소유 컨테이너 3개 중지, 포트 6개 해제, 환경 파일 2개 bytes·mtime 유지 | [전체 원장](runs/39105569049-1/summary.json) | + +전체 원장 판정은 24/24 PASS다. 이는 서로 독립인 장애 시험 24회라는 뜻이 아니라, 한 실행기의 여러 명령·관측 항목이다. +준비 부족 코드 1과 취소 코드 130은 각각 기대값과 일치해 시험 판정이 PASS이며, 제품 명령 자체가 성공 코드 0을 반환했다는 뜻은 아니다. +시간은 이 실행기의 명령 wall time이다. 모델 다운로드 단독 시간·운영 RTO·서로 다른 환경의 성능 우위로 해석하지 않는다. +생성 답변·인용 단계는 모든 search 원장에서 NOT_RUN이다. + +```text +그림 3 — 이번 회차의 상태와 보존 확인 + +빈 컨테이너·볼륨 → 첫 start 196.632초 → READY + → 첫 verify: INDEXED 15 / 기대 검색 3 / 해시 15 통과 + → 같은 계정 verify: 기존 문서 ID 15개 유지 + → Chromium: 로그인·검색·원본 해시 확인 + → stop: 컨테이너 3개 중지·포트 6개 해제 + → 준비 부족 start: 코드 1 → 정리 확인 + → 중단 start: 코드 130 → 정리 확인 + → 캐시 start 26.061초 → verify: 문서 ID·해시 유지 + → 최종 stop → 환경 파일 2개 bytes·mtime 유지 +``` + +아래는 준비·진단 회차이며, 최종 통과 회차와 합쳐 성공으로 계산하지 않는다. + +| 실행 ID | 목적·장소 | 실제 관측 | 판정 | +| --- | --- | --- | --- | +| 39103167964 | GitHub workflow 준비 | job 시작 전 설정 오류, 서비스 시험 0회 | 미실행 | +| [39103254726-1](runs/39103254726-1/summary.json) | 첫 독립 환경 회차 | 컨테이너 0·볼륨 0·환경 파일 0, 기존 이미지 6개. 동시 start는 기대한 코드 1로 거부 | 수동 중단, 전체 E2E 미완료 | +| [39104137120-1](runs/39104137120-1/summary.json) | Gradle 보완 뒤 실제 기동 | PostgreSQL·Valkey·BGE-M3 준비와 백엔드·프런트엔드 기동 로그 보존. 프런트엔드 준비 판정 대기 | 주소 바인딩 검토를 위해 수동 중단 | +| [39104533807-1](runs/39104533807-1/summary.json) | IPv4 명시 뒤 실제 모델·브라우저 회차 | 기동 265.870초, 첫 verify 35.680초, 재실행 3.527초. 인덱싱 15/15·검색 3/3·해시 15/15·문서 ID 15/15. Chromium 로그인 단계 timeout | 기능 API 검사 통과, 전체 회차 미완료 | +| [39105008958-1](runs/39105008958-1/summary.json) | 브라우저 세부 진단 | 기동 203.438초·verify 29.690초·재실행 2.475초. 로그인 버튼 클릭 뒤 기본 GET 경로로 이동해 search 이동을 45초 동안 확인하지 못함 | API 단계 통과, 브라우저 불통과 | +| [demo-gradle-process-01](demo-gradle-process-01.log) | macOS 실제 Gradle | 도움말 빌드 코드 0, 직접 자식 JVM의 그룹이 분리됨 | 기존 그룹 가정 검사 불통과 | +| [demo-gradle-process-02](demo-gradle-process-02.log) | macOS 실제 Gradle | 도움말 빌드 코드 0, 분리 자식 1개 등록 | 보완 동작 통과 | +| [demo-runtime-contract-03](demo-runtime-contract-03.log) | macOS 제어 프로세스 회귀 | 75개 중 74개 통과·1개 오류 | 부모 자연 종료 경합 확인 | +| [demo-runtime-contract-04](demo-runtime-contract-04.log) | 같은 회귀 재실행 | 75개 중 74개 통과·1개 불통과 | 종료 시점의 오래된 그룹 snapshot 확인 | +| [demo-runtime-contract-05](demo-runtime-contract-05.log) | 종료 직전 계보 재조회 반영 | 75/75, 7.293초 | 통과 | +| [demo-runtime-contract-06](demo-runtime-contract-06.log) | 미등록 쿼리 비밀값 마스킹 회귀 | 76/76, 9.168초 | 통과 | + +## 검증 과정에서 확인된 사항 + +- job 수준 env에는 runner 컨텍스트를 사용할 수 없다. step env로 이동 후 실제 job 시작을 확인했다. + [GitHub 컨텍스트 범위](https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#context-availability). +- 첫 실제 회차는 별도 Gradle 점검의 발견에 따라 중단했다. 성공한 E2E로 계산하지 않는다. + 취소 전 요약·동시 기동 로그는 보존됐지만 구성요소 전체 로그와 최종 정리 원장은 수집되지 않았다. + 이후 실행은 이미 정제된 구성요소 로그를 2초 주기로 artifact 경로에도 복사해 취소 시 손실을 줄인다. +- 분리 자식을 종료하면 부모도 곧바로 종료될 수 있다. 이전 snapshot에만 의존하지 않고 현재 계보와 그룹 해제를 확인한다. +- 프런트엔드 기본 localhost 바인딩은 IPv4 검증 주소와 다를 수 있어 `--hostname 127.0.0.1`을 명시했다. + 원래 회차의 실제 소켓 주소는 수집하지 않았으므로 IPv6가 유일한 원인이었다고 단정하지 않는다. +- 첫 완료된 API 검사 회차는 브라우저 로그인 단계에서 48.381초 뒤 timeout으로 끝났다. 로그인 세부 동작이 + 나뉘지 않은 기존 진단으로는 원인을 확정하지 못했다. 이후 입력값·토큰을 제거한 오류와 마스킹 화면을 수집한다. +- 세부 진단에서는 React onSubmit 연결 전 기본 GET 제출로 로그인 URL에 필드가 붙는 것을 확인했다. + AuthPage는 method=post를 명시하고, 클라이언트 준비 전에는 제출 버튼을 비활성화하도록 보완했다. + 실제 SSR HTML 회귀와 JavaScript 비활성 Chromium 화면에서 이 경계를 별도 검사한다. + 기존 수집 파일에서는 원문 비밀번호 쿼리 파일 0개를 확인했다. 진단 메시지의 비밀번호는 기록 전에 제거됐으며, + 이후 출력 주체가 비밀번호를 모르는 경우에도 password/token/email 쿼리를 일반 마스킹한다. +- npm ci는 종료 코드 0이었지만 기존 의존성 감사 경고 30건(low 1·moderate 6·high 23)을 출력했다. + 이번 변경에서 프런트엔드 package.json·lock 파일을 수정하지 않았다. 감사 경고 해소를 검증했다고 주장하지 않는다. +- 최초 기동 시간에는 npm·Gradle·이미지·모델 준비를 포함한다. 모델 다운로드 시간만 별도 측정했다고 표현하지 않는다. +- 같은 실행기의 캐시 재기동은 최초 실행과 구분한다. 컨테이너·볼륨이 이미 존재한 환경을 새 환경으로 세지 않는다. +- 계정 비밀번호·서명 키·인증 토큰·이메일은 기록 전에 제거한다. 브라우저 trace와 로그인 입력 화면은 저장하지 않는다. +- 실제 OpenSQL·OpenProxy HA, GCP, 실제 Ollama 답변·인용, Windows는 검증 범위 밖이다. diff --git a/docs/test-results/demo-fresh-20261018/demo-gradle-process-01.log b/docs/test-results/demo-fresh-20261018/demo-gradle-process-01.log new file mode 100644 index 00000000..8d8048e4 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-gradle-process-01.log @@ -0,0 +1,31 @@ +실행 ID: demo-gradle-process-01 +목적: 실제 Gradle 자식 JVM의 전용 프로세스 그룹 유지 확인 +환경: 로컬 Java 17·Gradle, DB·Docker 사용 없음 +합격 기준: Gradle 도움말 종료 0, 관측 자식이 같은 프로세스 그룹 +명령: python3 <로컬 검사 도구>/gradle_process_probe.py +시작 시각: 2026-10-18T15:22:03+09:00 +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <서버 주소 생략> in the Gradle documentation. +Daemon will be stopped at the end of the build + +> Task :help + +Welcome to Gradle 8.14.5. + +To run a build, run gradlew ... + +To see a list of available tasks, run gradlew tasks + +To see more detail about a task, run gradlew help --task + +To see a list of command-line options, run gradlew --help + +For more detail on using Gradle, see <서버 주소 생략> + +For troubleshooting, visit <서버 주소 생략> + +BUILD SUCCESSFUL in 2s +1 actionable task: 1 executed +{"gradleExitCode": 0, "directChildren": [{"role": "gradle-child", "sameGroup": false}]} +종료 시각: 2026-10-18T15:22:05+09:00 +종료 코드: 1 +소요 시간: 2.834초 diff --git a/docs/test-results/demo-fresh-20261018/demo-gradle-process-02.log b/docs/test-results/demo-fresh-20261018/demo-gradle-process-02.log new file mode 100644 index 00000000..8ad36126 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-gradle-process-02.log @@ -0,0 +1,31 @@ +실행 ID: demo-gradle-process-02 +목적: 실제 Gradle 분리 JVM을 부모 계보의 식별정보로 등록하는지 확인 +환경: 로컬 Java 17·Gradle, DB·Docker 사용 없음 +합격 기준: Gradle 도움말 종료 0, 분리 자식 JVM 1개 이상 등록 +명령: python3 <로컬 검사 도구>/gradle_registered_probe.py +시작 시각: 2026-10-18T15:26:20+09:00 +To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <서버 주소 생략> in the Gradle documentation. +Daemon will be stopped at the end of the build + +> Task :help + +Welcome to Gradle 8.14.5. + +To run a build, run gradlew ... + +To see a list of available tasks, run gradlew tasks + +To see more detail about a task, run gradlew help --task + +To see a list of command-line options, run gradlew --help + +For more detail on using Gradle, see <서버 주소 생략> + +For troubleshooting, visit <서버 주소 생략> + +BUILD SUCCESSFUL in 1s +1 actionable task: 1 executed +{"gradleExitCode": 0, "registeredSeparateChildren": 1} +종료 시각: 2026-10-18T15:26:22+09:00 +종료 코드: 0 +소요 시간: 1.967초 diff --git a/docs/test-results/demo-fresh-20261018/demo-runtime-contract-03.log b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-03.log new file mode 100644 index 00000000..963b5fb1 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-03.log @@ -0,0 +1,99 @@ +실행 ID: demo-runtime-contract-03 +목적: 별도 그룹 자식 JVM 소유권과 안전한 종료 회귀 +환경: 로컬 Python 3.9.6 POSIX, 제어 HTTP 실제 프로세스, Docker 실제 기동 0회 +합격 기준: 전체 검사 통과, 분리 그룹 HTTP 자식 종료와 타 소유 기록 거부 +명령: python3 -m unittest discover -s scripts/demo -p test_*.py -v +시작 시각: 2026-10-18T15:24:52+09:00 +test_changed_configuration_refuses_before_database_or_upload (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_identity_never_kills_live_process (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_from_another_owner_is_refused (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_recovers_parent_missing_process_map (test_demo_runtime.RuntimeContractTest) ... ok +test_concurrent_command_lock_refuses_second_process (test_demo_runtime.RuntimeContractTest) ... ok +test_container_transition_preserves_reused_and_marks_newly_started (test_demo_runtime.RuntimeContractTest) ... ok +test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) ... ERROR +test_existing_personal_environment_files_are_preserved (test_demo_runtime.RuntimeContractTest) ... ok +test_frontend_proxy_comparison_ignores_response_timestamp (test_demo_runtime.RuntimeContractTest) ... ok +test_new_env_is_initialized_without_default_jwt (test_demo_runtime.RuntimeContractTest) ... ok +test_partial_start_failure_runs_cleanup (test_demo_runtime.RuntimeContractTest) ... ok +test_session_symlink_cannot_redirect_state_writes (test_demo_runtime.RuntimeContractTest) ... ok +test_starting_component_records_actual_group_and_listener (test_demo_runtime.RuntimeContractTest) ... ok +test_status_does_not_report_dead_ready_session_as_success (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_preserves_reused_containers (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_releases_children_and_actual_server_port (test_demo_runtime.RuntimeContractTest) ... ok +test_supervisor_redacts_before_writing (test_demo_runtime.RuntimeContractTest) ... ok +test_verify_records_use_distinct_paths (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_target_refuses_replay_before_upload (test_demo_verdict.DemoVerdictTest) ... ok +test_citation_outside_search_candidates_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_different_previous_document_id_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_download_hash_mismatch_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_empty_search_results_fail (test_demo_verdict.DemoVerdictTest) ... ok +test_event_redaction_happens_before_storage (test_demo_verdict.DemoVerdictTest) ... ok +test_existing_report_is_never_overwritten (test_demo_verdict.DemoVerdictTest) ... ok +test_full_search_scope_passes_without_rag_polling (test_demo_verdict.DemoVerdictTest) ... ok +test_invalid_candidate_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_expected_document_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_query_id_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_previous_document_ids_are_compared (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_failed_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_incomplete_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_scope_requires_success_and_valid_citations (test_demo_verdict.DemoVerdictTest) ... ok +test_search_http_error_fails_after_all_documents_indexed (test_demo_verdict.DemoVerdictTest) ... ok +test_table_text_missing_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_unrun_required_stages_cannot_pass (test_demo_verdict.DemoVerdictTest) ... ok +test_http_error_preserves_code_for_signup_decision (test_demo_verdict.HttpBoundaryTest) ... ok +test_oversized_original_is_rejected (test_demo_verdict.HttpBoundaryTest) ... ok +test_redirect_does_not_forward_credentials (test_demo_verdict.HttpBoundaryTest) ... ok +test_ambiguous_quotes_and_inline_comments_are_refused (test_local_config.LocalConfigTest) ... ok +test_container_from_another_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_database_check_is_readonly_and_password_is_not_an_argument (test_local_config.LocalConfigTest) ... ok +test_defaults_match_local_quickstart (test_local_config.LocalConfigTest) ... ok +test_disabled_worker_is_refused (test_local_config.LocalConfigTest) ... ok +test_docker_context_takes_precedence_over_host (test_local_config.LocalConfigTest) ... ok +test_duplicate_key_is_refused (test_local_config.LocalConfigTest) ... ok +test_environment_overrides_file (test_local_config.LocalConfigTest) ... ok +test_foreign_container_is_refused_before_up (test_local_config.LocalConfigTest) ... ok +test_frontend_remote_or_different_api_is_refused (test_local_config.LocalConfigTest) ... ok +test_loopback_port_without_matching_container_is_refused (test_local_config.LocalConfigTest) ... ok +test_missing_host_port_is_not_ready_even_if_container_runs (test_local_config.LocalConfigTest) ... ok +test_multiline_secret_is_refused_before_logging (test_local_config.LocalConfigTest) ... ok +test_remote_database_and_model_are_refused (test_local_config.LocalConfigTest) ... ok +test_remote_docker_endpoint_is_refused (test_local_config.LocalConfigTest) ... ok +test_remote_profile_and_storage_are_refused (test_local_config.LocalConfigTest) ... ok +test_shell_substitution_is_refused_without_execution (test_local_config.LocalConfigTest) ... ok +test_spring_or_jvm_bypass_is_refused (test_local_config.LocalConfigTest) ... ok +test_storage_outside_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_url_credentials_query_and_non_http_are_refused (test_local_config.LocalConfigTest) ... ok +test_wrong_extension_version_fails (test_local_config.LocalConfigTest) ... ok +test_explicit_rag_without_ready_ollama_does_not_start_compose (test_local_config.ServiceScopeTest) ... ok +test_legacy_status_still_requires_ollama (test_local_config.ServiceScopeTest) ... ok +test_search_start_never_calls_ollama (test_local_config.ServiceScopeTest) ... ok +test_claimed_or_retrying_job_is_processing (test_seed_demo_corpus.ClassifyTest) ... ok +test_failed_job (test_seed_demo_corpus.ClassifyTest) ... ok +test_indexed_document (test_seed_demo_corpus.ClassifyTest) ... ok +test_new_upload_waits_for_worker (test_seed_demo_corpus.ClassifyTest) ... ok +test_embedding_hint_first_when_server_not_ready (test_seed_demo_corpus.DiagnoseTest) ... ok +test_embedding_hint_for_failed_documents (test_seed_demo_corpus.DiagnoseTest) ... ok +test_no_hint_when_everything_indexed (test_seed_demo_corpus.DiagnoseTest) ... ok +test_slow_hint_when_worker_and_server_are_up (test_seed_demo_corpus.DiagnoseTest) ... ok +test_worker_hint_when_no_job_started (test_seed_demo_corpus.DiagnoseTest) ... ok +test_different_bytes_produce_different_keys (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_same_bytes_produce_same_valid_key (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_committed_corpus_is_complete (test_seed_demo_corpus.ManifestTest) ... ok + +====================================================================== +ERROR: test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "<작업공간>/scripts/demo/test_demo_runtime.py", line 111, in test_detached_child_is_identified_and_stopped_by_registered_identity + self.assertTrue(self.runtime.stop_process('backend')) + File "<작업공간>/scripts/demo.py", line 516, in stop_process + os.killpg(record["pgid"], signal.SIGTERM) +PermissionError: [Errno 1] Operation not permitted + +---------------------------------------------------------------------- +Ran 75 tests in 11.827s + +FAILED (errors=1) +종료 시각: 2026-10-18T15:25:04+09:00 +종료 코드: 1 +소요 시간: 11.918초 diff --git a/docs/test-results/demo-fresh-20261018/demo-runtime-contract-04.log b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-04.log new file mode 100644 index 00000000..0728e4ee --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-04.log @@ -0,0 +1,97 @@ +실행 ID: demo-runtime-contract-04 +목적: 분리 자식 종료 후 부모 동시 종료 경합 보완 회귀 +환경: 로컬 Python 3.9.6 POSIX, 제어 프로세스, Docker 실제 기동 0회 +합격 기준: 전체 75개 검사 통과, 분리 HTTP 자식과 포트 정리 +명령: python3 -m unittest discover -s scripts/demo -p test_*.py -v +시작 시각: 2026-10-18T15:25:56+09:00 +test_changed_configuration_refuses_before_database_or_upload (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_identity_never_kills_live_process (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_from_another_owner_is_refused (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_recovers_parent_missing_process_map (test_demo_runtime.RuntimeContractTest) ... ok +test_concurrent_command_lock_refuses_second_process (test_demo_runtime.RuntimeContractTest) ... ok +test_container_transition_preserves_reused_and_marks_newly_started (test_demo_runtime.RuntimeContractTest) ... ok +test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) ... FAIL +test_existing_personal_environment_files_are_preserved (test_demo_runtime.RuntimeContractTest) ... ok +test_frontend_proxy_comparison_ignores_response_timestamp (test_demo_runtime.RuntimeContractTest) ... ok +test_new_env_is_initialized_without_default_jwt (test_demo_runtime.RuntimeContractTest) ... ok +test_partial_start_failure_runs_cleanup (test_demo_runtime.RuntimeContractTest) ... ok +test_session_symlink_cannot_redirect_state_writes (test_demo_runtime.RuntimeContractTest) ... ok +test_starting_component_records_actual_group_and_listener (test_demo_runtime.RuntimeContractTest) ... ok +test_status_does_not_report_dead_ready_session_as_success (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_preserves_reused_containers (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_releases_children_and_actual_server_port (test_demo_runtime.RuntimeContractTest) ... ok +test_supervisor_redacts_before_writing (test_demo_runtime.RuntimeContractTest) ... ok +test_verify_records_use_distinct_paths (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_target_refuses_replay_before_upload (test_demo_verdict.DemoVerdictTest) ... ok +test_citation_outside_search_candidates_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_different_previous_document_id_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_download_hash_mismatch_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_empty_search_results_fail (test_demo_verdict.DemoVerdictTest) ... ok +test_event_redaction_happens_before_storage (test_demo_verdict.DemoVerdictTest) ... ok +test_existing_report_is_never_overwritten (test_demo_verdict.DemoVerdictTest) ... ok +test_full_search_scope_passes_without_rag_polling (test_demo_verdict.DemoVerdictTest) ... ok +test_invalid_candidate_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_expected_document_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_query_id_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_previous_document_ids_are_compared (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_failed_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_incomplete_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_scope_requires_success_and_valid_citations (test_demo_verdict.DemoVerdictTest) ... ok +test_search_http_error_fails_after_all_documents_indexed (test_demo_verdict.DemoVerdictTest) ... ok +test_table_text_missing_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_unrun_required_stages_cannot_pass (test_demo_verdict.DemoVerdictTest) ... ok +test_http_error_preserves_code_for_signup_decision (test_demo_verdict.HttpBoundaryTest) ... ok +test_oversized_original_is_rejected (test_demo_verdict.HttpBoundaryTest) ... ok +test_redirect_does_not_forward_credentials (test_demo_verdict.HttpBoundaryTest) ... ok +test_ambiguous_quotes_and_inline_comments_are_refused (test_local_config.LocalConfigTest) ... ok +test_container_from_another_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_database_check_is_readonly_and_password_is_not_an_argument (test_local_config.LocalConfigTest) ... ok +test_defaults_match_local_quickstart (test_local_config.LocalConfigTest) ... ok +test_disabled_worker_is_refused (test_local_config.LocalConfigTest) ... ok +test_docker_context_takes_precedence_over_host (test_local_config.LocalConfigTest) ... ok +test_duplicate_key_is_refused (test_local_config.LocalConfigTest) ... ok +test_environment_overrides_file (test_local_config.LocalConfigTest) ... ok +test_foreign_container_is_refused_before_up (test_local_config.LocalConfigTest) ... ok +test_frontend_remote_or_different_api_is_refused (test_local_config.LocalConfigTest) ... ok +test_loopback_port_without_matching_container_is_refused (test_local_config.LocalConfigTest) ... ok +test_missing_host_port_is_not_ready_even_if_container_runs (test_local_config.LocalConfigTest) ... ok +test_multiline_secret_is_refused_before_logging (test_local_config.LocalConfigTest) ... ok +test_remote_database_and_model_are_refused (test_local_config.LocalConfigTest) ... ok +test_remote_docker_endpoint_is_refused (test_local_config.LocalConfigTest) ... ok +test_remote_profile_and_storage_are_refused (test_local_config.LocalConfigTest) ... ok +test_shell_substitution_is_refused_without_execution (test_local_config.LocalConfigTest) ... ok +test_spring_or_jvm_bypass_is_refused (test_local_config.LocalConfigTest) ... ok +test_storage_outside_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_url_credentials_query_and_non_http_are_refused (test_local_config.LocalConfigTest) ... ok +test_wrong_extension_version_fails (test_local_config.LocalConfigTest) ... ok +test_explicit_rag_without_ready_ollama_does_not_start_compose (test_local_config.ServiceScopeTest) ... ok +test_legacy_status_still_requires_ollama (test_local_config.ServiceScopeTest) ... ok +test_search_start_never_calls_ollama (test_local_config.ServiceScopeTest) ... ok +test_claimed_or_retrying_job_is_processing (test_seed_demo_corpus.ClassifyTest) ... ok +test_failed_job (test_seed_demo_corpus.ClassifyTest) ... ok +test_indexed_document (test_seed_demo_corpus.ClassifyTest) ... ok +test_new_upload_waits_for_worker (test_seed_demo_corpus.ClassifyTest) ... ok +test_embedding_hint_first_when_server_not_ready (test_seed_demo_corpus.DiagnoseTest) ... ok +test_embedding_hint_for_failed_documents (test_seed_demo_corpus.DiagnoseTest) ... ok +test_no_hint_when_everything_indexed (test_seed_demo_corpus.DiagnoseTest) ... ok +test_slow_hint_when_worker_and_server_are_up (test_seed_demo_corpus.DiagnoseTest) ... ok +test_worker_hint_when_no_job_started (test_seed_demo_corpus.DiagnoseTest) ... ok +test_different_bytes_produce_different_keys (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_same_bytes_produce_same_valid_key (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_committed_corpus_is_complete (test_seed_demo_corpus.ManifestTest) ... ok + +====================================================================== +FAIL: test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) +---------------------------------------------------------------------- +Traceback (most recent call last): + File "<작업공간>/scripts/demo/test_demo_runtime.py", line 111, in test_detached_child_is_identified_and_stopped_by_registered_identity + self.assertTrue(self.runtime.stop_process('backend')) +AssertionError: False is not true + +---------------------------------------------------------------------- +Ran 75 tests in 7.497s + +FAILED (failures=1) +종료 시각: 2026-10-18T15:26:03+09:00 +종료 코드: 1 +소요 시간: 7.573초 diff --git a/docs/test-results/demo-fresh-20261018/demo-runtime-contract-05.log b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-05.log new file mode 100644 index 00000000..61be0fdf --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-05.log @@ -0,0 +1,89 @@ +실행 ID: demo-runtime-contract-05 +목적: 종료 직전 계보 재조회와 부모 자연 종료 경합 회귀 +환경: 로컬 Python 3.9.6 POSIX·제어 HTTP 실제 프로세스, Docker 실제 기동 0회 +합격 기준: 75개 검사 통과, 분리 자식·포트 종료 및 다른 소유자 기록 거부 +명령: python3 -m unittest discover -s scripts/demo -p test_*.py -v +시작 시각: 2026-10-18T15:27:10+09:00 +test_changed_configuration_refuses_before_database_or_upload (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_identity_never_kills_live_process (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_from_another_owner_is_refused (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_recovers_parent_missing_process_map (test_demo_runtime.RuntimeContractTest) ... ok +test_concurrent_command_lock_refuses_second_process (test_demo_runtime.RuntimeContractTest) ... ok +test_container_transition_preserves_reused_and_marks_newly_started (test_demo_runtime.RuntimeContractTest) ... ok +test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) ... ok +test_existing_personal_environment_files_are_preserved (test_demo_runtime.RuntimeContractTest) ... ok +test_frontend_proxy_comparison_ignores_response_timestamp (test_demo_runtime.RuntimeContractTest) ... ok +test_new_env_is_initialized_without_default_jwt (test_demo_runtime.RuntimeContractTest) ... ok +test_partial_start_failure_runs_cleanup (test_demo_runtime.RuntimeContractTest) ... ok +test_session_symlink_cannot_redirect_state_writes (test_demo_runtime.RuntimeContractTest) ... ok +test_starting_component_records_actual_group_and_listener (test_demo_runtime.RuntimeContractTest) ... ok +test_status_does_not_report_dead_ready_session_as_success (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_preserves_reused_containers (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_releases_children_and_actual_server_port (test_demo_runtime.RuntimeContractTest) ... ok +test_supervisor_redacts_before_writing (test_demo_runtime.RuntimeContractTest) ... ok +test_verify_records_use_distinct_paths (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_target_refuses_replay_before_upload (test_demo_verdict.DemoVerdictTest) ... ok +test_citation_outside_search_candidates_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_different_previous_document_id_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_download_hash_mismatch_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_empty_search_results_fail (test_demo_verdict.DemoVerdictTest) ... ok +test_event_redaction_happens_before_storage (test_demo_verdict.DemoVerdictTest) ... ok +test_existing_report_is_never_overwritten (test_demo_verdict.DemoVerdictTest) ... ok +test_full_search_scope_passes_without_rag_polling (test_demo_verdict.DemoVerdictTest) ... ok +test_invalid_candidate_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_expected_document_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_query_id_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_previous_document_ids_are_compared (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_failed_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_incomplete_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_scope_requires_success_and_valid_citations (test_demo_verdict.DemoVerdictTest) ... ok +test_search_http_error_fails_after_all_documents_indexed (test_demo_verdict.DemoVerdictTest) ... ok +test_table_text_missing_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_unrun_required_stages_cannot_pass (test_demo_verdict.DemoVerdictTest) ... ok +test_http_error_preserves_code_for_signup_decision (test_demo_verdict.HttpBoundaryTest) ... ok +test_oversized_original_is_rejected (test_demo_verdict.HttpBoundaryTest) ... ok +test_redirect_does_not_forward_credentials (test_demo_verdict.HttpBoundaryTest) ... ok +test_ambiguous_quotes_and_inline_comments_are_refused (test_local_config.LocalConfigTest) ... ok +test_container_from_another_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_database_check_is_readonly_and_password_is_not_an_argument (test_local_config.LocalConfigTest) ... ok +test_defaults_match_local_quickstart (test_local_config.LocalConfigTest) ... ok +test_disabled_worker_is_refused (test_local_config.LocalConfigTest) ... ok +test_docker_context_takes_precedence_over_host (test_local_config.LocalConfigTest) ... ok +test_duplicate_key_is_refused (test_local_config.LocalConfigTest) ... ok +test_environment_overrides_file (test_local_config.LocalConfigTest) ... ok +test_foreign_container_is_refused_before_up (test_local_config.LocalConfigTest) ... ok +test_frontend_remote_or_different_api_is_refused (test_local_config.LocalConfigTest) ... ok +test_loopback_port_without_matching_container_is_refused (test_local_config.LocalConfigTest) ... ok +test_missing_host_port_is_not_ready_even_if_container_runs (test_local_config.LocalConfigTest) ... ok +test_multiline_secret_is_refused_before_logging (test_local_config.LocalConfigTest) ... ok +test_remote_database_and_model_are_refused (test_local_config.LocalConfigTest) ... ok +test_remote_docker_endpoint_is_refused (test_local_config.LocalConfigTest) ... ok +test_remote_profile_and_storage_are_refused (test_local_config.LocalConfigTest) ... ok +test_shell_substitution_is_refused_without_execution (test_local_config.LocalConfigTest) ... ok +test_spring_or_jvm_bypass_is_refused (test_local_config.LocalConfigTest) ... ok +test_storage_outside_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_url_credentials_query_and_non_http_are_refused (test_local_config.LocalConfigTest) ... ok +test_wrong_extension_version_fails (test_local_config.LocalConfigTest) ... ok +test_explicit_rag_without_ready_ollama_does_not_start_compose (test_local_config.ServiceScopeTest) ... ok +test_legacy_status_still_requires_ollama (test_local_config.ServiceScopeTest) ... ok +test_search_start_never_calls_ollama (test_local_config.ServiceScopeTest) ... ok +test_claimed_or_retrying_job_is_processing (test_seed_demo_corpus.ClassifyTest) ... ok +test_failed_job (test_seed_demo_corpus.ClassifyTest) ... ok +test_indexed_document (test_seed_demo_corpus.ClassifyTest) ... ok +test_new_upload_waits_for_worker (test_seed_demo_corpus.ClassifyTest) ... ok +test_embedding_hint_first_when_server_not_ready (test_seed_demo_corpus.DiagnoseTest) ... ok +test_embedding_hint_for_failed_documents (test_seed_demo_corpus.DiagnoseTest) ... ok +test_no_hint_when_everything_indexed (test_seed_demo_corpus.DiagnoseTest) ... ok +test_slow_hint_when_worker_and_server_are_up (test_seed_demo_corpus.DiagnoseTest) ... ok +test_worker_hint_when_no_job_started (test_seed_demo_corpus.DiagnoseTest) ... ok +test_different_bytes_produce_different_keys (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_same_bytes_produce_same_valid_key (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_committed_corpus_is_complete (test_seed_demo_corpus.ManifestTest) ... ok + +---------------------------------------------------------------------- +Ran 75 tests in 7.215s + +OK +종료 시각: 2026-10-18T15:27:18+09:00 +종료 코드: 0 +소요 시간: 7.293초 diff --git a/docs/test-results/demo-fresh-20261018/demo-runtime-contract-06.log b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-06.log new file mode 100644 index 00000000..26d385c1 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/demo-runtime-contract-06.log @@ -0,0 +1,90 @@ +실행 ID: demo-runtime-contract-06 +목적: 쿼리 인증정보 저장 전 마스킹과 기존 소유권 회귀 +환경: 로컬 Python 3.9.6 POSIX, Docker 실제 기동 0회 +합격 기준: 76개 검사 통과, 미등록 쿼리 비밀번호·토큰·인코딩 이메일 제거 +명령: python3 -m unittest discover -s scripts/demo -p test_*.py -v +시작 시각: 2026-10-18T15:51:19+09:00 +test_changed_configuration_refuses_before_database_or_upload (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_identity_never_kills_live_process (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_from_another_owner_is_refused (test_demo_runtime.RuntimeContractTest) ... ok +test_child_record_recovers_parent_missing_process_map (test_demo_runtime.RuntimeContractTest) ... ok +test_concurrent_command_lock_refuses_second_process (test_demo_runtime.RuntimeContractTest) ... ok +test_container_transition_preserves_reused_and_marks_newly_started (test_demo_runtime.RuntimeContractTest) ... ok +test_detached_child_is_identified_and_stopped_by_registered_identity (test_demo_runtime.RuntimeContractTest) ... ok +test_existing_personal_environment_files_are_preserved (test_demo_runtime.RuntimeContractTest) ... ok +test_frontend_proxy_comparison_ignores_response_timestamp (test_demo_runtime.RuntimeContractTest) ... ok +test_new_env_is_initialized_without_default_jwt (test_demo_runtime.RuntimeContractTest) ... ok +test_partial_start_failure_runs_cleanup (test_demo_runtime.RuntimeContractTest) ... ok +test_session_symlink_cannot_redirect_state_writes (test_demo_runtime.RuntimeContractTest) ... ok +test_starting_component_records_actual_group_and_listener (test_demo_runtime.RuntimeContractTest) ... ok +test_status_does_not_report_dead_ready_session_as_success (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_preserves_reused_containers (test_demo_runtime.RuntimeContractTest) ... ok +test_stop_releases_children_and_actual_server_port (test_demo_runtime.RuntimeContractTest) ... ok +test_supervisor_redacts_before_writing (test_demo_runtime.RuntimeContractTest) ... ok +test_verify_records_use_distinct_paths (test_demo_runtime.RuntimeContractTest) ... ok +test_changed_target_refuses_replay_before_upload (test_demo_verdict.DemoVerdictTest) ... ok +test_citation_outside_search_candidates_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_different_previous_document_id_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_download_hash_mismatch_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_empty_search_results_fail (test_demo_verdict.DemoVerdictTest) ... ok +test_event_redaction_happens_before_storage (test_demo_verdict.DemoVerdictTest) ... ok +test_existing_report_is_never_overwritten (test_demo_verdict.DemoVerdictTest) ... ok +test_full_search_scope_passes_without_rag_polling (test_demo_verdict.DemoVerdictTest) ... ok +test_invalid_candidate_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_expected_document_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_missing_query_id_is_not_a_valid_search (test_demo_verdict.DemoVerdictTest) ... ok +test_previous_document_ids_are_compared (test_demo_verdict.DemoVerdictTest) ... ok +test_query_credentials_are_redacted_without_knowing_the_password (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_failed_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_incomplete_is_not_success (test_demo_verdict.DemoVerdictTest) ... ok +test_rag_scope_requires_success_and_valid_citations (test_demo_verdict.DemoVerdictTest) ... ok +test_search_http_error_fails_after_all_documents_indexed (test_demo_verdict.DemoVerdictTest) ... ok +test_table_text_missing_fails (test_demo_verdict.DemoVerdictTest) ... ok +test_unrun_required_stages_cannot_pass (test_demo_verdict.DemoVerdictTest) ... ok +test_http_error_preserves_code_for_signup_decision (test_demo_verdict.HttpBoundaryTest) ... ok +test_oversized_original_is_rejected (test_demo_verdict.HttpBoundaryTest) ... ok +test_redirect_does_not_forward_credentials (test_demo_verdict.HttpBoundaryTest) ... ok +test_ambiguous_quotes_and_inline_comments_are_refused (test_local_config.LocalConfigTest) ... ok +test_container_from_another_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_database_check_is_readonly_and_password_is_not_an_argument (test_local_config.LocalConfigTest) ... ok +test_defaults_match_local_quickstart (test_local_config.LocalConfigTest) ... ok +test_disabled_worker_is_refused (test_local_config.LocalConfigTest) ... ok +test_docker_context_takes_precedence_over_host (test_local_config.LocalConfigTest) ... ok +test_duplicate_key_is_refused (test_local_config.LocalConfigTest) ... ok +test_environment_overrides_file (test_local_config.LocalConfigTest) ... ok +test_foreign_container_is_refused_before_up (test_local_config.LocalConfigTest) ... ok +test_frontend_remote_or_different_api_is_refused (test_local_config.LocalConfigTest) ... ok +test_loopback_port_without_matching_container_is_refused (test_local_config.LocalConfigTest) ... ok +test_missing_host_port_is_not_ready_even_if_container_runs (test_local_config.LocalConfigTest) ... ok +test_multiline_secret_is_refused_before_logging (test_local_config.LocalConfigTest) ... ok +test_remote_database_and_model_are_refused (test_local_config.LocalConfigTest) ... ok +test_remote_docker_endpoint_is_refused (test_local_config.LocalConfigTest) ... ok +test_remote_profile_and_storage_are_refused (test_local_config.LocalConfigTest) ... ok +test_shell_substitution_is_refused_without_execution (test_local_config.LocalConfigTest) ... ok +test_spring_or_jvm_bypass_is_refused (test_local_config.LocalConfigTest) ... ok +test_storage_outside_checkout_is_refused (test_local_config.LocalConfigTest) ... ok +test_url_credentials_query_and_non_http_are_refused (test_local_config.LocalConfigTest) ... ok +test_wrong_extension_version_fails (test_local_config.LocalConfigTest) ... ok +test_explicit_rag_without_ready_ollama_does_not_start_compose (test_local_config.ServiceScopeTest) ... ok +test_legacy_status_still_requires_ollama (test_local_config.ServiceScopeTest) ... ok +test_search_start_never_calls_ollama (test_local_config.ServiceScopeTest) ... ok +test_claimed_or_retrying_job_is_processing (test_seed_demo_corpus.ClassifyTest) ... ok +test_failed_job (test_seed_demo_corpus.ClassifyTest) ... ok +test_indexed_document (test_seed_demo_corpus.ClassifyTest) ... ok +test_new_upload_waits_for_worker (test_seed_demo_corpus.ClassifyTest) ... ok +test_embedding_hint_first_when_server_not_ready (test_seed_demo_corpus.DiagnoseTest) ... ok +test_embedding_hint_for_failed_documents (test_seed_demo_corpus.DiagnoseTest) ... ok +test_no_hint_when_everything_indexed (test_seed_demo_corpus.DiagnoseTest) ... ok +test_slow_hint_when_worker_and_server_are_up (test_seed_demo_corpus.DiagnoseTest) ... ok +test_worker_hint_when_no_job_started (test_seed_demo_corpus.DiagnoseTest) ... ok +test_different_bytes_produce_different_keys (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_same_bytes_produce_same_valid_key (test_seed_demo_corpus.IdempotencyKeyTest) ... ok +test_committed_corpus_is_complete (test_seed_demo_corpus.ManifestTest) ... ok + +---------------------------------------------------------------------- +Ran 76 tests in 9.063s + +OK +종료 시각: 2026-10-18T15:51:28+09:00 +종료 코드: 0 +소요 시간: 9.168초 diff --git a/docs/test-results/demo-fresh-20261018/probe_gradle_group.py b/docs/test-results/demo-fresh-20261018/probe_gradle_group.py new file mode 100644 index 00000000..66f4fb69 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/probe_gradle_group.py @@ -0,0 +1,16 @@ +import os,subprocess,time,threading,json +env=dict(os.environ) +java=subprocess.run(['/usr/libexec/java_home','-v','17'],capture_output=True,text=True) +if java.returncode==0:env['JAVA_HOME']=java.stdout.strip() +p=subprocess.Popen(['./backend/gradlew','-p','backend','--no-daemon','help'],stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True,env=env,start_new_session=True) +thread=threading.Thread(target=lambda:[print(line,end='',flush=True) for line in p.stdout]);thread.start() +observed={} +while p.poll() is None: + result=subprocess.run(['ps','-eo','pid=,ppid=,pgid=,args='],capture_output=True,text=True) + for line in result.stdout.splitlines(): + fields=line.split(maxsplit=3) + if len(fields)==4 and fields[1]==str(p.pid): + observed[fields[0]]={'role':'gradle-child','sameGroup':fields[2]==str(p.pid)} + time.sleep(0.1) +thread.join();print(json.dumps({'gradleExitCode':p.returncode,'directChildren':list(observed.values())})) +raise SystemExit(0 if p.returncode==0 and all(x['sameGroup'] for x in observed.values()) else 1) diff --git a/docs/test-results/demo-fresh-20261018/probe_gradle_registered.py b/docs/test-results/demo-fresh-20261018/probe_gradle_registered.py new file mode 100644 index 00000000..455ddc14 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/probe_gradle_registered.py @@ -0,0 +1,21 @@ +import os,subprocess,time,threading,json,importlib.util,tempfile +from pathlib import Path +spec=importlib.util.spec_from_file_location('runtime',Path.cwd()/'scripts/demo.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m) +env=dict(os.environ) +java=subprocess.run(['/usr/libexec/java_home','-v','17'],capture_output=True,text=True) +if java.returncode==0:env['JAVA_HOME']=java.stdout.strip() +with tempfile.TemporaryDirectory() as directory: + path=Path(directory)/'children.json';stopped=threading.Event();owner=m.identity(os.getpid()) + tracker=threading.Thread(target=m.track_children,args=(owner,stopped,path));tracker.start() + p=subprocess.Popen(['./backend/gradlew','-p','backend','--no-daemon','help'],stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True,env=env,start_new_session=True) + reader=threading.Thread(target=lambda:[print(line,end='',flush=True) for line in p.stdout]);reader.start() + separate=set() + while p.poll() is None: + if path.exists(): + for item in m.read_json(path)['children']: + if item['pid'] != p.pid and item['pgid'] != p.pid and item['pgid'] != owner['pgid']: + separate.add(item['pid']) + time.sleep(0.05) + reader.join();stopped.set();tracker.join() + print(json.dumps({'gradleExitCode':p.returncode,'registeredSeparateChildren':len(separate)})) + raise SystemExit(0 if p.returncode==0 and separate else 1) diff --git a/docs/test-results/demo-fresh-20261018/runs/39103254726-1/cold-start.log b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/cold-start.log new file mode 100644 index 00000000..aa584aa7 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/cold-start.log @@ -0,0 +1,7 @@ +실행 ID: 39103254726-1/cold-start +목적: 모델·의존성 최초 준비를 포함한 전체 기동 +시작: 2026-10-18T15:13:35+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start --timeout 1200 +2026-10-18T15:13:40+09:00 [시작] 로컬 시연 세션 dfeb031efca641a5aac154c3530c63c2 · 범위 search diff --git a/docs/test-results/demo-fresh-20261018/runs/39103254726-1/concurrent-start.log b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/concurrent-start.log new file mode 100644 index 00000000..f36702f1 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/concurrent-start.log @@ -0,0 +1,10 @@ +실행 ID: 39103254726-1/concurrent-start +목적: 진행 중 start의 잠금으로 두 번째 start 거부 +시작: 2026-10-18T15:13:40+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start +2026-10-18T15:13:40+09:00 [실패] 다른 시작·검증·종료 명령이 실행 중입니다. +종료: 2026-10-18T15:13:40+09:00 +실제 종료 코드: 1 +소요 시간: 0.116초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39103254726-1/summary.json b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/summary.json new file mode 100644 index 00000000..335fc46e --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39103254726-1/summary.json @@ -0,0 +1,32 @@ +{ + "runId": "39103254726-1", + "revision": "f459f0c63ca9f7656c2b1ce9b6b26a82c83bdae5", + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": [ + { + "id": "preflight", + "purpose": "독립 실행기의 새 환경 확인", + "timestamp": "2026-10-18T15:13:35+09:00", + "verdict": "PASS", + "existingContainers": 0, + "existingImageCount": 6, + "existingVolumes": 0, + "environmentFilesInitiallyPresent": 0, + "workload": { + "documents": 15, + "searchQuestions": 3, + "browserSessions": 1 + } + }, + { + "id": "concurrent-start", + "purpose": "진행 중 start의 잠금으로 두 번째 start 거부", + "timestamp": "2026-10-18T15:13:40+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 0.116, + "log": "concurrent-start.log" + } + ] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/cold-start.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/cold-start.log new file mode 100644 index 00000000..6b3a26d4 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/cold-start.log @@ -0,0 +1,7 @@ +실행 ID: 39104137120-1/cold-start +목적: 모델·의존성 최초 준비를 포함한 전체 기동 +시작: 2026-10-18T15:28:45+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start --timeout 1200 +2026-10-18T15:28:48+09:00 [시작] 로컬 시연 세션 73ca94307e5f46518da77b6017cb991f · 범위 search diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/concurrent-start.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/concurrent-start.log new file mode 100644 index 00000000..e660f562 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/concurrent-start.log @@ -0,0 +1,10 @@ +실행 ID: 39104137120-1/concurrent-start +목적: 진행 중 start의 잠금으로 두 번째 start 거부 +시작: 2026-10-18T15:28:48+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start +2026-10-18T15:28:48+09:00 [실패] 다른 시작·검증·종료 명령이 실행 중입니다. +종료: 2026-10-18T15:28:49+09:00 +실제 종료 코드: 1 +소요 시간: 0.115초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/backend.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/backend.log new file mode 100644 index 00000000..7a5a5307 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/backend.log @@ -0,0 +1,208 @@ +2026-10-18T15:30:43+09:00 Downloading <설정된 서버> +2026-10-18T15:30:46+09:00 .............10%.............20%.............30%.............40%.............50%.............60%..............70%.............80%.............90%.............100% +2026-10-18T15:30:47+09:00 +2026-10-18T15:30:47+09:00 Welcome to Gradle 8.14.5! +2026-10-18T15:30:47+09:00 +2026-10-18T15:30:47+09:00 Here are the highlights of this release: +2026-10-18T15:30:47+09:00 - Java 24 support +2026-10-18T15:30:47+09:00 - GraalVM Native Image toolchain selection +2026-10-18T15:30:47+09:00 - Enhancements to test reporting +2026-10-18T15:30:47+09:00 - Build Authoring improvements +2026-10-18T15:30:47+09:00 +2026-10-18T15:30:47+09:00 For more details see <설정된 서버> +2026-10-18T15:30:47+09:00 +2026-10-18T15:30:47+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. +2026-10-18T15:30:48+09:00 Daemon will be stopped at the end of the build +2026-10-18T15:31:52+09:00 > Task :compileJava +2026-10-18T15:31:52+09:00 > Task :processResources +2026-10-18T15:31:52+09:00 > Task :classes +2026-10-18T15:31:52+09:00 > Task :resolveMainClassName +2026-10-18T15:31:54+09:00 +2026-10-18T15:31:54+09:00 > Task :bootRun +2026-10-18T15:31:54+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:31:54+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:31:54+09:00 +2026-10-18T15:31:54+09:00 . ____ _ __ _ _ +2026-10-18T15:31:54+09:00 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +2026-10-18T15:31:54+09:00 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ +2026-10-18T15:31:54+09:00 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) +2026-10-18T15:31:54+09:00 ' |____| .__|_| |_|_| |_\__, | / / / / +2026-10-18T15:31:54+09:00 =========|_|==============|___/=/_/_/_/ +2026-10-18T15:31:54+09:00 +2026-10-18T15:31:54+09:00 :: Spring Boot :: (v3.5.16) +2026-10-18T15:31:54+09:00 +2026-10-18T15:31:54+09:00 2026-10-18T06:31:53.549Z INFO 9862 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Starting DocgridApplication using Java 17.0.20.1 with PID 9862 (<작업공간>/backend/build/classes/java/main started by runner in <작업공간>) +2026-10-18T15:31:54+09:00 2026-10-18T06:31:53.551Z INFO 9862 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : The following 1 profile is active: "local" +2026-10-18T15:31:54+09:00 2026-10-18T06:31:53.581Z INFO 9862 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-10-18T15:31:54+09:00 2026-10-18T06:31:53.581Z INFO 9862 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.383Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.385Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.502Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 112 ms. Found 31 JPA repository interfaces. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.510Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.511Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.528Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionDocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentChunkRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentVersionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.FileObjectRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.529Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingJobRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingModelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.CollectionPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.DocumentPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.UserDocumentAccessCacheRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.RagResponseRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.ResponseCitationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.530Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchConversationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchQueryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchResultRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.VectorSearchRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncAdminActionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncConsistencyIssueRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.531Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncEventDeliveryAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncOutboxEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncReconciliationRunRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.DepartmentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.McpAccessTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.RoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.532Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.533Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.EmbeddingJobAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.533Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.IndexingEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.535Z INFO 9862 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.WorkerNodeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.535Z INFO 9862 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 18 ms. Found 0 Redis repository interfaces. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.789Z WARN 9862 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.789Z WARN 9862 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.794Z WARN 9862 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:31:54+09:00 2026-10-18T06:31:54.796Z WARN 9862 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.028Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.037Z INFO 9862 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.038Z INFO 9862 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.071Z INFO 9862 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.071Z INFO 9862 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1489 ms +2026-10-18T15:31:55+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.237Z INFO 9862 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Starting... +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.306Z INFO 9862 --- [docgrid] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : docgrid-local-db-pool - Added connection org.postgresql.jdbc.PgConnection@26d752a1 +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.307Z INFO 9862 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Start completed. +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.323Z INFO 9862 --- [docgrid] [ restartedMain] org.flywaydb.core.FlywayExecutor : Database: jdbc:postgresql://127.0.0.1:55432/app?currentSchema=public&sslmode=disable (PostgreSQL 17.8) +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.378Z INFO 9862 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.381Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.044s) +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.390Z INFO 9862 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.432Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.435Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - init schema" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.448Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "2 - create departments" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.458Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "3 - create users" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.465Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "4 - create file objects" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.472Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "5 - create documents" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.479Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "6 - create document versions" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.487Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "7 - create collections" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.493Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "8 - create collection documents" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.500Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "9 - create roles" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.505Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "10 - create user roles" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.511Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "11 - create collection permissions" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.520Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "12 - create document permissions" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.527Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "13 - create user document access cache" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.531Z WARN 9862 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : DB: identifier "uk_user_document_access_cache_user_id_document_id_source_type_source_id" will be truncated to "uk_user_document_access_cache_user_id_document_id_source_type_s" (SQL State: 42622 - Error Code: 0) +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.536Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "14 - create embedding models" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.542Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "15 - create document chunks" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.548Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "16 - create embeddings" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.554Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "17 - create worker nodes" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.559Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "18 - create embedding jobs" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.565Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "19 - create embedding job attempts" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.570Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "20 - create indexing events" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.575Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "21 - create search queries" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.581Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "22 - create search results" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.587Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "23 - create rag responses" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.592Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "24 - create response citations" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.597Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "25 - create failover events" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.602Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "26 - create mcp access tokens" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.607Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "27 - add embedding model constraints" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.611Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "28 - seed roles departments admin" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.615Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "29 - add file object deduplication constraint" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.619Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "30 - add document version upload metadata" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.623Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "31 - add worker instance id" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.627Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "32 - convert vector columns to pgvector" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.633Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "33 - add embedding job claim token" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.635Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "34 - add claim token to embedding job attempts" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.638Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "35 - add embedding job next retry at" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.642Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "36 - create sync outbox events" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.648Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "37 - create sync consistency issues" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.655Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "38 - create sync admin actions" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.660Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "39 - create sync event delivery attempts" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.666Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "40 - alter rag responses answer text nullable" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.669Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "41 - create search conversations" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.672Z INFO 9862 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : +--------+ +2026-10-18T15:31:55+09:00 | setval | +2026-10-18T15:31:55+09:00 +--------+ +2026-10-18T15:31:55+09:00 | 1 | +2026-10-18T15:31:55+09:00 +--------+ +2026-10-18T15:31:55+09:00 +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.676Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "42 - create collection closure" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.680Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "43 - add rag responses claimed at" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.683Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "44 - create ha probe writes" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.687Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "45 - create ha probe idempotent writes" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.690Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "46 - enable pg trgm chunk text index" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.697Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "47 - create initial upload requests" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.701Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "48 - track initial upload candidates" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.706Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "49 - create version upload requests" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.711Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "50 - track version upload candidates" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.723Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "51 - add rag response claim lease" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.727Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "52 - create permission revocation requests" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.732Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed bge m3 embedding model" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.739Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed test fixtures" +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.754Z INFO 9862 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Successfully applied 54 migrations to schema "public", now at version v52 (execution time 00:00.127s) +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.812Z INFO 9862 --- [docgrid] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.836Z INFO 9862 --- [docgrid] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.53.Final +2026-10-18T15:31:55+09:00 2026-10-18T06:31:55.850Z INFO 9862 --- [docgrid] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-10-18T15:31:56+09:00 2026-10-18T06:31:55.977Z INFO 9862 --- [docgrid] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-10-18T15:31:56+09:00 2026-10-18T06:31:56.017Z INFO 9862 --- [docgrid] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: +2026-10-18T15:31:56+09:00 Database JDBC URL [Connecting through datasource 'HikariDataSource (docgrid-local-db-pool)'] +2026-10-18T15:31:56+09:00 Database driver: undefined/unknown +2026-10-18T15:31:56+09:00 Database version: 17.8 +2026-10-18T15:31:56+09:00 Autocommit mode: undefined/unknown +2026-10-18T15:31:56+09:00 Isolation level: undefined/unknown +2026-10-18T15:31:56+09:00 Minimum pool size: undefined/unknown +2026-10-18T15:31:56+09:00 Maximum pool size: undefined/unknown +2026-10-18T15:31:56+09:00 2026-10-18T06:31:56.758Z INFO 9862 --- [docgrid] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-10-18T15:31:56+09:00 2026-10-18T06:31:56.783Z INFO 9862 --- [docgrid] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-10-18T15:31:57+09:00 2026-10-18T06:31:56.934Z INFO 9862 --- [docgrid] [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-10-18T15:31:58+09:00 2026-10-18T06:31:58.849Z WARN 9862 --- [docgrid] [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : +2026-10-18T15:31:58+09:00 +2026-10-18T15:31:58+09:00 Using generated security password: 87c99d8d-6b81-48d9-b5e8-25f8c3de8bd3 +2026-10-18T15:31:58+09:00 +2026-10-18T15:31:58+09:00 This generated password is for development use only. Your security configuration must be updated before running your application in production. +2026-10-18T15:31:58+09:00 +2026-10-18T15:31:58+09:00 2026-10-18T06:31:58.854Z INFO 9862 --- [docgrid] [ restartedMain] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.264Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.265Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Registered tools: 3 +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.265Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.265Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.265Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.266Z INFO 9862 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.460Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.496Z INFO 9862 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting... +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.496Z INFO 9862 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@6bad9d00]] +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.497Z INFO 9862 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started. +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.504Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.553Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.553Z INFO 9862 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.553Z INFO 9862 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.565Z INFO 9862 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.566Z INFO 9862 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 59 ms +2026-10-18T15:31:59+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.573Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoints beneath base path '/actuator' +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.594Z INFO 9862 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.607Z INFO 9862 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Started DocgridApplication in 6.346 seconds (process running for 6.624) +2026-10-18T15:31:59+09:00 2026-10-18T06:31:59.777Z INFO 9862 --- [docgrid] [ restartedMain] c.o.d.d.w.l.WorkerLifecycleManager : 인덱싱 Worker를 등록했습니다. workerId=1, workerName=indexing-worker, instanceId=744a5369-4a3b-49e6-997c-132fce71a40b +2026-10-18T15:32:00+09:00 2026-10-18T06:31:59.927Z INFO 9862 --- [docgrid] [nio-8081-exec-1] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServletRegistration' +2026-10-18T15:32:00+09:00 2026-10-18T06:31:59.927Z INFO 9862 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServletRegistration' +2026-10-18T15:32:00+09:00 2026-10-18T06:31:59.927Z INFO 9862 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-10-18T15:32:03+09:00 2026-10-18T06:32:03.022Z INFO 9862 --- [docgrid] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-10-18T15:32:03+09:00 2026-10-18T06:32:03.022Z INFO 9862 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-10-18T15:32:03+09:00 2026-10-18T06:32:03.024Z INFO 9862 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms +2026-10-18T15:32:29+09:00 2026-10-18T06:32:29.614Z INFO 9862 --- [docgrid] [MessageBroker-4] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:32:59+09:00 2026-10-18T06:32:59.476Z INFO 9862 --- [docgrid] [MessageBroker-4] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 12, completed tasks = 418] +2026-10-18T15:32:59+09:00 2026-10-18T06:32:59.620Z INFO 9862 --- [docgrid] [MessageBroker-2] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:33:29+09:00 2026-10-18T06:33:29.623Z INFO 9862 --- [docgrid] [MessageBroker-4] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:33:59+09:00 2026-10-18T06:33:59.626Z INFO 9862 --- [docgrid] [MessageBroker-4] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/events.jsonl new file mode 100644 index 00000000..94a463d6 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/events.jsonl @@ -0,0 +1 @@ +{"timestamp": "2026-10-18T15:28:48+09:00", "message": "[시작] 로컬 시연 세션 73ca94307e5f46518da77b6017cb991f · 범위 search"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/frontend.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/frontend.log new file mode 100644 index 00000000..a6cc0b3c --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/frontend.log @@ -0,0 +1,10 @@ +2026-10-18T15:32:00+09:00 +2026-10-18T15:32:00+09:00 > <이메일 생략> dev +2026-10-18T15:32:00+09:00 > WRANGLER_LOG_PATH=.wrangler/wrangler.log vinext dev +2026-10-18T15:32:00+09:00 +2026-10-18T15:32:00+09:00 +2026-10-18T15:32:00+09:00 vinext dev (Vite 8.0.13) +2026-10-18T15:32:00+09:00 +2026-10-18T15:32:01+09:00 Using secrets defined in .env.local +2026-10-18T15:32:02+09:00 ➜ Local: <설정된 서버> +2026-10-18T15:32:02+09:00 ➜ Debug: <설정된 서버> diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/install.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/install.log new file mode 100644 index 00000000..d9176638 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/install.log @@ -0,0 +1,17 @@ +2026-10-18T15:28:51+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:28:51+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 added 502 packages, and audited 503 packages in 13s +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 156 packages are looking for funding +2026-10-18T15:29:02+09:00 run `npm fund` for details +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 30 vulnerabilities (1 low, 6 moderate, 23 high) +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 To address issues that do not require attention, run: +2026-10-18T15:29:02+09:00 npm audit fix +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 To address all issues (including breaking changes), run: +2026-10-18T15:29:02+09:00 npm audit fix --force +2026-10-18T15:29:02+09:00 +2026-10-18T15:29:02+09:00 Run `npm audit` for details. diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/services.log b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/services.log new file mode 100644 index 00000000..48075cfa --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/runtime/73ca94307e5f46518da77b6017cb991f/services.log @@ -0,0 +1,599 @@ +2026-10-18T15:29:03+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:29:03+09:00 postgres Pulling +2026-10-18T15:29:03+09:00 valkey Pulling +2026-10-18T15:29:04+09:00 e2de96513ba9 Already exists +2026-10-18T15:29:04+09:00 d78be5cc1e53 Pulling fs layer +2026-10-18T15:29:04+09:00 fe2c7735354a Pulling fs layer +2026-10-18T15:29:04+09:00 95121e5a56c0 Pulling fs layer +2026-10-18T15:29:04+09:00 d9f591c70342 Pulling fs layer +2026-10-18T15:29:04+09:00 4f4fb700ef54 Pulling fs layer +2026-10-18T15:29:04+09:00 4ed485d78f72 Pulling fs layer +2026-10-18T15:29:04+09:00 d9f591c70342 Waiting +2026-10-18T15:29:04+09:00 4f4fb700ef54 Waiting +2026-10-18T15:29:04+09:00 4ed485d78f72 Waiting +2026-10-18T15:29:04+09:00 4831516dd0cb Pulling fs layer +2026-10-18T15:29:04+09:00 9f4a0348ad2e Pulling fs layer +2026-10-18T15:29:04+09:00 6b6aac9d7476 Pulling fs layer +2026-10-18T15:29:04+09:00 d8a310896f84 Pulling fs layer +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Pulling fs layer +2026-10-18T15:29:04+09:00 31b6f2223c4b Pulling fs layer +2026-10-18T15:29:04+09:00 9da35c01411f Pulling fs layer +2026-10-18T15:29:04+09:00 a6809e067bc1 Pulling fs layer +2026-10-18T15:29:04+09:00 10643155f463 Pulling fs layer +2026-10-18T15:29:04+09:00 a7ef49b2a615 Pulling fs layer +2026-10-18T15:29:04+09:00 29d37472e7c3 Pulling fs layer +2026-10-18T15:29:04+09:00 4d2363af1825 Pulling fs layer +2026-10-18T15:29:04+09:00 4a14fbbe260a Pulling fs layer +2026-10-18T15:29:04+09:00 8cced4a98c7e Pulling fs layer +2026-10-18T15:29:04+09:00 4909bfb5f5ed Pulling fs layer +2026-10-18T15:29:04+09:00 3e1ddef0ec36 Pulling fs layer +2026-10-18T15:29:04+09:00 4831516dd0cb Waiting +2026-10-18T15:29:04+09:00 9f4a0348ad2e Waiting +2026-10-18T15:29:04+09:00 6b6aac9d7476 Waiting +2026-10-18T15:29:04+09:00 d8a310896f84 Waiting +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Waiting +2026-10-18T15:29:04+09:00 31b6f2223c4b Waiting +2026-10-18T15:29:04+09:00 9da35c01411f Waiting +2026-10-18T15:29:04+09:00 a6809e067bc1 Waiting +2026-10-18T15:29:04+09:00 10643155f463 Waiting +2026-10-18T15:29:04+09:00 a7ef49b2a615 Waiting +2026-10-18T15:29:04+09:00 29d37472e7c3 Waiting +2026-10-18T15:29:04+09:00 4d2363af1825 Waiting +2026-10-18T15:29:04+09:00 4a14fbbe260a Waiting +2026-10-18T15:29:04+09:00 8cced4a98c7e Waiting +2026-10-18T15:29:04+09:00 4909bfb5f5ed Waiting +2026-10-18T15:29:04+09:00 3e1ddef0ec36 Waiting +2026-10-18T15:29:04+09:00 d78be5cc1e53 Downloading [==================================================>] 951B/951B +2026-10-18T15:29:04+09:00 d78be5cc1e53 Verifying Checksum +2026-10-18T15:29:04+09:00 d78be5cc1e53 Download complete +2026-10-18T15:29:04+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:29:04+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:29:04+09:00 95121e5a56c0 Downloading [> ] 146.9kB/14.29MB +2026-10-18T15:29:04+09:00 fe2c7735354a Downloading [=> ] 15.79kB/666.5kB +2026-10-18T15:29:04+09:00 fe2c7735354a Download complete +2026-10-18T15:29:04+09:00 95121e5a56c0 Downloading [==================> ] 5.308MB/14.29MB +2026-10-18T15:29:04+09:00 95121e5a56c0 Verifying Checksum +2026-10-18T15:29:04+09:00 95121e5a56c0 Download complete +2026-10-18T15:29:04+09:00 d9f591c70342 Downloading [==================================================>] 140B/140B +2026-10-18T15:29:04+09:00 d9f591c70342 Verifying Checksum +2026-10-18T15:29:04+09:00 d9f591c70342 Download complete +2026-10-18T15:29:04+09:00 4f4fb700ef54 Downloading [==================================================>] 32B/32B +2026-10-18T15:29:04+09:00 4f4fb700ef54 Download complete +2026-10-18T15:29:04+09:00 4ed485d78f72 Downloading [==================================================>] 668B/668B +2026-10-18T15:29:04+09:00 4ed485d78f72 Verifying Checksum +2026-10-18T15:29:04+09:00 4ed485d78f72 Download complete +2026-10-18T15:29:04+09:00 4831516dd0cb Downloading [> ] 294.3kB/28.23MB +2026-10-18T15:29:04+09:00 4831516dd0cb Downloading [=========================> ] 14.45MB/28.23MB +2026-10-18T15:29:04+09:00 9f4a0348ad2e Downloading [==================================================>] 1.169kB/1.169kB +2026-10-18T15:29:04+09:00 9f4a0348ad2e Verifying Checksum +2026-10-18T15:29:04+09:00 9f4a0348ad2e Download complete +2026-10-18T15:29:04+09:00 6b6aac9d7476 Downloading [> ] 48.51kB/4.534MB +2026-10-18T15:29:04+09:00 4831516dd0cb Verifying Checksum +2026-10-18T15:29:04+09:00 4831516dd0cb Download complete +2026-10-18T15:29:04+09:00 d8a310896f84 Downloading [> ] 16.38kB/1.25MB +2026-10-18T15:29:04+09:00 6b6aac9d7476 Downloading [======> ] 589.2kB/4.534MB +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Downloading [> ] 84.7kB/8.066MB +2026-10-18T15:29:04+09:00 4831516dd0cb Extracting [> ] 294.9kB/28.23MB +2026-10-18T15:29:04+09:00 d8a310896f84 Verifying Checksum +2026-10-18T15:29:04+09:00 d8a310896f84 Download complete +2026-10-18T15:29:04+09:00 6b6aac9d7476 Verifying Checksum +2026-10-18T15:29:04+09:00 6b6aac9d7476 Download complete +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Downloading [============================================> ] 7.216MB/8.066MB +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Verifying Checksum +2026-10-18T15:29:04+09:00 99bb4ce30ad3 Download complete +2026-10-18T15:29:04+09:00 4831516dd0cb Extracting [==============> ] 7.963MB/28.23MB +2026-10-18T15:29:05+09:00 31b6f2223c4b Downloading [> ] 15.74kB/1.196MB +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [======================> ] 12.98MB/28.23MB +2026-10-18T15:29:05+09:00 9da35c01411f Downloading [==================================================>] 116B/116B +2026-10-18T15:29:05+09:00 9da35c01411f Verifying Checksum +2026-10-18T15:29:05+09:00 9da35c01411f Download complete +2026-10-18T15:29:05+09:00 a6809e067bc1 Downloading [==================================================>] 3.141kB/3.141kB +2026-10-18T15:29:05+09:00 a6809e067bc1 Verifying Checksum +2026-10-18T15:29:05+09:00 a6809e067bc1 Download complete +2026-10-18T15:29:05+09:00 31b6f2223c4b Verifying Checksum +2026-10-18T15:29:05+09:00 31b6f2223c4b Download complete +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [==================================> ] 19.76MB/28.23MB +2026-10-18T15:29:05+09:00 a7ef49b2a615 Downloading [================> ] 3.499kB/10.3kB +2026-10-18T15:29:05+09:00 a7ef49b2a615 Downloading [==================================================>] 10.3kB/10.3kB +2026-10-18T15:29:05+09:00 a7ef49b2a615 Verifying Checksum +2026-10-18T15:29:05+09:00 a7ef49b2a615 Download complete +2026-10-18T15:29:05+09:00 10643155f463 Downloading [> ] 540.4kB/112.8MB +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [==========================================> ] 23.89MB/28.23MB +2026-10-18T15:29:05+09:00 29d37472e7c3 Download complete +2026-10-18T15:29:05+09:00 10643155f463 Downloading [=====> ] 11.34MB/112.8MB +2026-10-18T15:29:05+09:00 4d2363af1825 Downloading [==================================================>] 168B/168B +2026-10-18T15:29:05+09:00 4d2363af1825 Verifying Checksum +2026-10-18T15:29:05+09:00 4d2363af1825 Download complete +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [================================================> ] 27.13MB/28.23MB +2026-10-18T15:29:05+09:00 4a14fbbe260a Downloading [=============================> ] 3.5kB/5.84kB +2026-10-18T15:29:05+09:00 4a14fbbe260a Downloading [==================================================>] 5.84kB/5.84kB +2026-10-18T15:29:05+09:00 4a14fbbe260a Verifying Checksum +2026-10-18T15:29:05+09:00 4a14fbbe260a Download complete +2026-10-18T15:29:05+09:00 10643155f463 Downloading [======================> ] 50.24MB/112.8MB +2026-10-18T15:29:05+09:00 8cced4a98c7e Downloading [==================================================>] 186B/186B +2026-10-18T15:29:05+09:00 8cced4a98c7e Verifying Checksum +2026-10-18T15:29:05+09:00 8cced4a98c7e Download complete +2026-10-18T15:29:05+09:00 10643155f463 Downloading [=========================================> ] 92.91MB/112.8MB +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [================================================> ] 27.43MB/28.23MB +2026-10-18T15:29:05+09:00 4909bfb5f5ed Downloading [======> ] 16.38kB/123.1kB +2026-10-18T15:29:05+09:00 10643155f463 Verifying Checksum +2026-10-18T15:29:05+09:00 10643155f463 Download complete +2026-10-18T15:29:05+09:00 4909bfb5f5ed Downloading [==================================================>] 123.1kB/123.1kB +2026-10-18T15:29:05+09:00 4909bfb5f5ed Verifying Checksum +2026-10-18T15:29:05+09:00 4909bfb5f5ed Download complete +2026-10-18T15:29:05+09:00 4831516dd0cb Extracting [==================================================>] 28.23MB/28.23MB +2026-10-18T15:29:05+09:00 3e1ddef0ec36 Downloading [> ] 16.38kB/1.451MB +2026-10-18T15:29:05+09:00 3e1ddef0ec36 Downloading [==================================================>] 1.451MB/1.451MB +2026-10-18T15:29:05+09:00 3e1ddef0ec36 Verifying Checksum +2026-10-18T15:29:05+09:00 3e1ddef0ec36 Download complete +2026-10-18T15:29:06+09:00 4831516dd0cb Pull complete +2026-10-18T15:29:07+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:29:07+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:29:09+09:00 d78be5cc1e53 Pull complete +2026-10-18T15:29:09+09:00 fe2c7735354a Extracting [==> ] 32.77kB/666.5kB +2026-10-18T15:29:09+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:29:09+09:00 9f4a0348ad2e Pull complete +2026-10-18T15:29:09+09:00 6b6aac9d7476 Extracting [> ] 65.54kB/4.534MB +2026-10-18T15:29:09+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:29:09+09:00 6b6aac9d7476 Extracting [==================================================>] 4.534MB/4.534MB +2026-10-18T15:29:09+09:00 fe2c7735354a Pull complete +2026-10-18T15:29:09+09:00 6b6aac9d7476 Pull complete +2026-10-18T15:29:09+09:00 d8a310896f84 Extracting [=> ] 32.77kB/1.25MB +2026-10-18T15:29:09+09:00 95121e5a56c0 Extracting [> ] 163.8kB/14.29MB +2026-10-18T15:29:09+09:00 d8a310896f84 Extracting [==================================================>] 1.25MB/1.25MB +2026-10-18T15:29:09+09:00 d8a310896f84 Pull complete +2026-10-18T15:29:09+09:00 99bb4ce30ad3 Extracting [> ] 98.3kB/8.066MB +2026-10-18T15:29:09+09:00 95121e5a56c0 Extracting [====================> ] 5.898MB/14.29MB +2026-10-18T15:29:09+09:00 99bb4ce30ad3 Extracting [=======================> ] 3.834MB/8.066MB +2026-10-18T15:29:09+09:00 95121e5a56c0 Extracting [==================================================>] 14.29MB/14.29MB +2026-10-18T15:29:09+09:00 99bb4ce30ad3 Extracting [======================================> ] 6.291MB/8.066MB +2026-10-18T15:29:09+09:00 99bb4ce30ad3 Extracting [==================================================>] 8.066MB/8.066MB +2026-10-18T15:29:09+09:00 95121e5a56c0 Pull complete +2026-10-18T15:29:09+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:29:09+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:29:09+09:00 99bb4ce30ad3 Pull complete +2026-10-18T15:29:09+09:00 d9f591c70342 Pull complete +2026-10-18T15:29:09+09:00 31b6f2223c4b Extracting [=> ] 32.77kB/1.196MB +2026-10-18T15:29:09+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:29:09+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:29:09+09:00 4f4fb700ef54 Pull complete +2026-10-18T15:29:09+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:29:09+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:29:09+09:00 4ed485d78f72 Pull complete +2026-10-18T15:29:09+09:00 valkey Pulled +2026-10-18T15:29:09+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:29:09+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:29:09+09:00 31b6f2223c4b Pull complete +2026-10-18T15:29:09+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:29:09+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:29:09+09:00 9da35c01411f Pull complete +2026-10-18T15:29:09+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:29:09+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:29:09+09:00 a6809e067bc1 Pull complete +2026-10-18T15:29:09+09:00 10643155f463 Extracting [> ] 557.1kB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [===> ] 8.913MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [======> ] 15.6MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [==========> ] 23.4MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [===============> ] 35.09MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [====================> ] 47.35MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [========================> ] 56.26MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [=============================> ] 66.85MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [===================================> ] 80.22MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [========================================> ] 91.91MB/112.8MB +2026-10-18T15:29:10+09:00 10643155f463 Extracting [===========================================> ] 98.04MB/112.8MB +2026-10-18T15:29:11+09:00 10643155f463 Extracting [=============================================> ] 103.1MB/112.8MB +2026-10-18T15:29:11+09:00 10643155f463 Extracting [===============================================> ] 107.5MB/112.8MB +2026-10-18T15:29:11+09:00 10643155f463 Extracting [================================================> ] 110.3MB/112.8MB +2026-10-18T15:29:11+09:00 10643155f463 Extracting [=================================================> ] 111.4MB/112.8MB +2026-10-18T15:29:11+09:00 10643155f463 Extracting [==================================================>] 112.8MB/112.8MB +2026-10-18T15:29:13+09:00 10643155f463 Pull complete +2026-10-18T15:29:13+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:29:13+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:29:13+09:00 a7ef49b2a615 Pull complete +2026-10-18T15:29:13+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:29:13+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:29:13+09:00 29d37472e7c3 Pull complete +2026-10-18T15:29:13+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:29:13+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:29:13+09:00 4d2363af1825 Pull complete +2026-10-18T15:29:13+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:29:13+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:29:13+09:00 4a14fbbe260a Pull complete +2026-10-18T15:29:13+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:29:13+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:29:13+09:00 8cced4a98c7e Pull complete +2026-10-18T15:29:13+09:00 4909bfb5f5ed Extracting [=============> ] 32.77kB/123.1kB +2026-10-18T15:29:13+09:00 4909bfb5f5ed Extracting [==================================================>] 123.1kB/123.1kB +2026-10-18T15:29:13+09:00 4909bfb5f5ed Pull complete +2026-10-18T15:29:13+09:00 3e1ddef0ec36 Extracting [=> ] 32.77kB/1.451MB +2026-10-18T15:29:13+09:00 3e1ddef0ec36 Extracting [==================================================>] 1.451MB/1.451MB +2026-10-18T15:29:13+09:00 3e1ddef0ec36 Pull complete +2026-10-18T15:29:13+09:00 postgres Pulled +2026-10-18T15:29:13+09:00 #1 [internal] load local bake definitions +2026-10-18T15:29:13+09:00 #1 reading from stdin 449B done +2026-10-18T15:29:13+09:00 #1 DONE 0.0s +2026-10-18T15:29:13+09:00 +2026-10-18T15:29:13+09:00 #2 [internal] load build definition from Dockerfile +2026-10-18T15:29:13+09:00 #2 transferring dockerfile: 500B done +2026-10-18T15:29:13+09:00 #2 DONE 0.0s +2026-10-18T15:29:13+09:00 +2026-10-18T15:29:13+09:00 #3 [auth] library/python:pull token for registry-1.docker.io +2026-10-18T15:29:13+09:00 #3 DONE 0.0s +2026-10-18T15:29:13+09:00 +2026-10-18T15:29:13+09:00 #4 [internal] load metadata for docker.io/library/python:3.11-slim +2026-10-18T15:29:13+09:00 #4 DONE 0.6s +2026-10-18T15:29:14+09:00 +2026-10-18T15:29:14+09:00 #5 [internal] load .dockerignore +2026-10-18T15:29:14+09:00 #5 transferring context: 2B done +2026-10-18T15:29:14+09:00 #5 DONE 0.0s +2026-10-18T15:29:14+09:00 +2026-10-18T15:29:14+09:00 #6 [internal] load build context +2026-10-18T15:29:14+09:00 #6 transferring context: 16.83kB done +2026-10-18T15:29:14+09:00 #6 DONE 0.0s +2026-10-18T15:29:14+09:00 +2026-10-18T15:29:14+09:00 #7 [1/8] FROM docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce +2026-10-18T15:29:14+09:00 #7 resolve docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce done +2026-10-18T15:29:14+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0B / 14.46MB 0.1s +2026-10-18T15:29:14+09:00 #7 sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce 10.37kB / 10.37kB done +2026-10-18T15:29:14+09:00 #7 sha256:e529028263dbe6910a2d96f7d2b8f5266385e917fd45d286ef166977c094a51e 1.75kB / 1.75kB done +2026-10-18T15:29:14+09:00 #7 sha256:541096ae9b05d3b850341b78790e2ed31e94d5aa0ea086933c6ff0c09ffa2e63 5.49kB / 5.49kB done +2026-10-18T15:29:14+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0B / 29.84MB 0.1s +2026-10-18T15:29:14+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0B / 1.29MB 0.1s +2026-10-18T15:29:14+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 10.49MB / 29.84MB 0.2s +2026-10-18T15:29:14+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 1.29MB / 1.29MB 0.2s done +2026-10-18T15:29:14+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 0B / 250B 0.2s +2026-10-18T15:29:14+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.4s +2026-10-18T15:29:14+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.4s +2026-10-18T15:29:14+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 250B / 250B 0.2s done +2026-10-18T15:29:14+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.4s done +2026-10-18T15:29:14+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.4s done +2026-10-18T15:29:14+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.1s +2026-10-18T15:29:15+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.6s done +2026-10-18T15:29:15+09:00 #7 extracting sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0.1s done +2026-10-18T15:29:15+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 +2026-10-18T15:29:16+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0.4s done +2026-10-18T15:29:16+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d +2026-10-18T15:29:16+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d done +2026-10-18T15:29:16+09:00 #7 DONE 2.4s +2026-10-18T15:29:16+09:00 +2026-10-18T15:29:16+09:00 #8 [2/8] WORKDIR /app +2026-10-18T15:29:16+09:00 #8 DONE 0.0s +2026-10-18T15:29:16+09:00 +2026-10-18T15:29:16+09:00 #9 [3/8] COPY requirements.txt . +2026-10-18T15:29:16+09:00 #9 DONE 0.0s +2026-10-18T15:29:16+09:00 +2026-10-18T15:29:16+09:00 #10 [4/8] RUN pip install --no-cache-dir -r requirements.txt +2026-10-18T15:29:17+09:00 #10 1.075 Looking in indexes: <설정된 서버> <설정된 서버> +2026-10-18T15:29:17+09:00 #10 1.075 Ignoring torch: markers 'sys_platform != "linux" or platform_machine != "x86_64"' don't match your environment +2026-10-18T15:29:17+09:00 #10 1.414 Collecting fastapi==0.115.0 (from -r requirements.txt (line 4)) +2026-10-18T15:29:17+09:00 #10 1.475 Downloading fastapi-0.115.0-py3-none-any.whl.metadata (27 kB) +2026-10-18T15:29:17+09:00 #10 1.567 Collecting uvicorn==0.30.6 (from -r requirements.txt (line 5)) +2026-10-18T15:29:18+09:00 #10 1.584 Downloading uvicorn-0.30.6-py3-none-any.whl.metadata (6.6 kB) +2026-10-18T15:29:18+09:00 #10 1.662 Collecting FlagEmbedding==1.2.11 (from -r requirements.txt (line 6)) +2026-10-18T15:29:18+09:00 #10 1.678 Downloading FlagEmbedding-1.2.11.tar.gz (147 kB) +2026-10-18T15:29:18+09:00 #10 1.701 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.1/147.1 kB 6.6 MB/s eta 0:00:00 +2026-10-18T15:29:18+09:00 #10 1.716 Preparing metadata (setup.py): started +2026-10-18T15:29:18+09:00 #10 1.933 Preparing metadata (setup.py): finished with status 'done' +2026-10-18T15:29:18+09:00 #10 2.107 Collecting torch==2.4.1+cpu (from -r requirements.txt (line 9)) +2026-10-18T15:29:18+09:00 #10 2.272 Downloading <설정된 서버> (194.9 MB) +2026-10-18T15:29:19+09:00 #10 3.072 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.9/194.9 MB 262.3 MB/s eta 0:00:00 +2026-10-18T15:29:19+09:00 #10 3.363 Collecting transformers==4.44.2 (from -r requirements.txt (line 11)) +2026-10-18T15:29:19+09:00 #10 3.380 Downloading transformers-4.44.2-py3-none-any.whl.metadata (43 kB) +2026-10-18T15:29:19+09:00 #10 3.381 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 kB 427.6 MB/s eta 0:00:00 +2026-10-18T15:29:19+09:00 #10 3.463 Collecting peft==0.12.0 (from -r requirements.txt (line 12)) +2026-10-18T15:29:19+09:00 #10 3.479 Downloading peft-0.12.0-py3-none-any.whl.metadata (13 kB) +2026-10-18T15:29:20+09:00 #10 3.914 Collecting numpy==1.26.4 (from -r requirements.txt (line 13)) +2026-10-18T15:29:20+09:00 #10 3.930 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB) +2026-10-18T15:29:20+09:00 #10 3.932 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 79.4 MB/s eta 0:00:00 +2026-10-18T15:29:20+09:00 #10 4.162 Collecting pyarrow==21.0.0 (from -r requirements.txt (line 15)) +2026-10-18T15:29:20+09:00 #10 4.179 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.3 kB) +2026-10-18T15:29:20+09:00 #10 4.321 Collecting starlette<0.39.0,>=0.37.2 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:20+09:00 #10 4.337 Downloading starlette-0.38.6-py3-none-any.whl.metadata (6.0 kB) +2026-10-18T15:29:20+09:00 #10 4.498 Collecting pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:21+09:00 #10 4.515 Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB) +2026-10-18T15:29:21+09:00 #10 4.519 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.0/133.0 kB 46.6 MB/s eta 0:00:00 +2026-10-18T15:29:21+09:00 #10 4.572 Collecting typing-extensions>=4.8.0 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:21+09:00 #10 4.588 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) +2026-10-18T15:29:21+09:00 #10 4.672 Collecting click>=7.0 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:29:21+09:00 #10 4.687 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:29:21+09:00 #10 4.755 Collecting h11>=0.8 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:29:21+09:00 #10 4.770 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) +2026-10-18T15:29:21+09:00 #10 4.866 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:21+09:00 #10 4.883 Downloading datasets-5.1.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:29:21+09:00 #10 4.966 Collecting accelerate>=0.20.1 (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:21+09:00 #10 4.984 Downloading accelerate-1.15.0-py3-none-any.whl.metadata (19 kB) +2026-10-18T15:29:21+09:00 #10 5.118 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:21+09:00 #10 5.135 Downloading sentence_transformers-6.1.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:29:21+09:00 #10 5.204 Collecting filelock (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:21+09:00 #10 5.219 Downloading filelock-4.2.1-py3-none-any.whl.metadata (2.0 kB) +2026-10-18T15:29:21+09:00 #10 5.346 Collecting sympy (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:21+09:00 #10 5.363 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB) +2026-10-18T15:29:21+09:00 #10 5.424 Collecting networkx (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:21+09:00 #10 5.440 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB) +2026-10-18T15:29:21+09:00 #10 5.483 Collecting jinja2 (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:22+09:00 #10 5.499 Downloading <설정된 서버> (2.9 kB) +2026-10-18T15:29:22+09:00 #10 5.560 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:22+09:00 #10 5.576 Downloading fsspec-2026.9.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:29:22+09:00 #10 5.789 Collecting huggingface-hub<1.0,>=0.23.2 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:22+09:00 #10 5.805 Downloading huggingface_hub-0.36.2-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:29:22+09:00 #10 5.816 Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/site-packages (from transformers==4.44.2->-r requirements.txt (line 11)) (26.3) +2026-10-18T15:29:22+09:00 #10 5.907 Collecting pyyaml>=5.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:22+09:00 #10 5.923 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) +2026-10-18T15:29:22+09:00 #10 6.348 Collecting regex!=2019.12.17 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:22+09:00 #10 6.365 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) +2026-10-18T15:29:22+09:00 #10 6.366 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 kB 296.5 MB/s eta 0:00:00 +2026-10-18T15:29:22+09:00 #10 6.418 Collecting requests (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:22+09:00 #10 6.434 Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) +2026-10-18T15:29:22+09:00 #10 6.577 Collecting safetensors>=0.4.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:23+09:00 #10 6.593 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) +2026-10-18T15:29:23+09:00 #10 6.861 Collecting tokenizers<0.20,>=0.19 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:23+09:00 #10 6.878 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB) +2026-10-18T15:29:23+09:00 #10 6.939 Collecting tqdm>=4.27 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:23+09:00 #10 6.955 Downloading tqdm-4.70.1-py3-none-any.whl.metadata (57 kB) +2026-10-18T15:29:23+09:00 #10 6.957 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB 330.4 MB/s eta 0:00:00 +2026-10-18T15:29:23+09:00 #10 7.078 Collecting psutil (from peft==0.12.0->-r requirements.txt (line 12)) +2026-10-18T15:29:23+09:00 #10 7.094 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) +2026-10-18T15:29:23+09:00 #10 7.290 Collecting hf-xet<2.0.0,>=1.1.3 (from huggingface-hub<1.0,>=0.23.2->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:23+09:00 #10 7.305 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB) +2026-10-18T15:29:23+09:00 #10 7.422 Collecting annotated-types>=0.6.0 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:23+09:00 #10 7.437 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:29:24+09:00 #10 8.082 Collecting pydantic-core==2.50.1 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:24+09:00 #10 8.097 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB) +2026-10-18T15:29:24+09:00 #10 8.170 Collecting typing-inspection>=0.4.4 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:24+09:00 #10 8.186 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:29:24+09:00 #10 8.282 Collecting anyio<5,>=3.4.0 (from starlette<0.39.0,>=0.37.2->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:29:24+09:00 #10 8.298 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) +2026-10-18T15:29:24+09:00 #10 8.385 INFO: pip is looking at multiple versions of datasets to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:29:24+09:00 #10 8.389 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:24+09:00 #10 8.406 Downloading datasets-5.0.1-py3-none-any.whl.metadata (23 kB) +2026-10-18T15:29:24+09:00 #10 8.524 Collecting dill<0.4.2,>=0.3.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:25+09:00 #10 8.540 Downloading dill-0.4.1-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:29:25+09:00 #10 8.721 Collecting pandas (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:25+09:00 #10 8.737 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB) +2026-10-18T15:29:25+09:00 #10 8.739 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 131.0 MB/s eta 0:00:00 +2026-10-18T15:29:25+09:00 #10 8.827 Collecting httpx<1.0.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:25+09:00 #10 8.843 Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:29:25+09:00 #10 9.190 Collecting xxhash (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:25+09:00 #10 9.205 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (17 kB) +2026-10-18T15:29:25+09:00 #10 9.287 Collecting multiprocess<0.70.20 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:25+09:00 #10 9.304 Downloading multiprocess-0.70.19-py311-none-any.whl.metadata (7.5 kB) +2026-10-18T15:29:25+09:00 #10 9.318 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:25+09:00 #10 9.335 Downloading fsspec-2026.6.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:29:25+09:00 #10 9.509 Collecting charset_normalizer<4,>=2 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:26+09:00 #10 9.525 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (46 kB) +2026-10-18T15:29:26+09:00 #10 9.527 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.4/46.4 kB 397.8 MB/s eta 0:00:00 +2026-10-18T15:29:26+09:00 #10 9.572 Collecting idna<4,>=2.5 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:26+09:00 #10 9.588 Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB) +2026-10-18T15:29:26+09:00 #10 9.641 Collecting urllib3<3,>=1.26 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:26+09:00 #10 9.657 Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB) +2026-10-18T15:29:26+09:00 #10 9.703 Collecting certifi>=2023.5.7 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:29:26+09:00 #10 9.719 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) +2026-10-18T15:29:26+09:00 #10 9.796 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:26+09:00 #10 9.812 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) +2026-10-18T15:29:26+09:00 #10 9.860 INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:29:26+09:00 #10 9.863 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:26+09:00 #10 9.879 Downloading sentence_transformers-6.0.1-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:29:26+09:00 #10 9.907 Downloading sentence_transformers-6.0.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:29:26+09:00 #10 9.936 Downloading sentence_transformers-5.7.0-py3-none-any.whl.metadata (18 kB) +2026-10-18T15:29:26+09:00 #10 10.10 Collecting scikit-learn>=0.22.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:26+09:00 #10 10.12 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.3 kB) +2026-10-18T15:29:26+09:00 #10 10.26 Collecting scipy>=1.0.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:26+09:00 #10 10.28 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) +2026-10-18T15:29:26+09:00 #10 10.28 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 439.4 MB/s eta 0:00:00 +2026-10-18T15:29:26+09:00 #10 10.35 Collecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:29:26+09:00 #10 10.36 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB) +2026-10-18T15:29:27+09:00 #10 11.02 Collecting aiohttp!=4.0.0a0,!=4.0.0a1 (from fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:27+09:00 #10 11.04 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.3 kB) +2026-10-18T15:29:27+09:00 #10 11.18 Collecting httpcore==1.* (from httpx<1.0.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:27+09:00 #10 11.20 Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB) +2026-10-18T15:29:27+09:00 #10 11.31 Collecting joblib>=1.4.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:27+09:00 #10 11.33 Downloading joblib-1.6.0-py3-none-any.whl.metadata (6.5 kB) +2026-10-18T15:29:27+09:00 #10 11.42 Collecting narwhals>=2.0.1 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 11.44 Downloading narwhals-2.27.1-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:29:28+09:00 #10 11.51 Collecting threadpoolctl>=3.5.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 11.52 Downloading threadpoolctl-3.7.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:29:28+09:00 #10 11.67 Collecting python-dateutil>=2.8.2 (from pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 11.69 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) +2026-10-18T15:29:28+09:00 #10 11.77 Collecting aiohappyeyeballs>=2.5.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 11.79 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl.metadata (5.9 kB) +2026-10-18T15:29:28+09:00 #10 11.86 Collecting aiosignal>=1.4.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 11.87 Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB) +2026-10-18T15:29:28+09:00 #10 12.00 Collecting attrs>=17.3.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 12.02 Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB) +2026-10-18T15:29:28+09:00 #10 12.12 Collecting frozenlist>=1.1.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 12.14 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (20 kB) +2026-10-18T15:29:28+09:00 #10 12.42 Collecting multidict<8.0,>=4.5 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:28+09:00 #10 12.44 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (6.2 kB) +2026-10-18T15:29:29+09:00 #10 12.83 Collecting propcache>=0.2.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:29+09:00 #10 12.84 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (25 kB) +2026-10-18T15:29:29+09:00 #10 13.07 Collecting yarl<2.0,>=1.25.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:29+09:00 #10 13.09 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (111 kB) +2026-10-18T15:29:29+09:00 #10 13.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.6/111.6 kB 63.8 MB/s eta 0:00:00 +2026-10-18T15:29:29+09:00 #10 13.18 Collecting cloudpickle>=3.0 (from joblib>=1.4.0->scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:29+09:00 #10 13.19 Downloading cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:29:29+09:00 #10 13.34 Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:29:29+09:00 #10 13.35 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) +2026-10-18T15:29:29+09:00 #10 13.44 Downloading fastapi-0.115.0-py3-none-any.whl (94 kB) +2026-10-18T15:29:29+09:00 #10 13.44 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.6/94.6 kB 73.7 MB/s eta 0:00:00 +2026-10-18T15:29:29+09:00 #10 13.46 Downloading uvicorn-0.30.6-py3-none-any.whl (62 kB) +2026-10-18T15:29:29+09:00 #10 13.46 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 463.7 MB/s eta 0:00:00 +2026-10-18T15:29:29+09:00 #10 13.47 Downloading transformers-4.44.2-py3-none-any.whl (9.5 MB) +2026-10-18T15:29:30+09:00 #10 13.59 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 81.5 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.61 Downloading peft-0.12.0-py3-none-any.whl (296 kB) +2026-10-18T15:29:30+09:00 #10 13.61 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 296.4/296.4 kB 221.2 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.63 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB) +2026-10-18T15:29:30+09:00 #10 13.71 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 197.9 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.74 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (42.8 MB) +2026-10-18T15:29:30+09:00 #10 13.90 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 272.4 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.92 Downloading accelerate-1.15.0-py3-none-any.whl (394 kB) +2026-10-18T15:29:30+09:00 #10 13.92 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.3/394.3 kB 344.7 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.94 Downloading click-8.5.0-py3-none-any.whl (125 kB) +2026-10-18T15:29:30+09:00 #10 13.94 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.3/125.3 kB 477.7 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.96 Downloading h11-0.16.0-py3-none-any.whl (37 kB) +2026-10-18T15:29:30+09:00 #10 13.97 Downloading huggingface_hub-0.36.2-py3-none-any.whl (566 kB) +2026-10-18T15:29:30+09:00 #10 13.98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 566.4/566.4 kB 637.0 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 13.99 Downloading pydantic-2.14.1-py3-none-any.whl (488 kB) +2026-10-18T15:29:30+09:00 #10 13.99 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 488.1/488.1 kB 629.2 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.01 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB) +2026-10-18T15:29:30+09:00 #10 14.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 550.5 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.03 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) +2026-10-18T15:29:30+09:00 #10 14.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 611.4 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.05 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (804 kB) +2026-10-18T15:29:30+09:00 #10 14.05 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 805.0/805.0 kB 631.7 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.07 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (516 kB) +2026-10-18T15:29:30+09:00 #10 14.07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.0/516.0 kB 566.5 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.08 Downloading starlette-0.38.6-py3-none-any.whl (71 kB) +2026-10-18T15:29:30+09:00 #10 14.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.5/71.5 kB 525.7 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.10 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB) +2026-10-18T15:29:30+09:00 #10 14.11 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 347.8 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.13 Downloading tqdm-4.70.1-py3-none-any.whl (80 kB) +2026-10-18T15:29:30+09:00 #10 14.13 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 509.5 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.15 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) +2026-10-18T15:29:30+09:00 #10 14.15 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.6/45.6 kB 400.7 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.17 Downloading datasets-5.0.1-py3-none-any.whl (559 kB) +2026-10-18T15:29:30+09:00 #10 14.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 559.1/559.1 kB 240.1 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.19 Downloading fsspec-2026.6.0-py3-none-any.whl (203 kB) +2026-10-18T15:29:30+09:00 #10 14.19 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 203.9/203.9 kB 588.8 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.20 Downloading requests-2.34.2-py3-none-any.whl (73 kB) +2026-10-18T15:29:30+09:00 #10 14.21 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 433.3 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.22 Downloading filelock-4.2.1-py3-none-any.whl (162 kB) +2026-10-18T15:29:30+09:00 #10 14.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 482.1 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.24 Downloading <설정된 서버> (134 kB) +2026-10-18T15:29:30+09:00 #10 14.24 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 374.8 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.26 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB) +2026-10-18T15:29:30+09:00 #10 14.26 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 569.0 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.28 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) +2026-10-18T15:29:30+09:00 #10 14.28 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.6/155.6 kB 558.4 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.30 Downloading sentence_transformers-5.7.0-py3-none-any.whl (611 kB) +2026-10-18T15:29:30+09:00 #10 14.30 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 611.3/611.3 kB 606.6 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.32 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB) +2026-10-18T15:29:30+09:00 #10 14.33 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 546.8 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.35 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) +2026-10-18T15:29:30+09:00 #10 14.36 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) +2026-10-18T15:29:30+09:00 #10 14.37 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 538.8 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.38 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) +2026-10-18T15:29:30+09:00 #10 14.38 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.0/137.0 kB 471.0 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.40 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB) +2026-10-18T15:29:30+09:00 #10 14.40 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 270.0/270.0 kB 578.0 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.42 Downloading dill-0.4.1-py3-none-any.whl (120 kB) +2026-10-18T15:29:30+09:00 #10 14.42 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.0/120.0 kB 403.5 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.44 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.2 MB) +2026-10-18T15:29:30+09:00 #10 14.45 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 601.3 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.46 Downloading httpx-0.28.1-py3-none-any.whl (73 kB) +2026-10-18T15:29:30+09:00 #10 14.46 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.5/73.5 kB 422.4 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.48 Downloading httpcore-1.0.9-py3-none-any.whl (78 kB) +2026-10-18T15:29:30+09:00 #10 14.48 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.8/78.8 kB 446.9 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.50 Downloading idna-3.20-py3-none-any.whl (69 kB) +2026-10-18T15:29:30+09:00 #10 14.50 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.6/69.6 kB 475.6 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.52 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) +2026-10-18T15:29:30+09:00 #10 14.53 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB) +2026-10-18T15:29:30+09:00 #10 14.53 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 553.0 MB/s eta 0:00:00 +2026-10-18T15:29:30+09:00 #10 14.55 Downloading multiprocess-0.70.19-py311-none-any.whl (144 kB) +2026-10-18T15:29:31+09:00 #10 14.55 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.5/144.5 kB 506.5 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.57 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.3 MB) +2026-10-18T15:29:31+09:00 #10 14.60 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 293.6 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.62 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.3 MB) +2026-10-18T15:29:31+09:00 #10 14.71 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.3/35.3 MB 575.9 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.73 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) +2026-10-18T15:29:31+09:00 #10 14.74 Downloading urllib3-2.8.0-py3-none-any.whl (135 kB) +2026-10-18T15:29:31+09:00 #10 14.75 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.7/135.7 kB 556.9 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.76 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.1 MB) +2026-10-18T15:29:31+09:00 #10 14.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.1/11.1 MB 361.9 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.81 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (261 kB) +2026-10-18T15:29:31+09:00 #10 14.81 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 261.0/261.0 kB 596.9 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.83 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB) +2026-10-18T15:29:31+09:00 #10 14.84 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 499.0 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.85 Downloading joblib-1.6.0-py3-none-any.whl (306 kB) +2026-10-18T15:29:31+09:00 #10 14.86 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 306.1/306.1 kB 613.0 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.87 Downloading narwhals-2.27.1-py3-none-any.whl (483 kB) +2026-10-18T15:29:31+09:00 #10 14.87 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 483.2/483.2 kB 619.3 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.89 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) +2026-10-18T15:29:31+09:00 #10 14.89 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 580.3 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.91 Downloading threadpoolctl-3.7.0-py3-none-any.whl (26 kB) +2026-10-18T15:29:31+09:00 #10 14.92 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl (15 kB) +2026-10-18T15:29:31+09:00 #10 14.94 Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB) +2026-10-18T15:29:31+09:00 #10 14.96 Downloading attrs-26.1.0-py3-none-any.whl (67 kB) +2026-10-18T15:29:31+09:00 #10 14.96 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.5/67.5 kB 454.4 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 14.97 Downloading cloudpickle-3.1.2-py3-none-any.whl (22 kB) +2026-10-18T15:29:31+09:00 #10 14.99 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (231 kB) +2026-10-18T15:29:31+09:00 #10 14.99 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.1/231.1 kB 598.1 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 15.01 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (480 kB) +2026-10-18T15:29:31+09:00 #10 15.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 480.4/480.4 kB 617.0 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 15.03 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (235 kB) +2026-10-18T15:29:31+09:00 #10 15.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.4/235.4 kB 540.5 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 15.04 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) +2026-10-18T15:29:31+09:00 #10 15.06 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (117 kB) +2026-10-18T15:29:31+09:00 #10 15.06 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.7/117.7 kB 552.3 MB/s eta 0:00:00 +2026-10-18T15:29:31+09:00 #10 15.23 Building wheels for collected packages: FlagEmbedding +2026-10-18T15:29:31+09:00 #10 15.23 Building wheel for FlagEmbedding (setup.py): started +2026-10-18T15:29:31+09:00 #10 15.43 Building wheel for FlagEmbedding (setup.py): finished with status 'done' +2026-10-18T15:29:31+09:00 #10 15.43 Created wheel for FlagEmbedding: filename=flagembedding-1.2.11-py3-none-any.whl size=171233 sha256=81e37fbfb5323d80e73367683a052cb98ef965d560fecabd1102b3206d0173a8 +2026-10-18T15:29:31+09:00 #10 15.43 Stored in directory: /tmp/pip-ephem-wheel-cache-1g_zaomq/wheels/cc/30/56/331f855b95583721e80ba4d5630f701387dcade9d050c88d9d +2026-10-18T15:29:31+09:00 #10 15.43 Successfully built FlagEmbedding +2026-10-18T15:29:32+09:00 #10 15.94 Installing collected packages: mpmath, xxhash, urllib3, typing-extensions, tqdm, threadpoolctl, sympy, six, safetensors, regex, pyyaml, pyarrow, psutil, propcache, numpy, networkx, narwhals, multidict, MarkupSafe, idna, hf-xet, h11, fsspec, frozenlist, filelock, dill, cloudpickle, click, charset_normalizer, certifi, attrs, annotated-types, aiohappyeyeballs, yarl, uvicorn, typing-inspection, scipy, requests, python-dateutil, pydantic-core, multiprocess, joblib, jinja2, httpcore, anyio, aiosignal, torch, starlette, scikit-learn, pydantic, pandas, huggingface-hub, httpx, aiohttp, tokenizers, fastapi, accelerate, transformers, datasets, sentence_transformers, peft, FlagEmbedding +2026-10-18T15:29:56+09:00 #10 39.72 Successfully installed FlagEmbedding-1.2.11 MarkupSafe-3.0.4 accelerate-1.15.0 aiohappyeyeballs-2.7.1 aiohttp-3.14.5 aiosignal-1.4.0 annotated-types-0.8.0 anyio-4.15.1 attrs-26.1.0 certifi-2026.7.22 charset_normalizer-3.5.2 click-8.5.0 cloudpickle-3.1.2 datasets-5.0.1 dill-0.4.1 fastapi-0.115.0 filelock-4.2.1 frozenlist-1.8.0 fsspec-2026.6.0 h11-0.16.0 hf-xet-1.7.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.36.2 idna-3.20 jinja2-3.1.6 joblib-1.6.0 mpmath-1.3.0 multidict-7.1.0 multiprocess-0.70.19 narwhals-2.27.1 networkx-3.6.1 numpy-1.26.4 pandas-3.0.6 peft-0.12.0 propcache-0.5.4 psutil-7.2.2 pyarrow-21.0.0 pydantic-2.14.1 pydantic-core-2.50.1 python-dateutil-2.9.0.post0 pyyaml-6.0.3 regex-2026.9.29 requests-2.34.2 safetensors-0.8.0 scikit-learn-1.9.1 scipy-1.17.1 sentence_transformers-5.7.0 six-1.17.0 starlette-0.38.6 sympy-1.14.0 threadpoolctl-3.7.0 tokenizers-0.19.1 torch-2.4.1+cpu tqdm-4.70.1 transformers-4.44.2 typing-extensions-4.16.0 typing-inspection-0.4.4 urllib3-2.8.0 uvicorn-0.30.6 xxhash-4.0.1 yarl-1.25.1 +2026-10-18T15:29:56+09:00 #10 39.72 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:29:56+09:00 #10 39.82 +2026-10-18T15:29:56+09:00 #10 39.82 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:29:56+09:00 #10 39.82 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:30:02+09:00 #10 DONE 46.1s +2026-10-18T15:30:02+09:00 +2026-10-18T15:30:02+09:00 #11 [5/8] COPY requirements-observability.txt . +2026-10-18T15:30:02+09:00 #11 DONE 0.0s +2026-10-18T15:30:02+09:00 +2026-10-18T15:30:02+09:00 #12 [6/8] RUN pip install --no-cache-dir -r requirements-observability.txt +2026-10-18T15:30:02+09:00 #12 0.420 Collecting prometheus-client==0.25.0 (from -r requirements-observability.txt (line 1)) +2026-10-18T15:30:03+09:00 #12 0.489 Downloading prometheus_client-0.25.0-py3-none-any.whl.metadata (2.1 kB) +2026-10-18T15:30:03+09:00 #12 0.508 Downloading prometheus_client-0.25.0-py3-none-any.whl (64 kB) +2026-10-18T15:30:03+09:00 #12 0.525 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.2/64.2 kB 3.8 MB/s eta 0:00:00 +2026-10-18T15:30:03+09:00 #12 0.960 Installing collected packages: prometheus-client +2026-10-18T15:30:03+09:00 #12 0.992 Successfully installed prometheus-client-0.25.0 +2026-10-18T15:30:03+09:00 #12 0.993 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:30:03+09:00 #12 1.078 +2026-10-18T15:30:03+09:00 #12 1.078 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:30:03+09:00 #12 1.078 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:30:03+09:00 #12 DONE 1.1s +2026-10-18T15:30:03+09:00 +2026-10-18T15:30:03+09:00 #13 [7/8] RUN python -c "from FlagEmbedding import BGEM3FlagModel" +2026-10-18T15:30:06+09:00 #13 DONE 3.1s +2026-10-18T15:30:06+09:00 +2026-10-18T15:30:06+09:00 #14 [8/8] COPY main.py . +2026-10-18T15:30:06+09:00 #14 DONE 0.0s +2026-10-18T15:30:06+09:00 +2026-10-18T15:30:06+09:00 #15 exporting to image +2026-10-18T15:30:06+09:00 #15 exporting layers +2026-10-18T15:30:12+09:00 #15 exporting layers 5.7s done +2026-10-18T15:30:12+09:00 #15 writing image sha256:d599e6ec81f28068ecfa3b96242b35959623e6f1d05cf0b8c9922b80db77f0a4 done +2026-10-18T15:30:12+09:00 #15 naming to docker.io/library/docgrid-embedding-server done +2026-10-18T15:30:12+09:00 #15 DONE 5.7s +2026-10-18T15:30:12+09:00 +2026-10-18T15:30:12+09:00 #16 resolving provenance for metadata file +2026-10-18T15:30:12+09:00 #16 DONE 0.0s +2026-10-18T15:30:12+09:00 embedding-server Built +2026-10-18T15:30:12+09:00 Network docgrid_docgrid-local Creating +2026-10-18T15:30:12+09:00 Network docgrid_docgrid-local Created +2026-10-18T15:30:12+09:00 Volume "docgrid_postgres17_data" Creating +2026-10-18T15:30:12+09:00 Volume "docgrid_postgres17_data" Created +2026-10-18T15:30:12+09:00 Volume "docgrid_huggingface-cache" Creating +2026-10-18T15:30:12+09:00 Volume "docgrid_huggingface-cache" Created +2026-10-18T15:30:12+09:00 Volume "docgrid_valkey-data" Creating +2026-10-18T15:30:12+09:00 Volume "docgrid_valkey-data" Created +2026-10-18T15:30:12+09:00 Container docgrid-valkey Creating +2026-10-18T15:30:12+09:00 Container docgrid-embedding Creating +2026-10-18T15:30:12+09:00 Container docgrid-postgres17 Creating +2026-10-18T15:30:12+09:00 Container docgrid-postgres17 Created +2026-10-18T15:30:12+09:00 Container docgrid-valkey Created +2026-10-18T15:30:12+09:00 Container docgrid-embedding Created +2026-10-18T15:30:12+09:00 Container docgrid-embedding Starting +2026-10-18T15:30:12+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:30:12+09:00 Container docgrid-valkey Starting +2026-10-18T15:30:12+09:00 Container docgrid-embedding Started +2026-10-18T15:30:12+09:00 Container docgrid-valkey Started +2026-10-18T15:30:12+09:00 Container docgrid-postgres17 Started +2026-10-18T15:30:15+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:30:15+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:30:42+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:30:42+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:30:42+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:30:42+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:30:42+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104137120-1/summary.json b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/summary.json new file mode 100644 index 00000000..75ed1013 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104137120-1/summary.json @@ -0,0 +1,32 @@ +{ + "runId": "39104137120-1", + "revision": "33eb78f32d412c3b148e881d9d8723dc1308143e", + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": [ + { + "id": "preflight", + "purpose": "독립 실행기의 새 환경 확인", + "timestamp": "2026-10-18T15:28:45+09:00", + "verdict": "PASS", + "existingContainers": 0, + "existingImageCount": 6, + "existingVolumes": 0, + "environmentFilesInitiallyPresent": 0, + "workload": { + "documents": 15, + "searchQuestions": 3, + "browserSessions": 1 + } + }, + { + "id": "concurrent-start", + "purpose": "진행 중 start의 잠금으로 두 번째 start 거부", + "timestamp": "2026-10-18T15:28:49+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 0.115, + "log": "concurrent-start.log" + } + ] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/always-cleanup.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/always-cleanup.log new file mode 100644 index 00000000..9485afb4 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/always-cleanup.log @@ -0,0 +1,10 @@ +실행 ID: 39104533807-1/always-cleanup +목적: 시험 중단·완료 후 소유 자원 종료 +시작: 2026-10-18T15:41:19+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:41:22+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +종료: 2026-10-18T15:41:22+09:00 +실제 종료 코드: 0 +소요 시간: 3.422초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser.log new file mode 100644 index 00000000..9d49b5de --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser.log @@ -0,0 +1,10 @@ +실행 ID: 39104533807-1/browser +목적: 실제 Chromium 로그인·질문 전송·원본 다운로드 해시 +시작: 2026-10-18T15:40:31+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: node scripts/demo/browser_smoke.cjs <실행기 작업공간>/.demo/reproduction/39104533807-1/browser +2026-10-18T15:41:19+09:00 {"verdict":"FAIL","stage":"login","errorType":"TimeoutError"} +종료: 2026-10-18T15:41:19+09:00 +실제 종료 코드: 1 +소요 시간: 48.381초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser/summary.json b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser/summary.json new file mode 100644 index 00000000..f0efb7c2 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/browser/summary.json @@ -0,0 +1 @@ +{"verdict":"FAIL","stage":"login","errorType":"TimeoutError"} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/cold-start.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/cold-start.log new file mode 100644 index 00000000..12ffcb98 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/cold-start.log @@ -0,0 +1,11 @@ +실행 ID: 39104533807-1/cold-start +목적: 모델·의존성 최초 준비를 포함한 전체 기동 +시작: 2026-10-18T15:35:26+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start --timeout 1200 +2026-10-18T15:35:30+09:00 [시작] 로컬 시연 세션 a7dc894111e946d9aac3f16b6080ce7f · 범위 search +2026-10-18T15:39:51+09:00 [준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요. +종료: 2026-10-18T15:39:51+09:00 +실제 종료 코드: 0 +소요 시간: 265.87초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/concurrent-start.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/concurrent-start.log new file mode 100644 index 00000000..ad16b512 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/concurrent-start.log @@ -0,0 +1,10 @@ +실행 ID: 39104533807-1/concurrent-start +목적: 진행 중 start의 잠금으로 두 번째 start 거부 +시작: 2026-10-18T15:35:31+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start +2026-10-18T15:35:31+09:00 [실패] 다른 시작·검증·종료 명령이 실행 중입니다. +종료: 2026-10-18T15:35:31+09:00 +실제 종료 코드: 1 +소요 시간: 0.114초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/events.jsonl new file mode 100644 index 00000000..2644fe75 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/events.jsonl @@ -0,0 +1,58 @@ +{"timestamp": "2026-10-18T15:39:53.338+09:00", "message": "[실행] 20261018T153953335897+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:39:53.579+09:00", "message": "[계정] 회원가입 완료"} +{"timestamp": "2026-10-18T15:39:53.759+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:39:54.456+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:39:54.508+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:39:54.564+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:39:54.616+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:39:54.662+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:39:54.711+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:39:54.758+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:39:54.803+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:39:54.857+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:39:54.909+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:39:54.957+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:39:54.998+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:39:55.042+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:39:55.084+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:39:55.130+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:39:55.528+09:00", "message": "[인덱싱] INDEXED 0/15 · 처리 중 0 · 대기 15 · 실패 0 (0.4초)"} +{"timestamp": "2026-10-18T15:40:02.624+09:00", "message": "[인덱싱] INDEXED 1/15 · 처리 중 2 · 대기 12 · 실패 0 (7.5초)"} +{"timestamp": "2026-10-18T15:40:06.229+09:00", "message": "[인덱싱] INDEXED 3/15 · 처리 중 2 · 대기 10 · 실패 0 (11.1초)"} +{"timestamp": "2026-10-18T15:40:09.709+09:00", "message": "[인덱싱] INDEXED 5/15 · 처리 중 1 · 대기 9 · 실패 0 (14.6초)"} +{"timestamp": "2026-10-18T15:40:13.167+09:00", "message": "[인덱싱] INDEXED 6/15 · 처리 중 2 · 대기 7 · 실패 0 (18.0초)"} +{"timestamp": "2026-10-18T15:40:16.501+09:00", "message": "[인덱싱] INDEXED 8/15 · 처리 중 1 · 대기 6 · 실패 0 (21.4초)"} +{"timestamp": "2026-10-18T15:40:19.728+09:00", "message": "[인덱싱] INDEXED 10/15 · 처리 중 1 · 대기 4 · 실패 0 (24.6초)"} +{"timestamp": "2026-10-18T15:40:22.863+09:00", "message": "[인덱싱] INDEXED 13/15 · 처리 중 1 · 대기 1 · 실패 0 (27.7초)"} +{"timestamp": "2026-10-18T15:40:25.910+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (30.8초)"} +{"timestamp": "2026-10-18T15:40:26.293+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:26.293+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:26.293+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:26.616+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:26.616+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:26.640+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:26.908+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:26.908+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:26.908+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:26.934+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:40:26.956+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:40:26.981+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:40:27.006+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:40:27.043+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:40:27.072+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:40:27.094+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:40:27.115+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:40:27.137+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:40:27.161+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:40:27.182+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:40:27.201+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:40:27.221+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:40:27.242+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[문서 ID 재사용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:40:27.261+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/summary.json new file mode 100644 index 00000000..ee7f6274 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/first-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T153953335897+0900", + "revision": "ae146127179227f74205e189f7fd49dbe59a77fd", + "scope": "search", + "startedAt": "2026-10-18T15:39:53.337+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 1 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 2 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 3 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "5e1e577159162f6456df2fe8c273831028258d1250e2074384883c10565c2428", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:40:27.261+09:00", + "elapsedSeconds": 33.926 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/events.jsonl new file mode 100644 index 00000000..50c0183a --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/events.jsonl @@ -0,0 +1,49 @@ +{"timestamp": "2026-10-18T15:40:28.997+09:00", "message": "[실행] 20261018T154028995634+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:40:29.144+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:40:29.169+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:40:29.192+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:40:29.222+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:40:29.247+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:40:29.275+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:40:29.299+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:40:29.319+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:40:29.340+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:40:29.361+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:40:29.383+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:40:29.403+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:40:29.423+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:40:29.442+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:40:29.462+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:40:29.483+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:40:29.818+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.3초)"} +{"timestamp": "2026-10-18T15:40:30.136+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:30.136+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:30.136+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:30.424+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:30.424+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:30.443+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:30.691+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:40:30.691+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:40:30.691+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:40:30.713+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:40:30.732+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:40:30.751+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:40:30.771+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:40:30.790+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:40:30.809+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:40:30.836+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:40:30.856+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:40:30.877+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:40:30.895+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:40:30.913+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:40:30.931+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:40:30.948+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:40:30.969+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:40:30.990+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:40:30.990+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:30.990+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:30.990+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:40:30.991+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:30.991+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:40:30.991+09:00", "message": "[문서 ID 재사용] PASS · 15/15"} +{"timestamp": "2026-10-18T15:40:30.991+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/summary.json new file mode 100644 index 00000000..51b530f5 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/replay-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T154028995634+0900", + "revision": "ae146127179227f74205e189f7fd49dbe59a77fd", + "scope": "search", + "startedAt": "2026-10-18T15:40:28.997+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "PASS", + "passed": 15, + "expected": 15 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 4 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 5 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 6 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "5e1e577159162f6456df2fe8c273831028258d1250e2074384883c10565c2428", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:40:30.991+09:00", + "elapsedSeconds": 1.995 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/backend.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/backend.log new file mode 100644 index 00000000..5ef8c509 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/backend.log @@ -0,0 +1,290 @@ +2026-10-18T15:38:09+09:00 Downloading <설정된 서버> +2026-10-18T15:38:12+09:00 .............10%.............20%.............30%.............40%.............50%.............60%..............70%.............80%.............90%.............100% +2026-10-18T15:38:14+09:00 +2026-10-18T15:38:14+09:00 Welcome to Gradle 8.14.5! +2026-10-18T15:38:14+09:00 +2026-10-18T15:38:14+09:00 Here are the highlights of this release: +2026-10-18T15:38:14+09:00 - Java 24 support +2026-10-18T15:38:14+09:00 - GraalVM Native Image toolchain selection +2026-10-18T15:38:14+09:00 - Enhancements to test reporting +2026-10-18T15:38:14+09:00 - Build Authoring improvements +2026-10-18T15:38:14+09:00 +2026-10-18T15:38:14+09:00 For more details see <설정된 서버> +2026-10-18T15:38:14+09:00 +2026-10-18T15:38:14+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. +2026-10-18T15:38:16+09:00 Daemon will be stopped at the end of the build +2026-10-18T15:39:32+09:00 > Task :compileJava +2026-10-18T15:39:32+09:00 > Task :processResources +2026-10-18T15:39:32+09:00 > Task :classes +2026-10-18T15:39:32+09:00 > Task :resolveMainClassName +2026-10-18T15:39:34+09:00 +2026-10-18T15:39:34+09:00 > Task :bootRun +2026-10-18T15:39:34+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:39:34+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:39:34+09:00 +2026-10-18T15:39:34+09:00 . ____ _ __ _ _ +2026-10-18T15:39:34+09:00 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +2026-10-18T15:39:34+09:00 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ +2026-10-18T15:39:34+09:00 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) +2026-10-18T15:39:34+09:00 ' |____| .__|_| |_|_| |_\__, | / / / / +2026-10-18T15:39:34+09:00 =========|_|==============|___/=/_/_/_/ +2026-10-18T15:39:34+09:00 +2026-10-18T15:39:34+09:00 :: Spring Boot :: (v3.5.16) +2026-10-18T15:39:34+09:00 +2026-10-18T15:39:34+09:00 2026-10-18T06:39:33.918Z INFO 11430 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Starting DocgridApplication using Java 17.0.20.1 with PID 11430 (<작업공간>/backend/build/classes/java/main started by runner in <작업공간>) +2026-10-18T15:39:34+09:00 2026-10-18T06:39:33.921Z INFO 11430 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : The following 1 profile is active: "local" +2026-10-18T15:39:34+09:00 2026-10-18T06:39:33.961Z INFO 11430 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-10-18T15:39:34+09:00 2026-10-18T06:39:33.962Z INFO 11430 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.236Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.238Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.424Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 178 ms. Found 31 JPA repository interfaces. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.435Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.436Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.464Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionDocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.464Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.464Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentChunkRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.465Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.465Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentVersionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.465Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.FileObjectRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.465Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingJobRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.466Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingModelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.466Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.466Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.CollectionPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.466Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.DocumentPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.466Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.UserDocumentAccessCacheRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.467Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.RagResponseRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.467Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.ResponseCitationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.467Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchConversationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.469Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchQueryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.469Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchResultRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.469Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.VectorSearchRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.469Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncAdminActionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.470Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncConsistencyIssueRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.470Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncEventDeliveryAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.471Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncOutboxEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.471Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncReconciliationRunRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.471Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.DepartmentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.471Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.McpAccessTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.471Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.RoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.472Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.473Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.473Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.EmbeddingJobAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.473Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.IndexingEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.473Z INFO 11430 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.WorkerNodeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.473Z INFO 11430 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 30 ms. Found 0 Redis repository interfaces. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.894Z WARN 11430 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.896Z WARN 11430 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.904Z WARN 11430 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:39:35+09:00 2026-10-18T06:39:35.908Z WARN 11430 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.286Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.298Z INFO 11430 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.299Z INFO 11430 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.342Z INFO 11430 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.343Z INFO 11430 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2380 ms +2026-10-18T15:39:36+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.662Z INFO 11430 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Starting... +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.774Z INFO 11430 --- [docgrid] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : docgrid-local-db-pool - Added connection org.postgresql.jdbc.PgConnection@530f3232 +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.776Z INFO 11430 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Start completed. +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.801Z INFO 11430 --- [docgrid] [ restartedMain] org.flywaydb.core.FlywayExecutor : Database: jdbc:postgresql://127.0.0.1:55432/app?currentSchema=public&sslmode=disable (PostgreSQL 17.8) +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.861Z INFO 11430 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.865Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.044s) +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.880Z INFO 11430 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.916Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.920Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - init schema" +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.940Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "2 - create departments" +2026-10-18T15:39:36+09:00 2026-10-18T06:39:36.953Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "3 - create users" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:36.966Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "4 - create file objects" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:36.977Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "5 - create documents" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:36.989Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "6 - create document versions" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.002Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "7 - create collections" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.013Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "8 - create collection documents" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.023Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "9 - create roles" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.032Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "10 - create user roles" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.042Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "11 - create collection permissions" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.056Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "12 - create document permissions" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.070Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "13 - create user document access cache" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.076Z WARN 11430 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : DB: identifier "uk_user_document_access_cache_user_id_document_id_source_type_source_id" will be truncated to "uk_user_document_access_cache_user_id_document_id_source_type_s" (SQL State: 42622 - Error Code: 0) +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.084Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "14 - create embedding models" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.095Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "15 - create document chunks" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.104Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "16 - create embeddings" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.115Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "17 - create worker nodes" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.125Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "18 - create embedding jobs" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.135Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "19 - create embedding job attempts" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.144Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "20 - create indexing events" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.154Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "21 - create search queries" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.166Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "22 - create search results" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.178Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "23 - create rag responses" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.188Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "24 - create response citations" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.198Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "25 - create failover events" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.207Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "26 - create mcp access tokens" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.215Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "27 - add embedding model constraints" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.222Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "28 - seed roles departments admin" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.231Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "29 - add file object deduplication constraint" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.237Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "30 - add document version upload metadata" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.244Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "31 - add worker instance id" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.254Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "32 - convert vector columns to pgvector" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.267Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "33 - add embedding job claim token" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.273Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "34 - add claim token to embedding job attempts" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.279Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "35 - add embedding job next retry at" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.287Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "36 - create sync outbox events" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.298Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "37 - create sync consistency issues" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.311Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "38 - create sync admin actions" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.320Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "39 - create sync event delivery attempts" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.329Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "40 - alter rag responses answer text nullable" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.334Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "41 - create search conversations" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.339Z INFO 11430 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : +--------+ +2026-10-18T15:39:37+09:00 | setval | +2026-10-18T15:39:37+09:00 +--------+ +2026-10-18T15:39:37+09:00 | 1 | +2026-10-18T15:39:37+09:00 +--------+ +2026-10-18T15:39:37+09:00 +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.345Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "42 - create collection closure" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.351Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "43 - add rag responses claimed at" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.356Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "44 - create ha probe writes" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.363Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "45 - create ha probe idempotent writes" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.368Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "46 - enable pg trgm chunk text index" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.381Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "47 - create initial upload requests" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.389Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "48 - track initial upload candidates" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.398Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "49 - create version upload requests" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.406Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "50 - track version upload candidates" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.417Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "51 - add rag response claim lease" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.423Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "52 - create permission revocation requests" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.429Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed bge m3 embedding model" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.446Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed test fixtures" +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.469Z INFO 11430 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Successfully applied 54 migrations to schema "public", now at version v52 (execution time 00:00.223s) +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.565Z INFO 11430 --- [docgrid] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.599Z INFO 11430 --- [docgrid] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.53.Final +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.622Z INFO 11430 --- [docgrid] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.835Z INFO 11430 --- [docgrid] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-10-18T15:39:37+09:00 2026-10-18T06:39:37.896Z INFO 11430 --- [docgrid] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: +2026-10-18T15:39:37+09:00 Database JDBC URL [Connecting through datasource 'HikariDataSource (docgrid-local-db-pool)'] +2026-10-18T15:39:37+09:00 Database driver: undefined/unknown +2026-10-18T15:39:37+09:00 Database version: 17.8 +2026-10-18T15:39:37+09:00 Autocommit mode: undefined/unknown +2026-10-18T15:39:37+09:00 Isolation level: undefined/unknown +2026-10-18T15:39:37+09:00 Minimum pool size: undefined/unknown +2026-10-18T15:39:37+09:00 Maximum pool size: undefined/unknown +2026-10-18T15:39:39+09:00 2026-10-18T06:39:39.085Z INFO 11430 --- [docgrid] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-10-18T15:39:39+09:00 2026-10-18T06:39:39.135Z INFO 11430 --- [docgrid] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-10-18T15:39:39+09:00 2026-10-18T06:39:39.367Z INFO 11430 --- [docgrid] [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-10-18T15:39:42+09:00 2026-10-18T06:39:42.435Z WARN 11430 --- [docgrid] [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : +2026-10-18T15:39:42+09:00 +2026-10-18T15:39:42+09:00 Using generated security password: 6bcbcc19-54f5-4d7f-ae26-83f67b06b059 +2026-10-18T15:39:42+09:00 +2026-10-18T15:39:42+09:00 This generated password is for development use only. Your security configuration must be updated before running your application in production. +2026-10-18T15:39:42+09:00 +2026-10-18T15:39:42+09:00 2026-10-18T06:39:42.441Z INFO 11430 --- [docgrid] [ restartedMain] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.104Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.105Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Registered tools: 3 +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.105Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.106Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.106Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.106Z INFO 11430 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.411Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.472Z INFO 11430 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting... +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.472Z INFO 11430 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@4d328142]] +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.473Z INFO 11430 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started. +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.504Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.582Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.583Z INFO 11430 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.583Z INFO 11430 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.599Z INFO 11430 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.599Z INFO 11430 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 91 ms +2026-10-18T15:39:43+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.611Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoints beneath base path '/actuator' +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.646Z INFO 11430 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.666Z INFO 11430 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Started DocgridApplication in 10.235 seconds (process running for 10.646) +2026-10-18T15:39:43+09:00 2026-10-18T06:39:43.869Z INFO 11430 --- [docgrid] [ restartedMain] c.o.d.d.w.l.WorkerLifecycleManager : 인덱싱 Worker를 등록했습니다. workerId=1, workerName=indexing-worker, instanceId=3b021153-d970-43ca-8d54-e43ed0655355 +2026-10-18T15:39:44+09:00 2026-10-18T06:39:44.003Z INFO 11430 --- [docgrid] [nio-8081-exec-1] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServletRegistration' +2026-10-18T15:39:44+09:00 2026-10-18T06:39:44.003Z INFO 11430 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServletRegistration' +2026-10-18T15:39:44+09:00 2026-10-18T06:39:44.004Z INFO 11430 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-10-18T15:39:49+09:00 2026-10-18T06:39:49.582Z INFO 11430 --- [docgrid] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-10-18T15:39:49+09:00 2026-10-18T06:39:49.582Z INFO 11430 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-10-18T15:39:49+09:00 2026-10-18T06:39:49.584Z INFO 11430 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms +2026-10-18T15:39:53+09:00 2026-10-18T06:39:53.430Z WARN 11430 --- [docgrid] [nio-8080-exec-5] c.o.d.g.e.GlobalExceptionHandler : [DocGridException] POST /auth/login | code=USER-004 | message=이메일 또는 비밀번호가 올바르지 않습니다. +2026-10-18T15:39:53+09:00 2026-10-18T06:39:53.438Z WARN 11430 --- [docgrid] [nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.opensource.docgrid.global.exception.DocGridException: 이메일 또는 비밀번호가 올바르지 않습니다.] +2026-10-18T15:39:58+09:00 2026-10-18T06:39:58.747Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=1, attemptId=1, initialStatus=UPLOADED +2026-10-18T15:39:58+09:00 2026-10-18T06:39:58.748Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=2, attemptId=2, initialStatus=UPLOADED +2026-10-18T15:40:01+09:00 2026-10-18T06:40:01.530Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=1, attemptId=1, documentId=3, versionId=3, chunkCount=1, embeddingCount=1, durationMs=2753 +2026-10-18T15:40:01+09:00 2026-10-18T06:40:01.536Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=1, attemptId=1 +2026-10-18T15:40:01+09:00 2026-10-18T06:40:01.764Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=3, attemptId=3, initialStatus=UPLOADED +2026-10-18T15:40:04+09:00 2026-10-18T06:40:03.964Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=2, attemptId=2, documentId=4, versionId=4, chunkCount=1, embeddingCount=1, durationMs=5173 +2026-10-18T15:40:04+09:00 2026-10-18T06:40:03.971Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=2, attemptId=2 +2026-10-18T15:40:04+09:00 2026-10-18T06:40:04.769Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=4, attemptId=4, initialStatus=UPLOADED +2026-10-18T15:40:05+09:00 2026-10-18T06:40:05.460Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=3, attemptId=3, documentId=5, versionId=5, chunkCount=1, embeddingCount=1, durationMs=3685 +2026-10-18T15:40:05+09:00 2026-10-18T06:40:05.465Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=3, attemptId=3 +2026-10-18T15:40:05+09:00 2026-10-18T06:40:05.807Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=5, attemptId=5, initialStatus=UPLOADED +2026-10-18T15:40:07+09:00 2026-10-18T06:40:07.487Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=4, attemptId=4, documentId=6, versionId=6, chunkCount=1, embeddingCount=1, durationMs=2715 +2026-10-18T15:40:07+09:00 2026-10-18T06:40:07.490Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=4, attemptId=4 +2026-10-18T15:40:07+09:00 2026-10-18T06:40:07.792Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=6, attemptId=6, initialStatus=UPLOADED +2026-10-18T15:40:09+09:00 2026-10-18T06:40:09.028Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=5, attemptId=5, documentId=7, versionId=7, chunkCount=1, embeddingCount=1, durationMs=3237 +2026-10-18T15:40:09+09:00 2026-10-18T06:40:09.031Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=5, attemptId=5 +2026-10-18T15:40:09+09:00 2026-10-18T06:40:09.802Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=7, attemptId=7, initialStatus=UPLOADED +2026-10-18T15:40:12+09:00 2026-10-18T06:40:12.234Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=6, attemptId=6, documentId=8, versionId=8, chunkCount=6, embeddingCount=6, durationMs=4433 +2026-10-18T15:40:12+09:00 2026-10-18T06:40:12.241Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=6, attemptId=6 +2026-10-18T15:40:12+09:00 2026-10-18T06:40:12.815Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=8, attemptId=8, initialStatus=UPLOADED +2026-10-18T15:40:13+09:00 2026-10-18T06:40:13.121Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=7, attemptId=7, documentId=9, versionId=9, chunkCount=7, embeddingCount=7, durationMs=3313 +2026-10-18T15:40:13+09:00 2026-10-18T06:40:13.126Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=7, attemptId=7 +2026-10-18T15:40:13+09:00 2026-10-18T06:40:13.675Z INFO 11430 --- [docgrid] [MessageBroker-2] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:40:13+09:00 2026-10-18T06:40:13.814Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=9, attemptId=9, initialStatus=UPLOADED +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.126Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=8, attemptId=8, documentId=10, versionId=10, chunkCount=7, embeddingCount=7, durationMs=3309 +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.130Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=8, attemptId=8 +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.685Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=9, attemptId=9, documentId=11, versionId=11, chunkCount=6, embeddingCount=6, durationMs=2866 +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.688Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=9, attemptId=9 +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.820Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=10, attemptId=10, initialStatus=UPLOADED +2026-10-18T15:40:16+09:00 2026-10-18T06:40:16.825Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=11, attemptId=11, initialStatus=UPLOADED +2026-10-18T15:40:19+09:00 2026-10-18T06:40:19.295Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=11, attemptId=11, documentId=13, versionId=13, chunkCount=1, embeddingCount=1, durationMs=2460 +2026-10-18T15:40:19+09:00 2026-10-18T06:40:19.299Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=11, attemptId=11 +2026-10-18T15:40:19+09:00 2026-10-18T06:40:19.834Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=12, attemptId=12, initialStatus=UPLOADED +2026-10-18T15:40:20+09:00 2026-10-18T06:40:20.077Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=10, attemptId=10, documentId=12, versionId=12, chunkCount=6, embeddingCount=6, durationMs=3251 +2026-10-18T15:40:20+09:00 2026-10-18T06:40:20.080Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=10, attemptId=10 +2026-10-18T15:40:20+09:00 2026-10-18T06:40:20.852Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=13, attemptId=13, initialStatus=UPLOADED +2026-10-18T15:40:21+09:00 2026-10-18T06:40:21.568Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=12, attemptId=12, documentId=14, versionId=14, chunkCount=1, embeddingCount=1, durationMs=1728 +2026-10-18T15:40:21+09:00 2026-10-18T06:40:21.571Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=12, attemptId=12 +2026-10-18T15:40:21+09:00 2026-10-18T06:40:21.863Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=14, attemptId=14, initialStatus=UPLOADED +2026-10-18T15:40:22+09:00 2026-10-18T06:40:22.525Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=13, attemptId=13, documentId=15, versionId=15, chunkCount=1, embeddingCount=1, durationMs=1669 +2026-10-18T15:40:22+09:00 2026-10-18T06:40:22.528Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=13, attemptId=13 +2026-10-18T15:40:22+09:00 2026-10-18T06:40:22.864Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=15, attemptId=15, initialStatus=UPLOADED +2026-10-18T15:40:23+09:00 2026-10-18T06:40:23.627Z INFO 11430 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=14, attemptId=14, documentId=16, versionId=16, chunkCount=1, embeddingCount=1, durationMs=1761 +2026-10-18T15:40:23+09:00 2026-10-18T06:40:23.630Z INFO 11430 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=14, attemptId=14 +2026-10-18T15:40:24+09:00 2026-10-18T06:40:24.432Z INFO 11430 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=15, attemptId=15, documentId=17, versionId=17, chunkCount=1, embeddingCount=1, durationMs=1567 +2026-10-18T15:40:24+09:00 2026-10-18T06:40:24.436Z INFO 11430 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=15, attemptId=15 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.263Z INFO 11430 --- [docgrid] [nio-8080-exec-7] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.266Z INFO 11430 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.276Z INFO 11430 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=1 results=3 latencyMs=329 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.281Z INFO 11430 --- [docgrid] [nio-8080-exec-7] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=1 responseId=1 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.602Z INFO 11430 --- [docgrid] [nio-8080-exec-8] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.605Z INFO 11430 --- [docgrid] [nio-8080-exec-8] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.610Z INFO 11430 --- [docgrid] [nio-8080-exec-8] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=2 results=3 latencyMs=299 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.612Z INFO 11430 --- [docgrid] [nio-8080-exec-8] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=2 responseId=2 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.893Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.897Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=4 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.902Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=3 results=3 latencyMs=243 +2026-10-18T15:40:26+09:00 2026-10-18T06:40:26.904Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=3 responseId=3 +2026-10-18T15:40:27+09:00 2026-10-18T06:40:27.032Z ERROR 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:27+09:00 2026-10-18T06:40:27.033Z ERROR 11430 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:27+09:00 2026-10-18T06:40:27.050Z WARN 11430 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=1 errorCode=RAG-001 +2026-10-18T15:40:27+09:00 2026-10-18T06:40:27.053Z WARN 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=2 errorCode=RAG-001 +2026-10-18T15:40:28+09:00 2026-10-18T06:40:28.028Z ERROR 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:28+09:00 2026-10-18T06:40:28.034Z WARN 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=3 errorCode=RAG-001 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.122Z INFO 11430 --- [docgrid] [nio-8080-exec-9] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.125Z INFO 11430 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.130Z INFO 11430 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=4 results=3 latencyMs=291 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.132Z INFO 11430 --- [docgrid] [nio-8080-exec-9] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=4 responseId=4 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.411Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.414Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.418Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=5 results=3 latencyMs=265 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.420Z INFO 11430 --- [docgrid] [io-8080-exec-10] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=5 responseId=5 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.673Z INFO 11430 --- [docgrid] [nio-8080-exec-2] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.677Z INFO 11430 --- [docgrid] [nio-8080-exec-2] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.684Z INFO 11430 --- [docgrid] [nio-8080-exec-2] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=6 results=3 latencyMs=221 +2026-10-18T15:40:30+09:00 2026-10-18T06:40:30.687Z INFO 11430 --- [docgrid] [nio-8080-exec-2] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=6 responseId=6 +2026-10-18T15:40:31+09:00 2026-10-18T06:40:31.039Z ERROR 11430 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:31+09:00 2026-10-18T06:40:31.042Z ERROR 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:31+09:00 2026-10-18T06:40:31.044Z WARN 11430 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=5 errorCode=RAG-001 +2026-10-18T15:40:31+09:00 2026-10-18T06:40:31.048Z WARN 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=4 errorCode=RAG-001 +2026-10-18T15:40:32+09:00 2026-10-18T06:40:32.045Z ERROR 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:40:32+09:00 2026-10-18T06:40:32.049Z WARN 11430 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=6 errorCode=RAG-001 +2026-10-18T15:40:43+09:00 2026-10-18T06:40:43.438Z INFO 11430 --- [docgrid] [MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 12, completed tasks = 416] +2026-10-18T15:40:43+09:00 2026-10-18T06:40:43.678Z INFO 11430 --- [docgrid] [MessageBroker-2] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:41:13+09:00 2026-10-18T06:41:13.683Z INFO 11430 --- [docgrid] [MessageBroker-3] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/events.jsonl new file mode 100644 index 00000000..45be380e --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/events.jsonl @@ -0,0 +1,5 @@ +{"timestamp": "2026-10-18T15:35:30+09:00", "message": "[시작] 로컬 시연 세션 a7dc894111e946d9aac3f16b6080ce7f · 범위 search"} +{"timestamp": "2026-10-18T15:39:51+09:00", "message": "[준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요."} +{"timestamp": "2026-10-18T15:40:27+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/aaad4b583437450b97df532bb67f6072/summary.json"} +{"timestamp": "2026-10-18T15:40:31+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/0f2fe073c8404458ba5e8659304fc365/summary.json"} +{"timestamp": "2026-10-18T15:41:22+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/frontend.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/frontend.log new file mode 100644 index 00000000..d47325da --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/frontend.log @@ -0,0 +1,209 @@ +2026-10-18T15:39:44+09:00 +2026-10-18T15:39:44+09:00 > <이메일 생략> dev +2026-10-18T15:39:44+09:00 > WRANGLER_LOG_PATH=.wrangler/wrangler.log vinext dev --hostname 127.0.0.1 +2026-10-18T15:39:44+09:00 +2026-10-18T15:39:44+09:00 +2026-10-18T15:39:44+09:00 vinext dev (Vite 8.0.13) +2026-10-18T15:39:44+09:00 +2026-10-18T15:39:46+09:00 Using secrets defined in .env.local +2026-10-18T15:39:49+09:00 ➜ Local: <설정된 서버> +2026-10-18T15:39:49+09:00 ➜ Debug: <설정된 서버> +2026-10-18T15:39:50+09:00 GET /api/backend/departments 200 in 421ms +2026-10-18T15:39:51+09:00 GET /login 200 in 1.7s (compile: 1792305584.5s, render: 1.6s) +2026-10-18T15:39:52+09:00 GET /api/backend/departments 200 in 20ms +2026-10-18T15:39:52+09:00 GET /login 200 in 37ms (compile: 1792305584.4s, render: 24ms) +2026-10-18T15:39:53+09:00 POST /api/backend/auth/login 401 in 59ms +2026-10-18T15:39:53+09:00 POST /api/backend/auth/signup 201 in 138ms +2026-10-18T15:39:53+09:00 POST /api/backend/auth/login 200 in 178ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 696ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 51ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 55ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 50ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 45ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 48ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 46ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 44ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 52ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 50ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 47ms +2026-10-18T15:39:54+09:00 POST /api/backend/api/documents 201 in 41ms +2026-10-18T15:39:55+09:00 POST /api/backend/api/documents 201 in 42ms +2026-10-18T15:39:55+09:00 POST /api/backend/api/documents 201 in 41ms +2026-10-18T15:39:55+09:00 POST /api/backend/api/documents 201 in 45ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/3/status 200 in 44ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/4/status 200 in 23ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/5/status 200 in 23ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/6/status 200 in 23ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/7/status 200 in 24ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/8/status 200 in 21ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/9/status 200 in 20ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/10/status 200 in 25ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/11/status 200 in 26ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/12/status 200 in 29ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/13/status 200 in 22ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/14/status 200 in 22ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/15/status 200 in 20ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/16/status 200 in 21ms +2026-10-18T15:39:55+09:00 GET /api/backend/api/documents/17/status 200 in 21ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/3/status 200 in 28ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/4/status 200 in 21ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/5/status 200 in 22ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/6/status 200 in 22ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/7/status 200 in 24ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/8/status 200 in 21ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/9/status 200 in 20ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/10/status 200 in 22ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/11/status 200 in 34ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/12/status 200 in 23ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/13/status 200 in 45ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/14/status 200 in 29ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/15/status 200 in 27ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/16/status 200 in 23ms +2026-10-18T15:39:58+09:00 GET /api/backend/api/documents/17/status 200 in 29ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/3/status 200 in 73ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/4/status 200 in 46ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/5/status 200 in 33ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/6/status 200 in 27ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/7/status 200 in 31ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/8/status 200 in 32ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/9/status 200 in 35ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/10/status 200 in 31ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/11/status 200 in 25ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/12/status 200 in 37ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/13/status 200 in 47ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/14/status 200 in 49ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/15/status 200 in 31ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/16/status 200 in 41ms +2026-10-18T15:40:02+09:00 GET /api/backend/api/documents/17/status 200 in 39ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/4/status 200 in 31ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/5/status 200 in 28ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/6/status 200 in 51ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/7/status 200 in 64ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/8/status 200 in 51ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/9/status 200 in 34ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/10/status 200 in 40ms +2026-10-18T15:40:05+09:00 GET /api/backend/api/documents/11/status 200 in 32ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/12/status 200 in 39ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/13/status 200 in 30ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/14/status 200 in 31ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/15/status 200 in 27ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/16/status 200 in 55ms +2026-10-18T15:40:06+09:00 GET /api/backend/api/documents/17/status 200 in 28ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/6/status 200 in 37ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/7/status 200 in 35ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/8/status 200 in 43ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/9/status 200 in 47ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/10/status 200 in 40ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/11/status 200 in 31ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/12/status 200 in 29ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/13/status 200 in 25ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/14/status 200 in 25ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/15/status 200 in 31ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/16/status 200 in 36ms +2026-10-18T15:40:09+09:00 GET /api/backend/api/documents/17/status 200 in 55ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/8/status 200 in 50ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/9/status 200 in 29ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/10/status 200 in 55ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/11/status 200 in 34ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/12/status 200 in 33ms +2026-10-18T15:40:12+09:00 GET /api/backend/api/documents/13/status 200 in 39ms +2026-10-18T15:40:13+09:00 GET /api/backend/api/documents/14/status 200 in 34ms +2026-10-18T15:40:13+09:00 GET /api/backend/api/documents/15/status 200 in 67ms +2026-10-18T15:40:13+09:00 GET /api/backend/api/documents/16/status 200 in 37ms +2026-10-18T15:40:13+09:00 GET /api/backend/api/documents/17/status 200 in 24ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/9/status 200 in 34ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/10/status 200 in 29ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/11/status 200 in 32ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/12/status 200 in 32ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/13/status 200 in 38ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/14/status 200 in 36ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/15/status 200 in 31ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/16/status 200 in 38ms +2026-10-18T15:40:16+09:00 GET /api/backend/api/documents/17/status 200 in 24ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/11/status 200 in 25ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/12/status 200 in 25ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/13/status 200 in 25ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/14/status 200 in 38ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/15/status 200 in 28ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/16/status 200 in 34ms +2026-10-18T15:40:19+09:00 GET /api/backend/api/documents/17/status 200 in 26ms +2026-10-18T15:40:22+09:00 GET /api/backend/api/documents/12/status 200 in 24ms +2026-10-18T15:40:22+09:00 GET /api/backend/api/documents/14/status 200 in 22ms +2026-10-18T15:40:22+09:00 GET /api/backend/api/documents/15/status 200 in 19ms +2026-10-18T15:40:22+09:00 GET /api/backend/api/documents/16/status 200 in 24ms +2026-10-18T15:40:22+09:00 GET /api/backend/api/documents/17/status 200 in 29ms +2026-10-18T15:40:25+09:00 GET /api/backend/api/documents/16/status 200 in 19ms +2026-10-18T15:40:25+09:00 GET /api/backend/api/documents/17/status 200 in 23ms +2026-10-18T15:40:26+09:00 POST /api/backend/search 200 in 380ms +2026-10-18T15:40:26+09:00 POST /api/backend/search 200 in 322ms +2026-10-18T15:40:26+09:00 GET /api/backend/api/documents/8/content 200 in 22ms +2026-10-18T15:40:26+09:00 POST /api/backend/search 200 in 267ms +2026-10-18T15:40:26+09:00 GET /api/backend/api/documents/3/file 200 in 24ms +2026-10-18T15:40:26+09:00 GET /api/backend/api/documents/4/file 200 in 20ms +2026-10-18T15:40:26+09:00 GET /api/backend/api/documents/5/file 200 in 22ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/6/file 200 in 22ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/7/file 200 in 31ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/8/file 200 in 26ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/9/file 200 in 19ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/10/file 200 in 18ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/11/file 200 in 20ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/12/file 200 in 21ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/13/file 200 in 17ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/14/file 200 in 17ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/15/file 200 in 17ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/16/file 200 in 18ms +2026-10-18T15:40:27+09:00 GET /api/backend/api/documents/17/file 200 in 17ms +2026-10-18T15:40:27+09:00 GET /api/backend/departments 200 in 16ms +2026-10-18T15:40:28+09:00 GET /login 200 in 39ms (compile: 1792305584.4s, render: 27ms) +2026-10-18T15:40:29+09:00 POST /api/backend/auth/login 200 in 103ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 24ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 23ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 29ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 24ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 27ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 23ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 18ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 18ms +2026-10-18T15:40:29+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/3/status 200 in 17ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/4/status 200 in 16ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/5/status 200 in 17ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/6/status 200 in 19ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/7/status 200 in 21ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/8/status 200 in 18ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/9/status 200 in 19ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/10/status 200 in 18ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/11/status 200 in 15ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/12/status 200 in 40ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/13/status 200 in 22ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/14/status 200 in 18ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/15/status 200 in 16ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/16/status 200 in 19ms +2026-10-18T15:40:29+09:00 GET /api/backend/api/documents/17/status 200 in 17ms +2026-10-18T15:40:30+09:00 POST /api/backend/search 200 in 315ms +2026-10-18T15:40:30+09:00 POST /api/backend/search 200 in 287ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/8/content 200 in 17ms +2026-10-18T15:40:30+09:00 POST /api/backend/search 200 in 247ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/3/file 200 in 20ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/4/file 200 in 17ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/5/file 200 in 16ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/6/file 200 in 18ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/7/file 200 in 17ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/8/file 200 in 17ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/9/file 200 in 24ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/10/file 200 in 17ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/11/file 200 in 19ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/12/file 200 in 15ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/13/file 200 in 16ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/14/file 200 in 15ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/15/file 200 in 15ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/16/file 200 in 18ms +2026-10-18T15:40:30+09:00 GET /api/backend/api/documents/17/file 200 in 18ms +2026-10-18T15:40:33+09:00 GET /login?returnTo=%2Fsearch 200 in 54ms (compile: 1792305584.4s, render: 32ms) +2026-10-18T15:41:19+09:00 ➜ Tunnel closed diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/install.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/install.log new file mode 100644 index 00000000..aa66b439 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/install.log @@ -0,0 +1,17 @@ +2026-10-18T15:35:34+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:35:34+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 added 502 packages, and audited 503 packages in 18s +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 156 packages are looking for funding +2026-10-18T15:35:49+09:00 run `npm fund` for details +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 30 vulnerabilities (1 low, 6 moderate, 23 high) +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 To address issues that do not require attention, run: +2026-10-18T15:35:49+09:00 npm audit fix +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 To address all issues (including breaking changes), run: +2026-10-18T15:35:49+09:00 npm audit fix --force +2026-10-18T15:35:49+09:00 +2026-10-18T15:35:49+09:00 Run `npm audit` for details. diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/services.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/services.log new file mode 100644 index 00000000..42da6b46 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/services.log @@ -0,0 +1,607 @@ +2026-10-18T15:35:49+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:35:50+09:00 postgres Pulling +2026-10-18T15:35:50+09:00 valkey Pulling +2026-10-18T15:35:51+09:00 4831516dd0cb Pulling fs layer +2026-10-18T15:35:51+09:00 9f4a0348ad2e Pulling fs layer +2026-10-18T15:35:51+09:00 6b6aac9d7476 Pulling fs layer +2026-10-18T15:35:51+09:00 d8a310896f84 Pulling fs layer +2026-10-18T15:35:51+09:00 99bb4ce30ad3 Pulling fs layer +2026-10-18T15:35:51+09:00 31b6f2223c4b Pulling fs layer +2026-10-18T15:35:51+09:00 9da35c01411f Pulling fs layer +2026-10-18T15:35:51+09:00 a6809e067bc1 Pulling fs layer +2026-10-18T15:35:51+09:00 10643155f463 Pulling fs layer +2026-10-18T15:35:51+09:00 a7ef49b2a615 Pulling fs layer +2026-10-18T15:35:51+09:00 29d37472e7c3 Pulling fs layer +2026-10-18T15:35:51+09:00 4d2363af1825 Pulling fs layer +2026-10-18T15:35:51+09:00 4a14fbbe260a Pulling fs layer +2026-10-18T15:35:51+09:00 8cced4a98c7e Pulling fs layer +2026-10-18T15:35:51+09:00 4909bfb5f5ed Pulling fs layer +2026-10-18T15:35:51+09:00 3e1ddef0ec36 Pulling fs layer +2026-10-18T15:35:51+09:00 d8a310896f84 Waiting +2026-10-18T15:35:51+09:00 99bb4ce30ad3 Waiting +2026-10-18T15:35:51+09:00 31b6f2223c4b Waiting +2026-10-18T15:35:51+09:00 9da35c01411f Waiting +2026-10-18T15:35:51+09:00 a6809e067bc1 Waiting +2026-10-18T15:35:51+09:00 10643155f463 Waiting +2026-10-18T15:35:51+09:00 a7ef49b2a615 Waiting +2026-10-18T15:35:51+09:00 29d37472e7c3 Waiting +2026-10-18T15:35:51+09:00 4909bfb5f5ed Waiting +2026-10-18T15:35:51+09:00 4d2363af1825 Waiting +2026-10-18T15:35:51+09:00 3e1ddef0ec36 Waiting +2026-10-18T15:35:51+09:00 4a14fbbe260a Waiting +2026-10-18T15:35:51+09:00 8cced4a98c7e Waiting +2026-10-18T15:35:51+09:00 e2de96513ba9 Already exists +2026-10-18T15:35:51+09:00 d78be5cc1e53 Pulling fs layer +2026-10-18T15:35:51+09:00 fe2c7735354a Pulling fs layer +2026-10-18T15:35:51+09:00 95121e5a56c0 Pulling fs layer +2026-10-18T15:35:51+09:00 d9f591c70342 Pulling fs layer +2026-10-18T15:35:51+09:00 4f4fb700ef54 Pulling fs layer +2026-10-18T15:35:51+09:00 4ed485d78f72 Pulling fs layer +2026-10-18T15:35:51+09:00 d78be5cc1e53 Waiting +2026-10-18T15:35:51+09:00 fe2c7735354a Waiting +2026-10-18T15:35:51+09:00 95121e5a56c0 Waiting +2026-10-18T15:35:51+09:00 d9f591c70342 Waiting +2026-10-18T15:35:51+09:00 4f4fb700ef54 Waiting +2026-10-18T15:35:51+09:00 4ed485d78f72 Waiting +2026-10-18T15:35:51+09:00 9f4a0348ad2e Downloading [==================================================>] 1.169kB/1.169kB +2026-10-18T15:35:51+09:00 6b6aac9d7476 Downloading [> ] 48.51kB/4.534MB +2026-10-18T15:35:51+09:00 9f4a0348ad2e Verifying Checksum +2026-10-18T15:35:51+09:00 9f4a0348ad2e Download complete +2026-10-18T15:35:51+09:00 4831516dd0cb Downloading [> ] 294.2kB/28.23MB +2026-10-18T15:35:51+09:00 6b6aac9d7476 Verifying Checksum +2026-10-18T15:35:51+09:00 6b6aac9d7476 Download complete +2026-10-18T15:35:51+09:00 4831516dd0cb Verifying Checksum +2026-10-18T15:35:51+09:00 4831516dd0cb Download complete +2026-10-18T15:35:51+09:00 4831516dd0cb Extracting [> ] 294.9kB/28.23MB +2026-10-18T15:35:51+09:00 d8a310896f84 Downloading [> ] 15.74kB/1.25MB +2026-10-18T15:35:51+09:00 4831516dd0cb Extracting [=========> ] 5.308MB/28.23MB +2026-10-18T15:35:51+09:00 d8a310896f84 Verifying Checksum +2026-10-18T15:35:51+09:00 d8a310896f84 Download complete +2026-10-18T15:35:51+09:00 99bb4ce30ad3 Downloading [> ] 81.28kB/8.066MB +2026-10-18T15:35:51+09:00 99bb4ce30ad3 Verifying Checksum +2026-10-18T15:35:51+09:00 99bb4ce30ad3 Download complete +2026-10-18T15:35:51+09:00 31b6f2223c4b Downloading [> ] 15.74kB/1.196MB +2026-10-18T15:35:51+09:00 31b6f2223c4b Verifying Checksum +2026-10-18T15:35:51+09:00 31b6f2223c4b Download complete +2026-10-18T15:35:51+09:00 4831516dd0cb Extracting [================> ] 9.142MB/28.23MB +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [=====================> ] 12.39MB/28.23MB +2026-10-18T15:35:52+09:00 9da35c01411f Downloading [==================================================>] 116B/116B +2026-10-18T15:35:52+09:00 9da35c01411f Verifying Checksum +2026-10-18T15:35:52+09:00 9da35c01411f Download complete +2026-10-18T15:35:52+09:00 a6809e067bc1 Downloading [==================================================>] 3.141kB/3.141kB +2026-10-18T15:35:52+09:00 a6809e067bc1 Download complete +2026-10-18T15:35:52+09:00 10643155f463 Downloading [> ] 528.3kB/112.8MB +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [====================================> ] 20.64MB/28.23MB +2026-10-18T15:35:52+09:00 10643155f463 Downloading [===> ] 7.907MB/112.8MB +2026-10-18T15:35:52+09:00 a7ef49b2a615 Downloading [================> ] 3.499kB/10.3kB +2026-10-18T15:35:52+09:00 a7ef49b2a615 Downloading [==================================================>] 10.3kB/10.3kB +2026-10-18T15:35:52+09:00 a7ef49b2a615 Verifying Checksum +2026-10-18T15:35:52+09:00 a7ef49b2a615 Download complete +2026-10-18T15:35:52+09:00 29d37472e7c3 Download complete +2026-10-18T15:35:52+09:00 10643155f463 Downloading [=======> ] 15.83MB/112.8MB +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [==========================================> ] 23.89MB/28.23MB +2026-10-18T15:35:52+09:00 10643155f463 Downloading [====================> ] 46.27MB/112.8MB +2026-10-18T15:35:52+09:00 4d2363af1825 Downloading [==================================================>] 168B/168B +2026-10-18T15:35:52+09:00 4d2363af1825 Verifying Checksum +2026-10-18T15:35:52+09:00 4d2363af1825 Download complete +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [===============================================> ] 26.54MB/28.23MB +2026-10-18T15:35:52+09:00 10643155f463 Downloading [==================================> ] 77.27MB/112.8MB +2026-10-18T15:35:52+09:00 4a14fbbe260a Downloading [=============================> ] 3.5kB/5.84kB +2026-10-18T15:35:52+09:00 4a14fbbe260a Download complete +2026-10-18T15:35:52+09:00 10643155f463 Downloading [================================================> ] 110.4MB/112.8MB +2026-10-18T15:35:52+09:00 10643155f463 Verifying Checksum +2026-10-18T15:35:52+09:00 10643155f463 Download complete +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [================================================> ] 27.13MB/28.23MB +2026-10-18T15:35:52+09:00 8cced4a98c7e Downloading [==================================================>] 186B/186B +2026-10-18T15:35:52+09:00 8cced4a98c7e Verifying Checksum +2026-10-18T15:35:52+09:00 8cced4a98c7e Download complete +2026-10-18T15:35:52+09:00 4909bfb5f5ed Downloading [=> ] 3.498kB/123.1kB +2026-10-18T15:35:52+09:00 4909bfb5f5ed Downloading [==================================================>] 123.1kB/123.1kB +2026-10-18T15:35:52+09:00 4909bfb5f5ed Verifying Checksum +2026-10-18T15:35:52+09:00 4909bfb5f5ed Download complete +2026-10-18T15:35:52+09:00 3e1ddef0ec36 Downloading [> ] 15.74kB/1.451MB +2026-10-18T15:35:52+09:00 3e1ddef0ec36 Verifying Checksum +2026-10-18T15:35:52+09:00 3e1ddef0ec36 Download complete +2026-10-18T15:35:52+09:00 4831516dd0cb Extracting [================================================> ] 27.43MB/28.23MB +2026-10-18T15:35:52+09:00 d78be5cc1e53 Downloading [==================================================>] 951B/951B +2026-10-18T15:35:52+09:00 d78be5cc1e53 Verifying Checksum +2026-10-18T15:35:52+09:00 d78be5cc1e53 Download complete +2026-10-18T15:35:52+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:35:52+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:35:52+09:00 fe2c7735354a Downloading [=> ] 15.79kB/666.5kB +2026-10-18T15:35:52+09:00 fe2c7735354a Downloading [==================================================>] 666.5kB/666.5kB +2026-10-18T15:35:52+09:00 fe2c7735354a Verifying Checksum +2026-10-18T15:35:52+09:00 fe2c7735354a Download complete +2026-10-18T15:35:53+09:00 4831516dd0cb Extracting [==================================================>] 28.23MB/28.23MB +2026-10-18T15:35:53+09:00 95121e5a56c0 Downloading [> ] 146.9kB/14.29MB +2026-10-18T15:35:53+09:00 d9f591c70342 Downloading [==================================================>] 140B/140B +2026-10-18T15:35:53+09:00 d9f591c70342 Verifying Checksum +2026-10-18T15:35:53+09:00 d9f591c70342 Download complete +2026-10-18T15:35:53+09:00 95121e5a56c0 Verifying Checksum +2026-10-18T15:35:53+09:00 95121e5a56c0 Download complete +2026-10-18T15:35:53+09:00 4f4fb700ef54 Downloading [==================================================>] 32B/32B +2026-10-18T15:35:53+09:00 4f4fb700ef54 Download complete +2026-10-18T15:35:53+09:00 4831516dd0cb Pull complete +2026-10-18T15:35:53+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:35:53+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:35:53+09:00 4ed485d78f72 Downloading [==================================================>] 668B/668B +2026-10-18T15:35:53+09:00 4ed485d78f72 Verifying Checksum +2026-10-18T15:35:53+09:00 4ed485d78f72 Download complete +2026-10-18T15:35:53+09:00 9f4a0348ad2e Pull complete +2026-10-18T15:35:53+09:00 6b6aac9d7476 Extracting [> ] 65.54kB/4.534MB +2026-10-18T15:35:53+09:00 6b6aac9d7476 Extracting [==> ] 262.1kB/4.534MB +2026-10-18T15:35:54+09:00 d78be5cc1e53 Pull complete +2026-10-18T15:35:54+09:00 6b6aac9d7476 Extracting [=================================> ] 3.08MB/4.534MB +2026-10-18T15:35:54+09:00 fe2c7735354a Extracting [==> ] 32.77kB/666.5kB +2026-10-18T15:35:54+09:00 6b6aac9d7476 Extracting [==================================================>] 4.534MB/4.534MB +2026-10-18T15:35:54+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:35:54+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:35:54+09:00 6b6aac9d7476 Pull complete +2026-10-18T15:35:54+09:00 d8a310896f84 Extracting [=> ] 32.77kB/1.25MB +2026-10-18T15:35:54+09:00 d8a310896f84 Extracting [==================================================>] 1.25MB/1.25MB +2026-10-18T15:35:54+09:00 d8a310896f84 Pull complete +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Extracting [> ] 98.3kB/8.066MB +2026-10-18T15:35:54+09:00 fe2c7735354a Pull complete +2026-10-18T15:35:54+09:00 95121e5a56c0 Extracting [> ] 163.8kB/14.29MB +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Extracting [===================> ] 3.146MB/8.066MB +2026-10-18T15:35:54+09:00 95121e5a56c0 Extracting [======================> ] 6.554MB/14.29MB +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Extracting [=============================> ] 4.817MB/8.066MB +2026-10-18T15:35:54+09:00 95121e5a56c0 Extracting [===============================================> ] 13.6MB/14.29MB +2026-10-18T15:35:54+09:00 95121e5a56c0 Extracting [==================================================>] 14.29MB/14.29MB +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Extracting [======================================> ] 6.291MB/8.066MB +2026-10-18T15:35:54+09:00 95121e5a56c0 Pull complete +2026-10-18T15:35:54+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:35:54+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:35:54+09:00 d9f591c70342 Pull complete +2026-10-18T15:35:54+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:35:54+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:35:54+09:00 4f4fb700ef54 Pull complete +2026-10-18T15:35:54+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:35:54+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:35:54+09:00 4ed485d78f72 Pull complete +2026-10-18T15:35:54+09:00 valkey Pulled +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Extracting [==================================================>] 8.066MB/8.066MB +2026-10-18T15:35:54+09:00 99bb4ce30ad3 Pull complete +2026-10-18T15:35:54+09:00 31b6f2223c4b Extracting [=> ] 32.77kB/1.196MB +2026-10-18T15:35:54+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:35:54+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:35:54+09:00 31b6f2223c4b Pull complete +2026-10-18T15:35:54+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:35:54+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:35:54+09:00 9da35c01411f Pull complete +2026-10-18T15:35:54+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:35:54+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:35:54+09:00 a6809e067bc1 Pull complete +2026-10-18T15:35:54+09:00 10643155f463 Extracting [> ] 557.1kB/112.8MB +2026-10-18T15:35:54+09:00 10643155f463 Extracting [===> ] 7.242MB/112.8MB +2026-10-18T15:35:54+09:00 10643155f463 Extracting [====> ] 10.03MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [======> ] 14.48MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [========> ] 18.94MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [===========> ] 25.07MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [===============> ] 33.98MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [===================> ] 42.89MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [=======================> ] 52.36MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [=========================> ] 57.38MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [============================> ] 63.5MB/112.8MB +2026-10-18T15:35:55+09:00 10643155f463 Extracting [================================> ] 74.09MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [====================================> ] 83MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [========================================> ] 91.91MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [==========================================> ] 96.93MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [============================================> ] 100.8MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [==============================================> ] 104.7MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [===============================================> ] 107.5MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [================================================> ] 109.2MB/112.8MB +2026-10-18T15:35:56+09:00 10643155f463 Extracting [=================================================> ] 111.4MB/112.8MB +2026-10-18T15:35:57+09:00 10643155f463 Extracting [==================================================>] 112.8MB/112.8MB +2026-10-18T15:35:57+09:00 10643155f463 Pull complete +2026-10-18T15:35:57+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:35:57+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:35:57+09:00 a7ef49b2a615 Pull complete +2026-10-18T15:35:57+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:35:57+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:35:57+09:00 29d37472e7c3 Pull complete +2026-10-18T15:35:57+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:35:57+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:35:57+09:00 4d2363af1825 Pull complete +2026-10-18T15:35:57+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:35:57+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:35:57+09:00 4a14fbbe260a Pull complete +2026-10-18T15:35:57+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:35:57+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:35:57+09:00 8cced4a98c7e Pull complete +2026-10-18T15:35:57+09:00 4909bfb5f5ed Extracting [=============> ] 32.77kB/123.1kB +2026-10-18T15:35:57+09:00 4909bfb5f5ed Extracting [==================================================>] 123.1kB/123.1kB +2026-10-18T15:35:57+09:00 4909bfb5f5ed Pull complete +2026-10-18T15:35:57+09:00 3e1ddef0ec36 Extracting [=> ] 32.77kB/1.451MB +2026-10-18T15:35:57+09:00 3e1ddef0ec36 Extracting [==================================================>] 1.451MB/1.451MB +2026-10-18T15:35:57+09:00 3e1ddef0ec36 Pull complete +2026-10-18T15:35:57+09:00 postgres Pulled +2026-10-18T15:35:58+09:00 #1 [internal] load local bake definitions +2026-10-18T15:35:58+09:00 #1 reading from stdin 449B done +2026-10-18T15:35:58+09:00 #1 DONE 0.0s +2026-10-18T15:35:58+09:00 +2026-10-18T15:35:58+09:00 #2 [internal] load build definition from Dockerfile +2026-10-18T15:35:58+09:00 #2 transferring dockerfile: 500B 0.0s done +2026-10-18T15:35:58+09:00 #2 DONE 0.0s +2026-10-18T15:35:58+09:00 +2026-10-18T15:35:58+09:00 #3 [internal] load metadata for docker.io/library/python:3.11-slim +2026-10-18T15:35:58+09:00 #3 ... +2026-10-18T15:35:58+09:00 +2026-10-18T15:35:58+09:00 #4 [auth] library/python:pull token for registry-1.docker.io +2026-10-18T15:35:58+09:00 #4 DONE 0.0s +2026-10-18T15:35:58+09:00 +2026-10-18T15:35:58+09:00 #3 [internal] load metadata for docker.io/library/python:3.11-slim +2026-10-18T15:35:59+09:00 #3 DONE 0.9s +2026-10-18T15:35:59+09:00 +2026-10-18T15:35:59+09:00 #5 [internal] load .dockerignore +2026-10-18T15:35:59+09:00 #5 transferring context: 2B done +2026-10-18T15:35:59+09:00 #5 DONE 0.0s +2026-10-18T15:35:59+09:00 +2026-10-18T15:35:59+09:00 #6 [internal] load build context +2026-10-18T15:35:59+09:00 #6 transferring context: 16.83kB done +2026-10-18T15:35:59+09:00 #6 DONE 0.0s +2026-10-18T15:35:59+09:00 +2026-10-18T15:35:59+09:00 #7 [1/8] FROM docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce +2026-10-18T15:35:59+09:00 #7 resolve docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce done +2026-10-18T15:35:59+09:00 #7 sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce 10.37kB / 10.37kB done +2026-10-18T15:35:59+09:00 #7 sha256:e529028263dbe6910a2d96f7d2b8f5266385e917fd45d286ef166977c094a51e 1.75kB / 1.75kB done +2026-10-18T15:35:59+09:00 #7 sha256:541096ae9b05d3b850341b78790e2ed31e94d5aa0ea086933c6ff0c09ffa2e63 5.49kB / 5.49kB done +2026-10-18T15:35:59+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 5.24MB / 29.84MB 0.1s +2026-10-18T15:35:59+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0B / 1.29MB 0.1s +2026-10-18T15:35:59+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0B / 14.46MB 0.1s +2026-10-18T15:35:59+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.2s done +2026-10-18T15:35:59+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 1.29MB / 1.29MB 0.2s done +2026-10-18T15:35:59+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 0B / 250B 0.2s +2026-10-18T15:35:59+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e +2026-10-18T15:35:59+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.3s done +2026-10-18T15:35:59+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 250B / 250B 0.3s done +2026-10-18T15:36:00+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.9s done +2026-10-18T15:36:00+09:00 #7 extracting sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca +2026-10-18T15:36:00+09:00 #7 extracting sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0.1s done +2026-10-18T15:36:00+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0.1s +2026-10-18T15:36:01+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0.7s done +2026-10-18T15:36:01+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d +2026-10-18T15:36:01+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d done +2026-10-18T15:36:01+09:00 #7 DONE 2.2s +2026-10-18T15:36:01+09:00 +2026-10-18T15:36:01+09:00 #8 [2/8] WORKDIR /app +2026-10-18T15:36:01+09:00 #8 DONE 0.0s +2026-10-18T15:36:01+09:00 +2026-10-18T15:36:01+09:00 #9 [3/8] COPY requirements.txt . +2026-10-18T15:36:01+09:00 #9 DONE 0.0s +2026-10-18T15:36:01+09:00 +2026-10-18T15:36:01+09:00 #10 [4/8] RUN pip install --no-cache-dir -r requirements.txt +2026-10-18T15:36:03+09:00 #10 1.539 Looking in indexes: <설정된 서버> <설정된 서버> +2026-10-18T15:36:03+09:00 #10 1.541 Ignoring torch: markers 'sys_platform != "linux" or platform_machine != "x86_64"' don't match your environment +2026-10-18T15:36:03+09:00 #10 1.901 Collecting fastapi==0.115.0 (from -r requirements.txt (line 4)) +2026-10-18T15:36:03+09:00 #10 1.923 Downloading fastapi-0.115.0-py3-none-any.whl.metadata (27 kB) +2026-10-18T15:36:03+09:00 #10 2.161 Collecting uvicorn==0.30.6 (from -r requirements.txt (line 5)) +2026-10-18T15:36:03+09:00 #10 2.164 Downloading uvicorn-0.30.6-py3-none-any.whl.metadata (6.6 kB) +2026-10-18T15:36:03+09:00 #10 2.382 Collecting FlagEmbedding==1.2.11 (from -r requirements.txt (line 6)) +2026-10-18T15:36:04+09:00 #10 2.386 Downloading FlagEmbedding-1.2.11.tar.gz (147 kB) +2026-10-18T15:36:04+09:00 #10 2.390 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.1/147.1 kB 90.0 MB/s eta 0:00:00 +2026-10-18T15:36:04+09:00 #10 2.417 Preparing metadata (setup.py): started +2026-10-18T15:36:04+09:00 #10 2.735 Preparing metadata (setup.py): finished with status 'done' +2026-10-18T15:36:04+09:00 #10 2.894 Collecting torch==2.4.1+cpu (from -r requirements.txt (line 9)) +2026-10-18T15:36:04+09:00 #10 2.948 Downloading <설정된 서버> (194.9 MB) +2026-10-18T15:36:05+09:00 #10 3.671 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.9/194.9 MB 278.9 MB/s eta 0:00:00 +2026-10-18T15:36:05+09:00 #10 4.193 Collecting transformers==4.44.2 (from -r requirements.txt (line 11)) +2026-10-18T15:36:05+09:00 #10 4.197 Downloading transformers-4.44.2-py3-none-any.whl.metadata (43 kB) +2026-10-18T15:36:05+09:00 #10 4.200 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 kB 263.9 MB/s eta 0:00:00 +2026-10-18T15:36:05+09:00 #10 4.440 Collecting peft==0.12.0 (from -r requirements.txt (line 12)) +2026-10-18T15:36:06+09:00 #10 4.444 Downloading peft-0.12.0-py3-none-any.whl.metadata (13 kB) +2026-10-18T15:36:06+09:00 #10 5.015 Collecting numpy==1.26.4 (from -r requirements.txt (line 13)) +2026-10-18T15:36:06+09:00 #10 5.019 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB) +2026-10-18T15:36:06+09:00 #10 5.021 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 247.4 MB/s eta 0:00:00 +2026-10-18T15:36:06+09:00 #10 5.366 Collecting pyarrow==21.0.0 (from -r requirements.txt (line 15)) +2026-10-18T15:36:07+09:00 #10 5.371 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.3 kB) +2026-10-18T15:36:07+09:00 #10 5.504 Collecting starlette<0.39.0,>=0.37.2 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:07+09:00 #10 5.509 Downloading starlette-0.38.6-py3-none-any.whl.metadata (6.0 kB) +2026-10-18T15:36:07+09:00 #10 5.907 Collecting pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:07+09:00 #10 5.910 Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB) +2026-10-18T15:36:07+09:00 #10 5.913 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.0/133.0 kB 276.8 MB/s eta 0:00:00 +2026-10-18T15:36:07+09:00 #10 5.959 Collecting typing-extensions>=4.8.0 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:07+09:00 #10 5.962 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) +2026-10-18T15:36:07+09:00 #10 6.209 Collecting click>=7.0 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:36:07+09:00 #10 6.212 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:36:07+09:00 #10 6.430 Collecting h11>=0.8 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:36:08+09:00 #10 6.433 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) +2026-10-18T15:36:08+09:00 #10 6.695 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:08+09:00 #10 6.699 Downloading datasets-5.1.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:36:08+09:00 #10 6.945 Collecting accelerate>=0.20.1 (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:08+09:00 #10 6.949 Downloading accelerate-1.15.0-py3-none-any.whl.metadata (19 kB) +2026-10-18T15:36:08+09:00 #10 7.183 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:08+09:00 #10 7.188 Downloading sentence_transformers-6.1.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:36:08+09:00 #10 7.266 Collecting filelock (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:08+09:00 #10 7.269 Downloading filelock-4.2.1-py3-none-any.whl.metadata (2.0 kB) +2026-10-18T15:36:08+09:00 #10 7.361 Collecting sympy (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:09+09:00 #10 7.364 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB) +2026-10-18T15:36:09+09:00 #10 7.423 Collecting networkx (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:09+09:00 #10 7.427 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB) +2026-10-18T15:36:09+09:00 #10 7.454 Collecting jinja2 (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:09+09:00 #10 7.458 Downloading <설정된 서버> (2.9 kB) +2026-10-18T15:36:09+09:00 #10 7.517 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:09+09:00 #10 7.521 Downloading fsspec-2026.9.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:36:09+09:00 #10 8.001 Collecting huggingface-hub<1.0,>=0.23.2 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:09+09:00 #10 8.005 Downloading huggingface_hub-0.36.2-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:36:09+09:00 #10 8.022 Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/site-packages (from transformers==4.44.2->-r requirements.txt (line 11)) (26.3) +2026-10-18T15:36:09+09:00 #10 8.268 Collecting pyyaml>=5.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:09+09:00 #10 8.272 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) +2026-10-18T15:36:10+09:00 #10 8.994 Collecting regex!=2019.12.17 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:10+09:00 #10 8.997 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) +2026-10-18T15:36:10+09:00 #10 9.000 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 kB 264.5 MB/s eta 0:00:00 +2026-10-18T15:36:10+09:00 #10 9.040 Collecting requests (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:10+09:00 #10 9.044 Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) +2026-10-18T15:36:10+09:00 #10 9.388 Collecting safetensors>=0.4.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:11+09:00 #10 9.391 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) +2026-10-18T15:36:11+09:00 #10 9.833 Collecting tokenizers<0.20,>=0.19 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:11+09:00 #10 9.838 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB) +2026-10-18T15:36:11+09:00 #10 9.898 Collecting tqdm>=4.27 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:11+09:00 #10 9.902 Downloading tqdm-4.70.1-py3-none-any.whl.metadata (57 kB) +2026-10-18T15:36:11+09:00 #10 9.904 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB 270.9 MB/s eta 0:00:00 +2026-10-18T15:36:11+09:00 #10 10.21 Collecting psutil (from peft==0.12.0->-r requirements.txt (line 12)) +2026-10-18T15:36:11+09:00 #10 10.22 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) +2026-10-18T15:36:12+09:00 #10 10.65 Collecting hf-xet<2.0.0,>=1.1.3 (from huggingface-hub<1.0,>=0.23.2->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:12+09:00 #10 10.66 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB) +2026-10-18T15:36:12+09:00 #10 10.96 Collecting annotated-types>=0.6.0 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:12+09:00 #10 10.96 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:36:13+09:00 #10 12.03 Collecting pydantic-core==2.50.1 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:13+09:00 #10 12.03 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB) +2026-10-18T15:36:13+09:00 #10 12.26 Collecting typing-inspection>=0.4.4 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:13+09:00 #10 12.26 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:36:14+09:00 #10 12.53 Collecting anyio<5,>=3.4.0 (from starlette<0.39.0,>=0.37.2->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:36:14+09:00 #10 12.53 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) +2026-10-18T15:36:14+09:00 #10 12.68 INFO: pip is looking at multiple versions of datasets to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:36:14+09:00 #10 12.68 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:14+09:00 #10 12.69 Downloading datasets-5.0.1-py3-none-any.whl.metadata (23 kB) +2026-10-18T15:36:14+09:00 #10 13.00 Collecting dill<0.4.2,>=0.3.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:14+09:00 #10 13.00 Downloading dill-0.4.1-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:36:14+09:00 #10 13.35 Collecting pandas (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:15+09:00 #10 13.35 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB) +2026-10-18T15:36:15+09:00 #10 13.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 298.6 MB/s eta 0:00:00 +2026-10-18T15:36:15+09:00 #10 13.74 Collecting httpx<1.0.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:15+09:00 #10 13.74 Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:36:15+09:00 #10 14.13 Collecting xxhash (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:15+09:00 #10 14.14 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (17 kB) +2026-10-18T15:36:15+09:00 #10 14.37 Collecting multiprocess<0.70.20 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:16+09:00 #10 14.37 Downloading multiprocess-0.70.19-py311-none-any.whl.metadata (7.5 kB) +2026-10-18T15:36:16+09:00 #10 14.40 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:16+09:00 #10 14.40 Downloading fsspec-2026.6.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:36:16+09:00 #10 14.64 Collecting charset_normalizer<4,>=2 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:16+09:00 #10 14.65 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (46 kB) +2026-10-18T15:36:16+09:00 #10 14.65 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.4/46.4 kB 189.9 MB/s eta 0:00:00 +2026-10-18T15:36:16+09:00 #10 14.68 Collecting idna<4,>=2.5 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:16+09:00 #10 14.68 Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB) +2026-10-18T15:36:16+09:00 #10 14.73 Collecting urllib3<3,>=1.26 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:16+09:00 #10 14.73 Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB) +2026-10-18T15:36:16+09:00 #10 14.76 Collecting certifi>=2023.5.7 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:36:16+09:00 #10 14.77 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) +2026-10-18T15:36:16+09:00 #10 14.85 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:16+09:00 #10 14.86 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) +2026-10-18T15:36:16+09:00 #10 14.95 INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:36:16+09:00 #10 14.95 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:16+09:00 #10 14.96 Downloading sentence_transformers-6.0.1-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:36:16+09:00 #10 14.98 Downloading sentence_transformers-6.0.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:36:16+09:00 #10 15.01 Downloading sentence_transformers-5.7.0-py3-none-any.whl.metadata (18 kB) +2026-10-18T15:36:16+09:00 #10 15.40 Collecting scikit-learn>=0.22.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:17+09:00 #10 15.40 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.3 kB) +2026-10-18T15:36:17+09:00 #10 15.75 Collecting scipy>=1.0.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:17+09:00 #10 15.76 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) +2026-10-18T15:36:17+09:00 #10 15.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 278.4 MB/s eta 0:00:00 +2026-10-18T15:36:17+09:00 #10 15.82 Collecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:36:17+09:00 #10 15.83 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB) +2026-10-18T15:36:18+09:00 #10 16.73 Collecting aiohttp!=4.0.0a0,!=4.0.0a1 (from fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:18+09:00 #10 16.74 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.3 kB) +2026-10-18T15:36:18+09:00 #10 16.97 Collecting httpcore==1.* (from httpx<1.0.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:18+09:00 #10 16.98 Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB) +2026-10-18T15:36:18+09:00 #10 17.15 Collecting joblib>=1.4.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:18+09:00 #10 17.16 Downloading joblib-1.6.0-py3-none-any.whl.metadata (6.5 kB) +2026-10-18T15:36:18+09:00 #10 17.30 Collecting narwhals>=2.0.1 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:18+09:00 #10 17.32 Downloading narwhals-2.27.1-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:36:19+09:00 #10 17.53 Collecting threadpoolctl>=3.5.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:19+09:00 #10 17.54 Downloading threadpoolctl-3.7.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:36:19+09:00 #10 17.90 Collecting python-dateutil>=2.8.2 (from pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:19+09:00 #10 17.90 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) +2026-10-18T15:36:19+09:00 #10 18.22 Collecting aiohappyeyeballs>=2.5.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:19+09:00 #10 18.22 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl.metadata (5.9 kB) +2026-10-18T15:36:19+09:00 #10 18.43 Collecting aiosignal>=1.4.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:20+09:00 #10 18.44 Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB) +2026-10-18T15:36:20+09:00 #10 18.65 Collecting attrs>=17.3.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:20+09:00 #10 18.68 Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB) +2026-10-18T15:36:20+09:00 #10 18.96 Collecting frozenlist>=1.1.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:20+09:00 #10 18.97 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (20 kB) +2026-10-18T15:36:21+09:00 #10 19.66 Collecting multidict<8.0,>=4.5 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:21+09:00 #10 19.67 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (6.2 kB) +2026-10-18T15:36:21+09:00 #10 19.94 Collecting propcache>=0.2.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:21+09:00 #10 19.95 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (25 kB) +2026-10-18T15:36:21+09:00 #10 20.46 Collecting yarl<2.0,>=1.25.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:22+09:00 #10 20.46 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (111 kB) +2026-10-18T15:36:22+09:00 #10 20.46 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.6/111.6 kB 321.5 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 20.72 Collecting cloudpickle>=3.0 (from joblib>=1.4.0->scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:22+09:00 #10 20.72 Downloading cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:36:22+09:00 #10 20.98 Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:36:22+09:00 #10 20.98 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) +2026-10-18T15:36:22+09:00 #10 21.11 Downloading fastapi-0.115.0-py3-none-any.whl (94 kB) +2026-10-18T15:36:22+09:00 #10 21.11 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.6/94.6 kB 241.5 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 21.11 Downloading uvicorn-0.30.6-py3-none-any.whl (62 kB) +2026-10-18T15:36:22+09:00 #10 21.11 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 278.9 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 21.12 Downloading transformers-4.44.2-py3-none-any.whl (9.5 MB) +2026-10-18T15:36:22+09:00 #10 21.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 188.1 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 21.18 Downloading peft-0.12.0-py3-none-any.whl (296 kB) +2026-10-18T15:36:22+09:00 #10 21.18 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 296.4/296.4 kB 326.0 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 21.18 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB) +2026-10-18T15:36:22+09:00 #10 21.27 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 238.7 MB/s eta 0:00:00 +2026-10-18T15:36:22+09:00 #10 21.27 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (42.8 MB) +2026-10-18T15:36:23+09:00 #10 21.55 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 214.9 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.56 Downloading accelerate-1.15.0-py3-none-any.whl (394 kB) +2026-10-18T15:36:23+09:00 #10 21.56 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.3/394.3 kB 327.4 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.56 Downloading click-8.5.0-py3-none-any.whl (125 kB) +2026-10-18T15:36:23+09:00 #10 21.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.3/125.3 kB 293.9 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.57 Downloading h11-0.16.0-py3-none-any.whl (37 kB) +2026-10-18T15:36:23+09:00 #10 21.57 Downloading huggingface_hub-0.36.2-py3-none-any.whl (566 kB) +2026-10-18T15:36:23+09:00 #10 21.58 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 566.4/566.4 kB 324.5 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.58 Downloading pydantic-2.14.1-py3-none-any.whl (488 kB) +2026-10-18T15:36:23+09:00 #10 21.58 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 488.1/488.1 kB 345.3 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.58 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB) +2026-10-18T15:36:23+09:00 #10 21.59 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 300.5 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.60 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) +2026-10-18T15:36:23+09:00 #10 21.61 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 119.1 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.61 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (804 kB) +2026-10-18T15:36:23+09:00 #10 21.62 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 805.0/805.0 kB 265.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.62 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (516 kB) +2026-10-18T15:36:23+09:00 #10 21.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.0/516.0 kB 302.4 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.63 Downloading starlette-0.38.6-py3-none-any.whl (71 kB) +2026-10-18T15:36:23+09:00 #10 21.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.5/71.5 kB 253.7 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.64 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB) +2026-10-18T15:36:23+09:00 #10 21.66 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 171.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.67 Downloading tqdm-4.70.1-py3-none-any.whl (80 kB) +2026-10-18T15:36:23+09:00 #10 21.67 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 309.5 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.67 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) +2026-10-18T15:36:23+09:00 #10 21.67 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.6/45.6 kB 254.5 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.68 Downloading datasets-5.0.1-py3-none-any.whl (559 kB) +2026-10-18T15:36:23+09:00 #10 21.68 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 559.1/559.1 kB 244.7 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.69 Downloading fsspec-2026.6.0-py3-none-any.whl (203 kB) +2026-10-18T15:36:23+09:00 #10 21.69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 203.9/203.9 kB 343.0 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.69 Downloading requests-2.34.2-py3-none-any.whl (73 kB) +2026-10-18T15:36:23+09:00 #10 21.69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 258.0 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.70 Downloading filelock-4.2.1-py3-none-any.whl (162 kB) +2026-10-18T15:36:23+09:00 #10 21.70 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 299.3 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.70 Downloading <설정된 서버> (134 kB) +2026-10-18T15:36:23+09:00 #10 21.70 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 293.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.71 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB) +2026-10-18T15:36:23+09:00 #10 21.72 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 197.6 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.73 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) +2026-10-18T15:36:23+09:00 #10 21.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.6/155.6 kB 328.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.73 Downloading sentence_transformers-5.7.0-py3-none-any.whl (611 kB) +2026-10-18T15:36:23+09:00 #10 21.74 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 611.3/611.3 kB 309.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.74 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB) +2026-10-18T15:36:23+09:00 #10 21.77 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 298.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.77 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) +2026-10-18T15:36:23+09:00 #10 21.77 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) +2026-10-18T15:36:23+09:00 #10 21.77 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 266.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.78 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) +2026-10-18T15:36:23+09:00 #10 21.78 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.0/137.0 kB 333.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.78 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB) +2026-10-18T15:36:23+09:00 #10 21.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 270.0/270.0 kB 308.3 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.79 Downloading dill-0.4.1-py3-none-any.whl (120 kB) +2026-10-18T15:36:23+09:00 #10 21.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.0/120.0 kB 329.7 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.79 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.2 MB) +2026-10-18T15:36:23+09:00 #10 21.81 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 266.9 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.82 Downloading httpx-0.28.1-py3-none-any.whl (73 kB) +2026-10-18T15:36:23+09:00 #10 21.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.5/73.5 kB 305.4 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.82 Downloading httpcore-1.0.9-py3-none-any.whl (78 kB) +2026-10-18T15:36:23+09:00 #10 21.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.8/78.8 kB 304.1 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.83 Downloading idna-3.20-py3-none-any.whl (69 kB) +2026-10-18T15:36:23+09:00 #10 21.83 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.6/69.6 kB 250.9 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.83 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) +2026-10-18T15:36:23+09:00 #10 21.83 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB) +2026-10-18T15:36:23+09:00 #10 21.84 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 262.3 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.84 Downloading multiprocess-0.70.19-py311-none-any.whl (144 kB) +2026-10-18T15:36:23+09:00 #10 21.85 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.5/144.5 kB 314.6 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.85 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.3 MB) +2026-10-18T15:36:23+09:00 #10 21.89 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 250.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 21.89 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.3 MB) +2026-10-18T15:36:23+09:00 #10 22.02 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.3/35.3 MB 302.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.02 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) +2026-10-18T15:36:23+09:00 #10 22.02 Downloading urllib3-2.8.0-py3-none-any.whl (135 kB) +2026-10-18T15:36:23+09:00 #10 22.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.7/135.7 kB 327.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.03 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.1 MB) +2026-10-18T15:36:23+09:00 #10 22.07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.1/11.1 MB 295.6 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.07 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (261 kB) +2026-10-18T15:36:23+09:00 #10 22.07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 261.0/261.0 kB 329.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.08 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB) +2026-10-18T15:36:23+09:00 #10 22.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 249.3 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.09 Downloading joblib-1.6.0-py3-none-any.whl (306 kB) +2026-10-18T15:36:23+09:00 #10 22.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 306.1/306.1 kB 339.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.10 Downloading narwhals-2.27.1-py3-none-any.whl (483 kB) +2026-10-18T15:36:23+09:00 #10 22.10 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 483.2/483.2 kB 344.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.10 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) +2026-10-18T15:36:23+09:00 #10 22.10 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 349.8 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.11 Downloading threadpoolctl-3.7.0-py3-none-any.whl (26 kB) +2026-10-18T15:36:23+09:00 #10 22.11 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl (15 kB) +2026-10-18T15:36:23+09:00 #10 22.11 Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB) +2026-10-18T15:36:23+09:00 #10 22.12 Downloading attrs-26.1.0-py3-none-any.whl (67 kB) +2026-10-18T15:36:23+09:00 #10 22.12 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.5/67.5 kB 279.9 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.12 Downloading cloudpickle-3.1.2-py3-none-any.whl (22 kB) +2026-10-18T15:36:23+09:00 #10 22.13 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (231 kB) +2026-10-18T15:36:23+09:00 #10 22.13 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.1/231.1 kB 245.6 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.13 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (480 kB) +2026-10-18T15:36:23+09:00 #10 22.14 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 480.4/480.4 kB 336.2 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.14 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (235 kB) +2026-10-18T15:36:23+09:00 #10 22.14 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.4/235.4 kB 331.0 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.15 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) +2026-10-18T15:36:23+09:00 #10 22.15 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (117 kB) +2026-10-18T15:36:23+09:00 #10 22.15 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.7/117.7 kB 186.5 MB/s eta 0:00:00 +2026-10-18T15:36:23+09:00 #10 22.38 Building wheels for collected packages: FlagEmbedding +2026-10-18T15:36:24+09:00 #10 22.39 Building wheel for FlagEmbedding (setup.py): started +2026-10-18T15:36:24+09:00 #10 22.66 Building wheel for FlagEmbedding (setup.py): finished with status 'done' +2026-10-18T15:36:24+09:00 #10 22.66 Created wheel for FlagEmbedding: filename=flagembedding-1.2.11-py3-none-any.whl size=171233 sha256=e0599ec9e354476a738470530d082956ad51beeb097284fad08395bc9cdcb051 +2026-10-18T15:36:24+09:00 #10 22.66 Stored in directory: /tmp/pip-ephem-wheel-cache-7i9yea58/wheels/cc/30/56/331f855b95583721e80ba4d5630f701387dcade9d050c88d9d +2026-10-18T15:36:24+09:00 #10 22.66 Successfully built FlagEmbedding +2026-10-18T15:36:25+09:00 #10 23.53 Installing collected packages: mpmath, xxhash, urllib3, typing-extensions, tqdm, threadpoolctl, sympy, six, safetensors, regex, pyyaml, pyarrow, psutil, propcache, numpy, networkx, narwhals, multidict, MarkupSafe, idna, hf-xet, h11, fsspec, frozenlist, filelock, dill, cloudpickle, click, charset_normalizer, certifi, attrs, annotated-types, aiohappyeyeballs, yarl, uvicorn, typing-inspection, scipy, requests, python-dateutil, pydantic-core, multiprocess, joblib, jinja2, httpcore, anyio, aiosignal, torch, starlette, scikit-learn, pydantic, pandas, huggingface-hub, httpx, aiohttp, tokenizers, fastapi, accelerate, transformers, datasets, sentence_transformers, peft, FlagEmbedding +2026-10-18T15:37:00+09:00 #10 58.83 Successfully installed FlagEmbedding-1.2.11 MarkupSafe-3.0.4 accelerate-1.15.0 aiohappyeyeballs-2.7.1 aiohttp-3.14.5 aiosignal-1.4.0 annotated-types-0.8.0 anyio-4.15.1 attrs-26.1.0 certifi-2026.7.22 charset_normalizer-3.5.2 click-8.5.0 cloudpickle-3.1.2 datasets-5.0.1 dill-0.4.1 fastapi-0.115.0 filelock-4.2.1 frozenlist-1.8.0 fsspec-2026.6.0 h11-0.16.0 hf-xet-1.7.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.36.2 idna-3.20 jinja2-3.1.6 joblib-1.6.0 mpmath-1.3.0 multidict-7.1.0 multiprocess-0.70.19 narwhals-2.27.1 networkx-3.6.1 numpy-1.26.4 pandas-3.0.6 peft-0.12.0 propcache-0.5.4 psutil-7.2.2 pyarrow-21.0.0 pydantic-2.14.1 pydantic-core-2.50.1 python-dateutil-2.9.0.post0 pyyaml-6.0.3 regex-2026.9.29 requests-2.34.2 safetensors-0.8.0 scikit-learn-1.9.1 scipy-1.17.1 sentence_transformers-5.7.0 six-1.17.0 starlette-0.38.6 sympy-1.14.0 threadpoolctl-3.7.0 tokenizers-0.19.1 torch-2.4.1+cpu tqdm-4.70.1 transformers-4.44.2 typing-extensions-4.16.0 typing-inspection-0.4.4 urllib3-2.8.0 uvicorn-0.30.6 xxhash-4.0.1 yarl-1.25.1 +2026-10-18T15:37:00+09:00 #10 58.83 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:37:00+09:00 #10 58.94 +2026-10-18T15:37:00+09:00 #10 58.94 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:37:00+09:00 #10 58.94 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:37:04+09:00 #10 DONE 63.3s +2026-10-18T15:37:04+09:00 +2026-10-18T15:37:04+09:00 #11 [5/8] COPY requirements-observability.txt . +2026-10-18T15:37:04+09:00 #11 DONE 0.0s +2026-10-18T15:37:04+09:00 +2026-10-18T15:37:04+09:00 #12 [6/8] RUN pip install --no-cache-dir -r requirements-observability.txt +2026-10-18T15:37:05+09:00 #12 0.597 Collecting prometheus-client==0.25.0 (from -r requirements-observability.txt (line 1)) +2026-10-18T15:37:05+09:00 #12 0.637 Downloading prometheus_client-0.25.0-py3-none-any.whl.metadata (2.1 kB) +2026-10-18T15:37:05+09:00 #12 0.651 Downloading prometheus_client-0.25.0-py3-none-any.whl (64 kB) +2026-10-18T15:37:05+09:00 #12 0.662 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.2/64.2 kB 6.2 MB/s eta 0:00:00 +2026-10-18T15:37:06+09:00 #12 1.461 Installing collected packages: prometheus-client +2026-10-18T15:37:06+09:00 #12 1.509 Successfully installed prometheus-client-0.25.0 +2026-10-18T15:37:06+09:00 #12 1.510 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:37:06+09:00 #12 1.634 +2026-10-18T15:37:06+09:00 #12 1.634 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:37:06+09:00 #12 1.634 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:37:06+09:00 #12 DONE 1.7s +2026-10-18T15:37:06+09:00 +2026-10-18T15:37:06+09:00 #13 [7/8] RUN python -c "from FlagEmbedding import BGEM3FlagModel" +2026-10-18T15:37:10+09:00 #13 DONE 4.4s +2026-10-18T15:37:11+09:00 +2026-10-18T15:37:11+09:00 #14 [8/8] COPY main.py . +2026-10-18T15:37:11+09:00 #14 DONE 0.0s +2026-10-18T15:37:11+09:00 +2026-10-18T15:37:11+09:00 #15 exporting to image +2026-10-18T15:37:11+09:00 #15 exporting layers +2026-10-18T15:37:19+09:00 #15 exporting layers 8.4s done +2026-10-18T15:37:19+09:00 #15 writing image sha256:8e58ee069b38f6d0557cacd4d8e0510ee793b4f9082bbf654a96879d1c8a5300 done +2026-10-18T15:37:19+09:00 #15 naming to docker.io/library/docgrid-embedding-server done +2026-10-18T15:37:19+09:00 #15 DONE 8.4s +2026-10-18T15:37:19+09:00 +2026-10-18T15:37:19+09:00 #16 resolving provenance for metadata file +2026-10-18T15:37:19+09:00 #16 DONE 0.0s +2026-10-18T15:37:19+09:00 embedding-server Built +2026-10-18T15:37:19+09:00 Network docgrid_docgrid-local Creating +2026-10-18T15:37:19+09:00 Network docgrid_docgrid-local Created +2026-10-18T15:37:19+09:00 Volume "docgrid_huggingface-cache" Creating +2026-10-18T15:37:19+09:00 Volume "docgrid_huggingface-cache" Created +2026-10-18T15:37:19+09:00 Volume "docgrid_valkey-data" Creating +2026-10-18T15:37:19+09:00 Volume "docgrid_valkey-data" Created +2026-10-18T15:37:19+09:00 Volume "docgrid_postgres17_data" Creating +2026-10-18T15:37:19+09:00 Volume "docgrid_postgres17_data" Created +2026-10-18T15:37:19+09:00 Container docgrid-embedding Creating +2026-10-18T15:37:19+09:00 Container docgrid-postgres17 Creating +2026-10-18T15:37:19+09:00 Container docgrid-valkey Creating +2026-10-18T15:37:19+09:00 Container docgrid-valkey Created +2026-10-18T15:37:19+09:00 Container docgrid-postgres17 Created +2026-10-18T15:37:19+09:00 Container docgrid-embedding Created +2026-10-18T15:37:19+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:37:19+09:00 Container docgrid-valkey Starting +2026-10-18T15:37:19+09:00 Container docgrid-embedding Starting +2026-10-18T15:37:20+09:00 Container docgrid-embedding Started +2026-10-18T15:37:20+09:00 Container docgrid-valkey Started +2026-10-18T15:37:20+09:00 Container docgrid-postgres17 Started +2026-10-18T15:37:23+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:37:23+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:38:08+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:38:08+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:38:08+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:38:08+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:38:08+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-9a71bc5be2594dfba7dc3ffd99833f81.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-9a71bc5be2594dfba7dc3ffd99833f81.log new file mode 100644 index 00000000..613eb1e5 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-9a71bc5be2594dfba7dc3ffd99833f81.log @@ -0,0 +1,49 @@ +2026-10-18T15:40:28+09:00 [실행] 20261018T154028995634+0900 · 범위 search +2026-10-18T15:40:29+09:00 [계정] 로그인 완료 +2026-10-18T15:40:29+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:40:29+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:40:29+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:40:29+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:40:29+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:40:29+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:40:29+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:40:29+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:40:29+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:40:29+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:40:29+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:40:29+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:40:29+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:40:29+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:40:29+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:40:29+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.3초) +2026-10-18T15:40:30+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:30+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:30+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:30+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:30+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:30+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:30+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:30+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:30+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:30+09:00 [원본] 문서 3: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 4: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 5: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 6: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 7: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 8: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 9: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 10: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 11: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 12: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 13: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 14: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 15: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 16: PASS +2026-10-18T15:40:30+09:00 [원본] 문서 17: PASS +2026-10-18T15:40:30+09:00 [업로드] PASS · 15/15 +2026-10-18T15:40:30+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:40:30+09:00 [검색] PASS · 3/3 +2026-10-18T15:40:30+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:40:30+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:40:30+09:00 [문서 ID 재사용] PASS · 15/15 +2026-10-18T15:40:30+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-a54e5866f909483fb8c9fbf6a08fa754.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-a54e5866f909483fb8c9fbf6a08fa754.log new file mode 100644 index 00000000..a73e5e65 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/runtime/a7dc894111e946d9aac3f16b6080ce7f/verify-a54e5866f909483fb8c9fbf6a08fa754.log @@ -0,0 +1,58 @@ +2026-10-18T15:39:53+09:00 [실행] 20261018T153953335897+0900 · 범위 search +2026-10-18T15:39:53+09:00 [계정] 회원가입 완료 +2026-10-18T15:39:53+09:00 [계정] 로그인 완료 +2026-10-18T15:39:54+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:39:54+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:39:54+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:39:54+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:39:54+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:39:54+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:39:54+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:39:54+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:39:54+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:39:54+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:39:54+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:39:54+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:39:55+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:39:55+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:39:55+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:39:55+09:00 [인덱싱] INDEXED 0/15 · 처리 중 0 · 대기 15 · 실패 0 (0.4초) +2026-10-18T15:40:02+09:00 [인덱싱] INDEXED 1/15 · 처리 중 2 · 대기 12 · 실패 0 (7.5초) +2026-10-18T15:40:06+09:00 [인덱싱] INDEXED 3/15 · 처리 중 2 · 대기 10 · 실패 0 (11.1초) +2026-10-18T15:40:09+09:00 [인덱싱] INDEXED 5/15 · 처리 중 1 · 대기 9 · 실패 0 (14.6초) +2026-10-18T15:40:13+09:00 [인덱싱] INDEXED 6/15 · 처리 중 2 · 대기 7 · 실패 0 (18.0초) +2026-10-18T15:40:16+09:00 [인덱싱] INDEXED 8/15 · 처리 중 1 · 대기 6 · 실패 0 (21.4초) +2026-10-18T15:40:19+09:00 [인덱싱] INDEXED 10/15 · 처리 중 1 · 대기 4 · 실패 0 (24.6초) +2026-10-18T15:40:22+09:00 [인덱싱] INDEXED 13/15 · 처리 중 1 · 대기 1 · 실패 0 (27.7초) +2026-10-18T15:40:25+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (30.8초) +2026-10-18T15:40:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:26+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:26+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:40:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:40:26+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:40:26+09:00 [원본] 문서 3: PASS +2026-10-18T15:40:26+09:00 [원본] 문서 4: PASS +2026-10-18T15:40:26+09:00 [원본] 문서 5: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 6: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 7: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 8: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 9: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 10: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 11: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 12: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 13: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 14: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 15: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 16: PASS +2026-10-18T15:40:27+09:00 [원본] 문서 17: PASS +2026-10-18T15:40:27+09:00 [업로드] PASS · 15/15 +2026-10-18T15:40:27+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:40:27+09:00 [검색] PASS · 3/3 +2026-10-18T15:40:27+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:40:27+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:40:27+09:00 [문서 ID 재사용] NOT_RUN · 0/0 +2026-10-18T15:40:27+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/summary.json b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/summary.json new file mode 100644 index 00000000..e7bd0b86 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/summary.json @@ -0,0 +1,117 @@ +{ + "runId": "39104533807-1", + "revision": "ae146127179227f74205e189f7fd49dbe59a77fd", + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": [ + { + "id": "preflight", + "purpose": "독립 실행기의 새 환경 확인", + "timestamp": "2026-10-18T15:35:26+09:00", + "verdict": "PASS", + "existingContainers": 0, + "existingImageCount": 6, + "existingVolumes": 0, + "environmentFilesInitiallyPresent": 0, + "workload": { + "documents": 15, + "searchQuestions": 3, + "browserSessions": 1 + } + }, + { + "id": "concurrent-start", + "purpose": "진행 중 start의 잠금으로 두 번째 start 거부", + "timestamp": "2026-10-18T15:35:31+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 0.114, + "log": "concurrent-start.log" + }, + { + "id": "cold-start", + "purpose": "모델·의존성 최초 준비를 포함한 전체 기동", + "timestamp": "2026-10-18T15:39:51+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 265.87, + "log": "cold-start.log" + }, + { + "id": "verify-first", + "purpose": "실제 모델 인덱싱·검색·프록시·원본 대조", + "timestamp": "2026-10-18T15:40:27+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 35.68, + "log": "verify-first.log" + }, + { + "id": "first-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:40:27+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "verify-replay", + "purpose": "같은 계정 재실행과 문서 ID 재사용", + "timestamp": "2026-10-18T15:40:31+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.527, + "log": "verify-replay.log" + }, + { + "id": "replay-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:40:31+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15, + "replay": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "browser", + "purpose": "실제 Chromium 로그인·질문 전송·원본 다운로드 해시", + "timestamp": "2026-10-18T15:41:19+09:00", + "verdict": "FAIL", + "exitCode": 1, + "expectedExitCode": 0, + "elapsedSeconds": 48.381, + "log": "browser.log" + }, + { + "id": "incomplete", + "purpose": "현재 회차의 완료 여부", + "timestamp": "2026-10-18T15:41:19+09:00", + "verdict": "FAIL", + "at": "browser", + "errorType": "RuntimeError" + }, + { + "id": "always-cleanup", + "purpose": "시험 중단·완료 후 소유 자원 종료", + "timestamp": "2026-10-18T15:41:22+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.422, + "log": "always-cleanup.log" + } + ] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-first.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-first.log new file mode 100644 index 00000000..67416de1 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-first.log @@ -0,0 +1,10 @@ +실행 ID: 39104533807-1/verify-first +목적: 실제 모델 인덱싱·검색·프록시·원본 대조 +시작: 2026-10-18T15:39:51+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:40:27+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/aaad4b583437450b97df532bb67f6072/summary.json +종료: 2026-10-18T15:40:27+09:00 +실제 종료 코드: 0 +소요 시간: 35.68초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-replay.log b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-replay.log new file mode 100644 index 00000000..3200ab61 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39104533807-1/verify-replay.log @@ -0,0 +1,10 @@ +실행 ID: 39104533807-1/verify-replay +목적: 같은 계정 재실행과 문서 ID 재사용 +시작: 2026-10-18T15:40:27+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:40:31+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/0f2fe073c8404458ba5e8659304fc365/summary.json +종료: 2026-10-18T15:40:31+09:00 +실제 종료 코드: 0 +소요 시간: 3.527초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/always-cleanup.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/always-cleanup.log new file mode 100644 index 00000000..cfef2983 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/always-cleanup.log @@ -0,0 +1,10 @@ +실행 ID: 39105008958-1/always-cleanup +목적: 시험 중단·완료 후 소유 자원 종료 +시작: 2026-10-18T15:47:55+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:47:58+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +종료: 2026-10-18T15:47:58+09:00 +실제 종료 코드: 0 +소요 시간: 2.818초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser.log new file mode 100644 index 00000000..1e742d7c --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser.log @@ -0,0 +1,10 @@ +실행 ID: 39105008958-1/browser +목적: 실제 Chromium 로그인·질문 전송·원본 다운로드 해시 +시작: 2026-10-18T15:47:08+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: node scripts/demo/browser_smoke.cjs <실행기 작업공간>/.demo/reproduction/39105008958-1/browser +2026-10-18T15:47:55+09:00 {"verdict":"FAIL","stage":"login-navigation","errorType":"TimeoutError"} +종료: 2026-10-18T15:47:55+09:00 +실제 종료 코드: 1 +소요 시간: 47.036초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/failure.png b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/failure.png new file mode 100644 index 00000000..7a048e8c Binary files /dev/null and b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/failure.png differ diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/summary.json new file mode 100644 index 00000000..737bca53 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/browser/summary.json @@ -0,0 +1,9 @@ +{ + "verdict": "FAIL", + "stage": "login-navigation", + "errorType": "TimeoutError", + "message": "page.waitForURL: Timeout 45000ms exceeded.\n=========================== logs ===========================\nwaiting for navigation to \"**/search\" until \"load\"\n navigated to \"http://127.0.0.1:3000/login?email=<인증정보생략>&password=<인증정보생략> 생략>\"\n navigated to \"http://127.0.0.1:3000/login?email=<인증정보생략>&password=<인증정보생략> 생략>\"\n============================================================", + "pageErrors": [], + "pagePath": "/login", + "alerts": [] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/cold-start.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/cold-start.log new file mode 100644 index 00000000..ca4e8bcf --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/cold-start.log @@ -0,0 +1,11 @@ +실행 ID: 39105008958-1/cold-start +목적: 모델·의존성 최초 준비를 포함한 전체 기동 +시작: 2026-10-18T15:43:13+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start --timeout 1200 +2026-10-18T15:43:17+09:00 [시작] 로컬 시연 세션 0b33fe3a31414ff28fc8f089dbf5c65c · 범위 search +2026-10-18T15:46:36+09:00 [준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요. +종료: 2026-10-18T15:46:36+09:00 +실제 종료 코드: 0 +소요 시간: 203.438초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/concurrent-start.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/concurrent-start.log new file mode 100644 index 00000000..cb8bd92a --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/concurrent-start.log @@ -0,0 +1,10 @@ +실행 ID: 39105008958-1/concurrent-start +목적: 진행 중 start의 잠금으로 두 번째 start 거부 +시작: 2026-10-18T15:43:17+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start +2026-10-18T15:43:17+09:00 [실패] 다른 시작·검증·종료 명령이 실행 중입니다. +종료: 2026-10-18T15:43:17+09:00 +실제 종료 코드: 1 +소요 시간: 0.114초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/events.jsonl new file mode 100644 index 00000000..368dc6b4 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/events.jsonl @@ -0,0 +1,56 @@ +{"timestamp": "2026-10-18T15:46:37.727+09:00", "message": "[실행] 20261018T154637726025+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:46:37.893+09:00", "message": "[계정] 회원가입 완료"} +{"timestamp": "2026-10-18T15:46:38.016+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:46:38.477+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:46:38.510+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:46:38.544+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:46:38.586+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:46:38.619+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:46:38.650+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:46:38.679+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:46:38.711+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:46:38.743+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:46:38.773+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:46:38.802+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:46:38.852+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:46:38.885+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:46:38.916+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:46:38.942+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:46:39.192+09:00", "message": "[인덱싱] INDEXED 0/15 · 처리 중 0 · 대기 15 · 실패 0 (0.2초)"} +{"timestamp": "2026-10-18T15:46:49.139+09:00", "message": "[인덱싱] INDEXED 0/15 · 처리 중 2 · 대기 13 · 실패 0 (10.2초)"} +{"timestamp": "2026-10-18T15:46:52.549+09:00", "message": "[인덱싱] INDEXED 3/15 · 처리 중 1 · 대기 11 · 실패 0 (13.6초)"} +{"timestamp": "2026-10-18T15:46:55.855+09:00", "message": "[인덱싱] INDEXED 5/15 · 처리 중 2 · 대기 8 · 실패 0 (16.9초)"} +{"timestamp": "2026-10-18T15:46:59.125+09:00", "message": "[인덱싱] INDEXED 7/15 · 처리 중 2 · 대기 6 · 실패 0 (20.2초)"} +{"timestamp": "2026-10-18T15:47:02.366+09:00", "message": "[인덱싱] INDEXED 11/15 · 처리 중 1 · 대기 3 · 실패 0 (23.4초)"} +{"timestamp": "2026-10-18T15:47:05.416+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (26.5초)"} +{"timestamp": "2026-10-18T15:47:05.659+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:05.660+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:05.660+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:05.838+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:05.838+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:05.861+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:06.019+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:06.019+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:06.019+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:06.035+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:47:06.047+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:47:06.058+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:47:06.070+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:47:06.082+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:47:06.095+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:47:06.109+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:47:06.123+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:47:06.135+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:47:06.145+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:47:06.157+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:47:06.169+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:47:06.181+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:47:06.194+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[문서 ID 재사용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:47:06.206+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/summary.json new file mode 100644 index 00000000..8ce1dba7 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/first-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T154637726025+0900", + "revision": "148ae4c04dd1301094cdb0c67fa1086293f217bf", + "scope": "search", + "startedAt": "2026-10-18T15:46:37.727+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 1 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 2 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 3 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "710f80b15be84b1c810005d494cc5c8ecd79a67a3d6300c8ba885f1540ef7474", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:47:06.206+09:00", + "elapsedSeconds": 28.481 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/events.jsonl new file mode 100644 index 00000000..c724f7ad --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/events.jsonl @@ -0,0 +1,49 @@ +{"timestamp": "2026-10-18T15:47:07.362+09:00", "message": "[실행] 20261018T154707361229+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:47:07.463+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:47:07.479+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:47:07.494+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:47:07.512+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:47:07.528+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:47:07.542+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:47:07.554+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:47:07.565+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:47:07.576+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:47:07.590+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:47:07.601+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:47:07.613+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:47:07.626+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:47:07.640+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:47:07.654+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:47:07.669+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:47:07.856+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.2초)"} +{"timestamp": "2026-10-18T15:47:08.053+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:08.053+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:08.053+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:08.231+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:08.231+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:08.245+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:08.397+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:47:08.397+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:47:08.397+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:47:08.411+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:47:08.428+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:47:08.440+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:47:08.451+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:47:08.506+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:47:08.524+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:47:08.536+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:47:08.546+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:47:08.564+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:47:08.576+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:47:08.587+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:47:08.597+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:47:08.607+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:47:08.620+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[문서 ID 재사용] PASS · 15/15"} +{"timestamp": "2026-10-18T15:47:08.632+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/summary.json new file mode 100644 index 00000000..773ed133 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/replay-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T154707361229+0900", + "revision": "148ae4c04dd1301094cdb0c67fa1086293f217bf", + "scope": "search", + "startedAt": "2026-10-18T15:47:07.362+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "PASS", + "passed": 15, + "expected": 15 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 4 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 5 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 6 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "710f80b15be84b1c810005d494cc5c8ecd79a67a3d6300c8ba885f1540ef7474", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:47:08.632+09:00", + "elapsedSeconds": 1.272 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/backend.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/backend.log new file mode 100644 index 00000000..81744066 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/backend.log @@ -0,0 +1,289 @@ +2026-10-18T15:45:12+09:00 Downloading <설정된 서버> +2026-10-18T15:45:14+09:00 .............10%.............20%.............30%.............40%.............50%.............60%..............70%.............80%.............90%.............100% +2026-10-18T15:45:15+09:00 +2026-10-18T15:45:15+09:00 Welcome to Gradle 8.14.5! +2026-10-18T15:45:15+09:00 +2026-10-18T15:45:15+09:00 Here are the highlights of this release: +2026-10-18T15:45:15+09:00 - Java 24 support +2026-10-18T15:45:15+09:00 - GraalVM Native Image toolchain selection +2026-10-18T15:45:15+09:00 - Enhancements to test reporting +2026-10-18T15:45:15+09:00 - Build Authoring improvements +2026-10-18T15:45:15+09:00 +2026-10-18T15:45:15+09:00 For more details see <설정된 서버> +2026-10-18T15:45:15+09:00 +2026-10-18T15:45:15+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. +2026-10-18T15:45:16+09:00 Daemon will be stopped at the end of the build +2026-10-18T15:46:24+09:00 > Task :compileJava +2026-10-18T15:46:24+09:00 > Task :processResources +2026-10-18T15:46:24+09:00 > Task :classes +2026-10-18T15:46:24+09:00 > Task :resolveMainClassName +2026-10-18T15:46:26+09:00 +2026-10-18T15:46:26+09:00 > Task :bootRun +2026-10-18T15:46:26+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:46:26+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:46:26+09:00 +2026-10-18T15:46:26+09:00 . ____ _ __ _ _ +2026-10-18T15:46:26+09:00 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +2026-10-18T15:46:26+09:00 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ +2026-10-18T15:46:26+09:00 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) +2026-10-18T15:46:26+09:00 ' |____| .__|_| |_|_| |_\__, | / / / / +2026-10-18T15:46:26+09:00 =========|_|==============|___/=/_/_/_/ +2026-10-18T15:46:26+09:00 +2026-10-18T15:46:26+09:00 :: Spring Boot :: (v3.5.16) +2026-10-18T15:46:26+09:00 +2026-10-18T15:46:26+09:00 2026-10-18T06:46:25.329Z INFO 9946 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Starting DocgridApplication using Java 17.0.20.1 with PID 9946 (<작업공간>/backend/build/classes/java/main started by runner in <작업공간>) +2026-10-18T15:46:26+09:00 2026-10-18T06:46:25.331Z INFO 9946 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : The following 1 profile is active: "local" +2026-10-18T15:46:26+09:00 2026-10-18T06:46:25.356Z INFO 9946 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-10-18T15:46:26+09:00 2026-10-18T06:46:25.356Z INFO 9946 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.088Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.089Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.192Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 98 ms. Found 31 JPA repository interfaces. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.199Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.199Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.214Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionDocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.214Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentChunkRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentVersionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.FileObjectRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingJobRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingModelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.215Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.CollectionPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.DocumentPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.UserDocumentAccessCacheRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.RagResponseRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.ResponseCitationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.216Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchConversationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchQueryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchResultRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.VectorSearchRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncAdminActionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncConsistencyIssueRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncEventDeliveryAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.217Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncOutboxEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncReconciliationRunRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.DepartmentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.McpAccessTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.RoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.EmbeddingJobAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.218Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.IndexingEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.219Z INFO 9946 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.WorkerNodeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.219Z INFO 9946 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.475Z WARN 9946 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.476Z WARN 9946 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.480Z WARN 9946 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.482Z WARN 9946 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.774Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.783Z INFO 9946 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.784Z INFO 9946 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.814Z INFO 9946 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:46:26+09:00 2026-10-18T06:46:26.815Z INFO 9946 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1458 ms +2026-10-18T15:46:26+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:46:27+09:00 2026-10-18T06:46:26.998Z INFO 9946 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Starting... +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.184Z INFO 9946 --- [docgrid] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : docgrid-local-db-pool - Added connection org.postgresql.jdbc.PgConnection@26d752a1 +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.185Z INFO 9946 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Start completed. +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.202Z INFO 9946 --- [docgrid] [ restartedMain] org.flywaydb.core.FlywayExecutor : Database: jdbc:postgresql://127.0.0.1:55432/app?currentSchema=public&sslmode=disable (PostgreSQL 17.8) +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.239Z INFO 9946 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.242Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.026s) +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.249Z INFO 9946 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.286Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.289Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - init schema" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.300Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "2 - create departments" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.308Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "3 - create users" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.315Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "4 - create file objects" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.323Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "5 - create documents" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.330Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "6 - create document versions" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.339Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "7 - create collections" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.345Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "8 - create collection documents" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.352Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "9 - create roles" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.357Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "10 - create user roles" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.363Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "11 - create collection permissions" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.372Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "12 - create document permissions" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.380Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "13 - create user document access cache" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.384Z WARN 9946 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : DB: identifier "uk_user_document_access_cache_user_id_document_id_source_type_source_id" will be truncated to "uk_user_document_access_cache_user_id_document_id_source_type_s" (SQL State: 42622 - Error Code: 0) +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.389Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "14 - create embedding models" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.396Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "15 - create document chunks" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.402Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "16 - create embeddings" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.409Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "17 - create worker nodes" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.415Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "18 - create embedding jobs" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.421Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "19 - create embedding job attempts" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.426Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "20 - create indexing events" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.433Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "21 - create search queries" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.440Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "22 - create search results" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.446Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "23 - create rag responses" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.453Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "24 - create response citations" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.459Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "25 - create failover events" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.466Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "26 - create mcp access tokens" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.472Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "27 - add embedding model constraints" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.477Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "28 - seed roles departments admin" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.481Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "29 - add file object deduplication constraint" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.485Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "30 - add document version upload metadata" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.491Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "31 - add worker instance id" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.495Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "32 - convert vector columns to pgvector" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.502Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "33 - add embedding job claim token" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.505Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "34 - add claim token to embedding job attempts" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.508Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "35 - add embedding job next retry at" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.512Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "36 - create sync outbox events" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.518Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "37 - create sync consistency issues" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.526Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "38 - create sync admin actions" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.531Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "39 - create sync event delivery attempts" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.537Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "40 - alter rag responses answer text nullable" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.540Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "41 - create search conversations" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.543Z INFO 9946 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : +--------+ +2026-10-18T15:46:27+09:00 | setval | +2026-10-18T15:46:27+09:00 +--------+ +2026-10-18T15:46:27+09:00 | 1 | +2026-10-18T15:46:27+09:00 +--------+ +2026-10-18T15:46:27+09:00 +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.547Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "42 - create collection closure" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.551Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "43 - add rag responses claimed at" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.554Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "44 - create ha probe writes" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.558Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "45 - create ha probe idempotent writes" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.561Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "46 - enable pg trgm chunk text index" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.569Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "47 - create initial upload requests" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.573Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "48 - track initial upload candidates" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.578Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "49 - create version upload requests" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.582Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "50 - track version upload candidates" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.588Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "51 - add rag response claim lease" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.592Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "52 - create permission revocation requests" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.596Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed bge m3 embedding model" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.602Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed test fixtures" +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.617Z INFO 9946 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Successfully applied 54 migrations to schema "public", now at version v52 (execution time 00:00.126s) +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.673Z INFO 9946 --- [docgrid] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.703Z INFO 9946 --- [docgrid] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.53.Final +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.718Z INFO 9946 --- [docgrid] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.846Z INFO 9946 --- [docgrid] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-10-18T15:46:27+09:00 2026-10-18T06:46:27.882Z INFO 9946 --- [docgrid] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: +2026-10-18T15:46:27+09:00 Database JDBC URL [Connecting through datasource 'HikariDataSource (docgrid-local-db-pool)'] +2026-10-18T15:46:27+09:00 Database driver: undefined/unknown +2026-10-18T15:46:27+09:00 Database version: 17.8 +2026-10-18T15:46:27+09:00 Autocommit mode: undefined/unknown +2026-10-18T15:46:27+09:00 Isolation level: undefined/unknown +2026-10-18T15:46:27+09:00 Minimum pool size: undefined/unknown +2026-10-18T15:46:27+09:00 Maximum pool size: undefined/unknown +2026-10-18T15:46:28+09:00 2026-10-18T06:46:28.555Z INFO 9946 --- [docgrid] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-10-18T15:46:28+09:00 2026-10-18T06:46:28.579Z INFO 9946 --- [docgrid] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-10-18T15:46:28+09:00 2026-10-18T06:46:28.742Z INFO 9946 --- [docgrid] [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-10-18T15:46:30+09:00 2026-10-18T06:46:30.699Z WARN 9946 --- [docgrid] [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : +2026-10-18T15:46:30+09:00 +2026-10-18T15:46:30+09:00 Using generated security password: d3777193-8357-404d-9e44-55c2c02329e7 +2026-10-18T15:46:30+09:00 +2026-10-18T15:46:30+09:00 This generated password is for development use only. Your security configuration must be updated before running your application in production. +2026-10-18T15:46:30+09:00 +2026-10-18T15:46:30+09:00 2026-10-18T06:46:30.702Z INFO 9946 --- [docgrid] [ restartedMain] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.078Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.079Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Registered tools: 3 +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.079Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.079Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.080Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.080Z INFO 9946 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.268Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.306Z INFO 9946 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting... +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.307Z INFO 9946 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@6bad9d00]] +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.307Z INFO 9946 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started. +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.315Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.385Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.385Z INFO 9946 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.386Z INFO 9946 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.399Z INFO 9946 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.399Z INFO 9946 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 81 ms +2026-10-18T15:46:31+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.407Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoints beneath base path '/actuator' +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.427Z INFO 9946 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.439Z INFO 9946 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Started DocgridApplication in 6.436 seconds (process running for 6.675) +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.597Z INFO 9946 --- [docgrid] [ restartedMain] c.o.d.d.w.l.WorkerLifecycleManager : 인덱싱 Worker를 등록했습니다. workerId=1, workerName=indexing-worker, instanceId=6ea23b46-e468-40d3-a66f-87d21ab99198 +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.744Z INFO 9946 --- [docgrid] [nio-8081-exec-1] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServletRegistration' +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.745Z INFO 9946 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServletRegistration' +2026-10-18T15:46:31+09:00 2026-10-18T06:46:31.745Z INFO 9946 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-10-18T15:46:35+09:00 2026-10-18T06:46:35.350Z INFO 9946 --- [docgrid] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-10-18T15:46:35+09:00 2026-10-18T06:46:35.351Z INFO 9946 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-10-18T15:46:35+09:00 2026-10-18T06:46:35.352Z INFO 9946 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-10-18T15:46:37+09:00 2026-10-18T06:46:37.790Z WARN 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.g.e.GlobalExceptionHandler : [DocGridException] POST /auth/login | code=USER-004 | message=이메일 또는 비밀번호가 올바르지 않습니다. +2026-10-18T15:46:37+09:00 2026-10-18T06:46:37.795Z WARN 9946 --- [docgrid] [nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.opensource.docgrid.global.exception.DocGridException: 이메일 또는 비밀번호가 올바르지 않습니다.] +2026-10-18T15:46:46+09:00 2026-10-18T06:46:46.488Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=1, attemptId=2, initialStatus=UPLOADED +2026-10-18T15:46:46+09:00 2026-10-18T06:46:46.488Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=2, attemptId=1, initialStatus=UPLOADED +2026-10-18T15:46:49+09:00 2026-10-18T06:46:49.054Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=2, attemptId=1, documentId=4, versionId=4, chunkCount=1, embeddingCount=1, durationMs=2525 +2026-10-18T15:46:49+09:00 2026-10-18T06:46:49.062Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=2, attemptId=1 +2026-10-18T15:46:49+09:00 2026-10-18T06:46:49.497Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=3, attemptId=3, initialStatus=UPLOADED +2026-10-18T15:46:50+09:00 2026-10-18T06:46:50.511Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=1, attemptId=2, documentId=3, versionId=3, chunkCount=1, embeddingCount=1, durationMs=4011 +2026-10-18T15:46:50+09:00 2026-10-18T06:46:50.517Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=1, attemptId=2 +2026-10-18T15:46:51+09:00 2026-10-18T06:46:51.508Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=4, attemptId=4, initialStatus=UPLOADED +2026-10-18T15:46:51+09:00 2026-10-18T06:46:51.599Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=3, attemptId=3, documentId=5, versionId=5, chunkCount=1, embeddingCount=1, durationMs=2102 +2026-10-18T15:46:51+09:00 2026-10-18T06:46:51.602Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=3, attemptId=3 +2026-10-18T15:46:52+09:00 2026-10-18T06:46:52.517Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=5, attemptId=5, initialStatus=UPLOADED +2026-10-18T15:46:53+09:00 2026-10-18T06:46:53.000Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=4, attemptId=4, documentId=6, versionId=6, chunkCount=1, embeddingCount=1, durationMs=1489 +2026-10-18T15:46:53+09:00 2026-10-18T06:46:53.003Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=4, attemptId=4 +2026-10-18T15:46:53+09:00 2026-10-18T06:46:53.541Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=6, attemptId=6, initialStatus=UPLOADED +2026-10-18T15:46:54+09:00 2026-10-18T06:46:54.031Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=5, attemptId=5, documentId=7, versionId=7, chunkCount=1, embeddingCount=1, durationMs=1505 +2026-10-18T15:46:54+09:00 2026-10-18T06:46:54.036Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=5, attemptId=5 +2026-10-18T15:46:54+09:00 2026-10-18T06:46:54.540Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=7, attemptId=7, initialStatus=UPLOADED +2026-10-18T15:46:56+09:00 2026-10-18T06:46:56.408Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=6, attemptId=6, documentId=8, versionId=8, chunkCount=6, embeddingCount=6, durationMs=2863 +2026-10-18T15:46:56+09:00 2026-10-18T06:46:56.410Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=6, attemptId=6 +2026-10-18T15:46:56+09:00 2026-10-18T06:46:56.550Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=8, attemptId=8, initialStatus=UPLOADED +2026-10-18T15:46:57+09:00 2026-10-18T06:46:56.970Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=7, attemptId=7, documentId=9, versionId=9, chunkCount=7, embeddingCount=7, durationMs=2422 +2026-10-18T15:46:57+09:00 2026-10-18T06:46:56.974Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=7, attemptId=7 +2026-10-18T15:46:57+09:00 2026-10-18T06:46:57.555Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=9, attemptId=9, initialStatus=UPLOADED +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.194Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=8, attemptId=8, documentId=10, versionId=10, chunkCount=7, embeddingCount=7, durationMs=2643 +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.198Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=8, attemptId=8 +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.528Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=9, attemptId=9, documentId=11, versionId=11, chunkCount=6, embeddingCount=6, durationMs=1970 +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.530Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=9, attemptId=9 +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.555Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=10, attemptId=10, initialStatus=UPLOADED +2026-10-18T15:46:59+09:00 2026-10-18T06:46:59.557Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=11, attemptId=11, initialStatus=UPLOADED +2026-10-18T15:47:01+09:00 2026-10-18T06:47:01.351Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=11, attemptId=11, documentId=13, versionId=13, chunkCount=1, embeddingCount=1, durationMs=1784 +2026-10-18T15:47:01+09:00 2026-10-18T06:47:01.356Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=11, attemptId=11 +2026-10-18T15:47:01+09:00 2026-10-18T06:47:01.446Z INFO 9946 --- [docgrid] [MessageBroker-2] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:47:01+09:00 2026-10-18T06:47:01.562Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=12, attemptId=12, initialStatus=UPLOADED +2026-10-18T15:47:02+09:00 2026-10-18T06:47:02.003Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=10, attemptId=10, documentId=12, versionId=12, chunkCount=6, embeddingCount=6, durationMs=2442 +2026-10-18T15:47:02+09:00 2026-10-18T06:47:02.005Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=10, attemptId=10 +2026-10-18T15:47:02+09:00 2026-10-18T06:47:02.572Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=13, attemptId=13, initialStatus=UPLOADED +2026-10-18T15:47:03+09:00 2026-10-18T06:47:03.067Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=12, attemptId=12, documentId=14, versionId=14, chunkCount=1, embeddingCount=1, durationMs=1501 +2026-10-18T15:47:03+09:00 2026-10-18T06:47:03.069Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=12, attemptId=12 +2026-10-18T15:47:03+09:00 2026-10-18T06:47:03.577Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=14, attemptId=14, initialStatus=UPLOADED +2026-10-18T15:47:03+09:00 2026-10-18T06:47:03.753Z INFO 9946 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=13, attemptId=13, documentId=15, versionId=15, chunkCount=1, embeddingCount=1, durationMs=1177 +2026-10-18T15:47:03+09:00 2026-10-18T06:47:03.756Z INFO 9946 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=13, attemptId=13 +2026-10-18T15:47:04+09:00 2026-10-18T06:47:04.496Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=14, attemptId=14, documentId=16, versionId=16, chunkCount=1, embeddingCount=1, durationMs=918 +2026-10-18T15:47:04+09:00 2026-10-18T06:47:04.498Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=14, attemptId=14 +2026-10-18T15:47:04+09:00 2026-10-18T06:47:04.576Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=15, attemptId=15, initialStatus=UPLOADED +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.185Z INFO 9946 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=15, attemptId=15, documentId=17, versionId=17, chunkCount=1, embeddingCount=1, durationMs=607 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.187Z INFO 9946 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=15, attemptId=15 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.640Z INFO 9946 --- [docgrid] [nio-8080-exec-2] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.643Z INFO 9946 --- [docgrid] [nio-8080-exec-2] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.649Z INFO 9946 --- [docgrid] [nio-8080-exec-2] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=1 results=3 latencyMs=209 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.652Z INFO 9946 --- [docgrid] [nio-8080-exec-2] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=1 responseId=1 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.827Z INFO 9946 --- [docgrid] [nio-8080-exec-4] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.829Z INFO 9946 --- [docgrid] [nio-8080-exec-4] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.833Z INFO 9946 --- [docgrid] [nio-8080-exec-4] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=2 results=3 latencyMs=158 +2026-10-18T15:47:05+09:00 2026-10-18T06:47:05.835Z INFO 9946 --- [docgrid] [nio-8080-exec-4] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=2 responseId=2 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.009Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.011Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.014Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=3 results=3 latencyMs=139 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.015Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=3 responseId=3 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.656Z ERROR 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.655Z ERROR 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.663Z WARN 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=2 errorCode=RAG-001 +2026-10-18T15:47:06+09:00 2026-10-18T06:47:06.663Z WARN 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=1 errorCode=RAG-001 +2026-10-18T15:47:07+09:00 2026-10-18T06:47:07.658Z ERROR 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:07+09:00 2026-10-18T06:47:07.662Z WARN 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=3 errorCode=RAG-001 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.044Z INFO 9946 --- [docgrid] [nio-8080-exec-3] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.046Z INFO 9946 --- [docgrid] [nio-8080-exec-3] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.049Z INFO 9946 --- [docgrid] [nio-8080-exec-3] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=4 results=3 latencyMs=180 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.050Z INFO 9946 --- [docgrid] [nio-8080-exec-3] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=4 responseId=4 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.221Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.223Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=1 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.227Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=5 results=3 latencyMs=159 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.228Z INFO 9946 --- [docgrid] [nio-8080-exec-5] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=5 responseId=5 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.388Z INFO 9946 --- [docgrid] [nio-8080-exec-7] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.390Z INFO 9946 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.393Z INFO 9946 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=6 results=3 latencyMs=136 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.394Z INFO 9946 --- [docgrid] [nio-8080-exec-7] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=6 responseId=6 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.663Z ERROR 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.665Z ERROR 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.666Z WARN 9946 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=4 errorCode=RAG-001 +2026-10-18T15:47:08+09:00 2026-10-18T06:47:08.667Z WARN 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=5 errorCode=RAG-001 +2026-10-18T15:47:09+09:00 2026-10-18T06:47:09.666Z ERROR 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:47:09+09:00 2026-10-18T06:47:09.668Z WARN 9946 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=6 errorCode=RAG-001 +2026-10-18T15:47:31+09:00 2026-10-18T06:47:31.284Z INFO 9946 --- [docgrid] [MessageBroker-3] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 12, completed tasks = 417] +2026-10-18T15:47:31+09:00 2026-10-18T06:47:31.449Z INFO 9946 --- [docgrid] [MessageBroker-1] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/events.jsonl new file mode 100644 index 00000000..c4d4d5f6 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/events.jsonl @@ -0,0 +1,5 @@ +{"timestamp": "2026-10-18T15:43:17+09:00", "message": "[시작] 로컬 시연 세션 0b33fe3a31414ff28fc8f089dbf5c65c · 범위 search"} +{"timestamp": "2026-10-18T15:46:36+09:00", "message": "[준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요."} +{"timestamp": "2026-10-18T15:47:06+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/bd6f8ca5087b4906bfc2ce5fa89da55b/summary.json"} +{"timestamp": "2026-10-18T15:47:08+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/f57bbd0a0643491c89e2e7366b4e8fdb/summary.json"} +{"timestamp": "2026-10-18T15:47:58+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/frontend.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/frontend.log new file mode 100644 index 00000000..8d6335c5 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/frontend.log @@ -0,0 +1,214 @@ +2026-10-18T15:46:32+09:00 +2026-10-18T15:46:32+09:00 > <이메일 생략> dev +2026-10-18T15:46:32+09:00 > WRANGLER_LOG_PATH=.wrangler/wrangler.log vinext dev --hostname 127.0.0.1 +2026-10-18T15:46:32+09:00 +2026-10-18T15:46:32+09:00 +2026-10-18T15:46:32+09:00 vinext dev (Vite 8.0.13) +2026-10-18T15:46:32+09:00 +2026-10-18T15:46:33+09:00 Using secrets defined in .env.local +2026-10-18T15:46:34+09:00 ➜ Local: <설정된 서버> +2026-10-18T15:46:34+09:00 ➜ Debug: <설정된 서버> +2026-10-18T15:46:35+09:00 GET /api/backend/departments 200 in 251ms +2026-10-18T15:46:36+09:00 GET /login 200 in 998ms (compile: 1792305992.1s, render: 952ms) +2026-10-18T15:46:36+09:00 GET /api/backend/departments 200 in 14ms +2026-10-18T15:46:37+09:00 GET /login 200 in 26ms (compile: 1792305992.0s, render: 17ms) +2026-10-18T15:46:37+09:00 POST /api/backend/auth/login 401 in 43ms +2026-10-18T15:46:37+09:00 POST /api/backend/auth/signup 201 in 95ms +2026-10-18T15:46:38+09:00 POST /api/backend/auth/login 200 in 122ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 460ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 32ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 33ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 40ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 32ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 31ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 28ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 31ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 31ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 29ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 27ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 50ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 31ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 30ms +2026-10-18T15:46:38+09:00 POST /api/backend/api/documents 201 in 25ms +2026-10-18T15:46:38+09:00 GET /api/backend/api/documents/3/status 200 in 30ms +2026-10-18T15:46:38+09:00 GET /api/backend/api/documents/4/status 200 in 19ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/5/status 200 in 14ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/6/status 200 in 15ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/7/status 200 in 14ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/8/status 200 in 11ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/9/status 200 in 12ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/10/status 200 in 12ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/11/status 200 in 13ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/12/status 200 in 14ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/13/status 200 in 17ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/14/status 200 in 13ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/15/status 200 in 13ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/16/status 200 in 15ms +2026-10-18T15:46:39+09:00 GET /api/backend/api/documents/17/status 200 in 15ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/3/status 200 in 21ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/4/status 200 in 17ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/5/status 200 in 15ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/6/status 200 in 15ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/7/status 200 in 14ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/8/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/9/status 200 in 13ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/10/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/11/status 200 in 13ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/12/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/13/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/14/status 200 in 11ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/15/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/16/status 200 in 12ms +2026-10-18T15:46:42+09:00 GET /api/backend/api/documents/17/status 200 in 14ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/3/status 200 in 16ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/4/status 200 in 13ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/5/status 200 in 16ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/6/status 200 in 17ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/7/status 200 in 18ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/8/status 200 in 16ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/9/status 200 in 19ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/10/status 200 in 16ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/11/status 200 in 12ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/12/status 200 in 12ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/13/status 200 in 11ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/14/status 200 in 11ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/15/status 200 in 12ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/16/status 200 in 11ms +2026-10-18T15:46:45+09:00 GET /api/backend/api/documents/17/status 200 in 11ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/3/status 200 in 36ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/4/status 200 in 27ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/5/status 200 in 23ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/6/status 200 in 21ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/7/status 200 in 25ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/8/status 200 in 18ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/9/status 200 in 29ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/10/status 200 in 33ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/11/status 200 in 24ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/12/status 200 in 22ms +2026-10-18T15:46:48+09:00 GET /api/backend/api/documents/13/status 200 in 41ms +2026-10-18T15:46:49+09:00 GET /api/backend/api/documents/14/status 200 in 52ms +2026-10-18T15:46:49+09:00 GET /api/backend/api/documents/15/status 200 in 23ms +2026-10-18T15:46:49+09:00 GET /api/backend/api/documents/16/status 200 in 22ms +2026-10-18T15:46:49+09:00 GET /api/backend/api/documents/17/status 200 in 27ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/3/status 200 in 26ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/4/status 200 in 27ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/5/status 200 in 20ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/6/status 200 in 17ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/7/status 200 in 18ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/8/status 200 in 21ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/9/status 200 in 28ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/10/status 200 in 33ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/11/status 200 in 26ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/12/status 200 in 20ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/13/status 200 in 23ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/14/status 200 in 27ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/15/status 200 in 23ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/16/status 200 in 28ms +2026-10-18T15:46:52+09:00 GET /api/backend/api/documents/17/status 200 in 25ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/6/status 200 in 19ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/7/status 200 in 21ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/8/status 200 in 19ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/9/status 200 in 22ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/10/status 200 in 43ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/11/status 200 in 37ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/12/status 200 in 23ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/13/status 200 in 16ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/14/status 200 in 16ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/15/status 200 in 18ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/16/status 200 in 16ms +2026-10-18T15:46:55+09:00 GET /api/backend/api/documents/17/status 200 in 16ms +2026-10-18T15:46:58+09:00 GET /api/backend/api/documents/8/status 200 in 29ms +2026-10-18T15:46:58+09:00 GET /api/backend/api/documents/9/status 200 in 21ms +2026-10-18T15:46:58+09:00 GET /api/backend/api/documents/10/status 200 in 21ms +2026-10-18T15:46:58+09:00 GET /api/backend/api/documents/11/status 200 in 16ms +2026-10-18T15:46:58+09:00 GET /api/backend/api/documents/12/status 200 in 24ms +2026-10-18T15:46:59+09:00 GET /api/backend/api/documents/13/status 200 in 32ms +2026-10-18T15:46:59+09:00 GET /api/backend/api/documents/14/status 200 in 34ms +2026-10-18T15:46:59+09:00 GET /api/backend/api/documents/15/status 200 in 21ms +2026-10-18T15:46:59+09:00 GET /api/backend/api/documents/16/status 200 in 21ms +2026-10-18T15:46:59+09:00 GET /api/backend/api/documents/17/status 200 in 18ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/10/status 200 in 18ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/11/status 200 in 19ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/12/status 200 in 20ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/13/status 200 in 16ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/14/status 200 in 22ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/15/status 200 in 35ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/16/status 200 in 58ms +2026-10-18T15:47:02+09:00 GET /api/backend/api/documents/17/status 200 in 32ms +2026-10-18T15:47:05+09:00 GET /api/backend/api/documents/14/status 200 in 15ms +2026-10-18T15:47:05+09:00 GET /api/backend/api/documents/15/status 200 in 12ms +2026-10-18T15:47:05+09:00 GET /api/backend/api/documents/16/status 200 in 9ms +2026-10-18T15:47:05+09:00 GET /api/backend/api/documents/17/status 200 in 8ms +2026-10-18T15:47:05+09:00 POST /api/backend/search 200 in 241ms +2026-10-18T15:47:05+09:00 POST /api/backend/search 200 in 177ms +2026-10-18T15:47:05+09:00 GET /api/backend/api/documents/8/content 200 in 20ms +2026-10-18T15:47:06+09:00 POST /api/backend/search 200 in 157ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/3/file 200 in 15ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/4/file 200 in 10ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/5/file 200 in 10ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/6/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/7/file 200 in 10ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/8/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/9/file 200 in 12ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/10/file 200 in 12ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/11/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/12/file 200 in 9ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/13/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/14/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/15/file 200 in 10ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/16/file 200 in 11ms +2026-10-18T15:47:06+09:00 GET /api/backend/api/documents/17/file 200 in 10ms +2026-10-18T15:47:06+09:00 GET /api/backend/departments 200 in 12ms +2026-10-18T15:47:06+09:00 GET /login 200 in 21ms (compile: 1792305992.0s, render: 15ms) +2026-10-18T15:47:07+09:00 POST /api/backend/auth/login 200 in 72ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 15ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 15ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 17ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 14ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 13ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 11ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 11ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 10ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 13ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 11ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 11ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 12ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 12ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 13ms +2026-10-18T15:47:07+09:00 POST /api/backend/api/documents 201 in 14ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/3/status 200 in 17ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/4/status 200 in 11ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/5/status 200 in 13ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/6/status 200 in 9ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/7/status 200 in 14ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/8/status 200 in 9ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/9/status 200 in 8ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/10/status 200 in 8ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/11/status 200 in 8ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/12/status 200 in 9ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/13/status 200 in 11ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/14/status 200 in 10ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/15/status 200 in 10ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/16/status 200 in 14ms +2026-10-18T15:47:07+09:00 GET /api/backend/api/documents/17/status 200 in 10ms +2026-10-18T15:47:08+09:00 POST /api/backend/search 200 in 195ms +2026-10-18T15:47:08+09:00 POST /api/backend/search 200 in 178ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/8/content 200 in 12ms +2026-10-18T15:47:08+09:00 POST /api/backend/search 200 in 152ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/3/file 200 in 12ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/4/file 200 in 14ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/5/file 200 in 10ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/6/file 200 in 10ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/7/file 200 in 51ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/8/file 200 in 15ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/9/file 200 in 10ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/10/file 200 in 9ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/11/file 200 in 16ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/12/file 200 in 9ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/13/file 200 in 9ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/14/file 200 in 8ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/15/file 200 in 9ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/16/file 200 in 11ms +2026-10-18T15:47:08+09:00 GET /api/backend/api/documents/17/file 200 in 11ms +2026-10-18T15:47:10+09:00 GET /login?returnTo=%2Fsearch 200 in 40ms (compile: 1792305992.0s, render: 27ms) +2026-10-18T15:47:56+09:00 ➜ Tunnel closed diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/install.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/install.log new file mode 100644 index 00000000..653dd81e --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/install.log @@ -0,0 +1,17 @@ +2026-10-18T15:43:19+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:43:19+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 added 502 packages, and audited 503 packages in 12s +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 156 packages are looking for funding +2026-10-18T15:43:29+09:00 run `npm fund` for details +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 30 vulnerabilities (1 low, 6 moderate, 23 high) +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 To address issues that do not require attention, run: +2026-10-18T15:43:29+09:00 npm audit fix +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 To address all issues (including breaking changes), run: +2026-10-18T15:43:29+09:00 npm audit fix --force +2026-10-18T15:43:29+09:00 +2026-10-18T15:43:29+09:00 Run `npm audit` for details. diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/services.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/services.log new file mode 100644 index 00000000..0a32ae02 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/services.log @@ -0,0 +1,595 @@ +2026-10-18T15:43:30+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:43:30+09:00 postgres Pulling +2026-10-18T15:43:30+09:00 valkey Pulling +2026-10-18T15:43:31+09:00 4831516dd0cb Pulling fs layer +2026-10-18T15:43:31+09:00 9f4a0348ad2e Pulling fs layer +2026-10-18T15:43:31+09:00 6b6aac9d7476 Pulling fs layer +2026-10-18T15:43:31+09:00 d8a310896f84 Pulling fs layer +2026-10-18T15:43:31+09:00 99bb4ce30ad3 Pulling fs layer +2026-10-18T15:43:31+09:00 31b6f2223c4b Pulling fs layer +2026-10-18T15:43:31+09:00 9da35c01411f Pulling fs layer +2026-10-18T15:43:31+09:00 a6809e067bc1 Pulling fs layer +2026-10-18T15:43:31+09:00 10643155f463 Pulling fs layer +2026-10-18T15:43:31+09:00 a7ef49b2a615 Pulling fs layer +2026-10-18T15:43:31+09:00 29d37472e7c3 Pulling fs layer +2026-10-18T15:43:31+09:00 4d2363af1825 Pulling fs layer +2026-10-18T15:43:31+09:00 4a14fbbe260a Pulling fs layer +2026-10-18T15:43:31+09:00 8cced4a98c7e Pulling fs layer +2026-10-18T15:43:31+09:00 4909bfb5f5ed Pulling fs layer +2026-10-18T15:43:31+09:00 3e1ddef0ec36 Pulling fs layer +2026-10-18T15:43:31+09:00 9da35c01411f Waiting +2026-10-18T15:43:31+09:00 a6809e067bc1 Waiting +2026-10-18T15:43:31+09:00 4d2363af1825 Waiting +2026-10-18T15:43:31+09:00 10643155f463 Waiting +2026-10-18T15:43:31+09:00 4a14fbbe260a Waiting +2026-10-18T15:43:31+09:00 a7ef49b2a615 Waiting +2026-10-18T15:43:31+09:00 8cced4a98c7e Waiting +2026-10-18T15:43:31+09:00 29d37472e7c3 Waiting +2026-10-18T15:43:31+09:00 4909bfb5f5ed Waiting +2026-10-18T15:43:31+09:00 3e1ddef0ec36 Waiting +2026-10-18T15:43:31+09:00 d8a310896f84 Waiting +2026-10-18T15:43:31+09:00 31b6f2223c4b Waiting +2026-10-18T15:43:31+09:00 9f4a0348ad2e Downloading [==================================================>] 1.169kB/1.169kB +2026-10-18T15:43:31+09:00 9f4a0348ad2e Verifying Checksum +2026-10-18T15:43:31+09:00 9f4a0348ad2e Download complete +2026-10-18T15:43:31+09:00 6b6aac9d7476 Downloading [> ] 49.15kB/4.534MB +2026-10-18T15:43:31+09:00 4831516dd0cb Downloading [> ] 294.3kB/28.23MB +2026-10-18T15:43:32+09:00 6b6aac9d7476 Downloading [=================================> ] 3.018MB/4.534MB +2026-10-18T15:43:32+09:00 6b6aac9d7476 Verifying Checksum +2026-10-18T15:43:32+09:00 6b6aac9d7476 Download complete +2026-10-18T15:43:32+09:00 d8a310896f84 Downloading [> ] 16.38kB/1.25MB +2026-10-18T15:43:32+09:00 4831516dd0cb Downloading [===> ] 1.769MB/28.23MB +2026-10-18T15:43:32+09:00 e2de96513ba9 Already exists +2026-10-18T15:43:32+09:00 d8a310896f84 Verifying Checksum +2026-10-18T15:43:32+09:00 d8a310896f84 Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Verifying Checksum +2026-10-18T15:43:32+09:00 4831516dd0cb Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [> ] 294.9kB/28.23MB +2026-10-18T15:43:32+09:00 99bb4ce30ad3 Downloading [> ] 96.73kB/8.066MB +2026-10-18T15:43:32+09:00 31b6f2223c4b Downloading [> ] 16.38kB/1.196MB +2026-10-18T15:43:32+09:00 d78be5cc1e53 Pulling fs layer +2026-10-18T15:43:32+09:00 fe2c7735354a Pulling fs layer +2026-10-18T15:43:32+09:00 95121e5a56c0 Pulling fs layer +2026-10-18T15:43:32+09:00 d9f591c70342 Pulling fs layer +2026-10-18T15:43:32+09:00 4f4fb700ef54 Pulling fs layer +2026-10-18T15:43:32+09:00 4ed485d78f72 Pulling fs layer +2026-10-18T15:43:32+09:00 d9f591c70342 Waiting +2026-10-18T15:43:32+09:00 4f4fb700ef54 Waiting +2026-10-18T15:43:32+09:00 4ed485d78f72 Waiting +2026-10-18T15:43:32+09:00 d78be5cc1e53 Waiting +2026-10-18T15:43:32+09:00 fe2c7735354a Waiting +2026-10-18T15:43:32+09:00 95121e5a56c0 Waiting +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [======> ] 3.834MB/28.23MB +2026-10-18T15:43:32+09:00 9da35c01411f Downloading [==================================================>] 116B/116B +2026-10-18T15:43:32+09:00 9da35c01411f Verifying Checksum +2026-10-18T15:43:32+09:00 9da35c01411f Download complete +2026-10-18T15:43:32+09:00 99bb4ce30ad3 Downloading [=====> ] 961.9kB/8.066MB +2026-10-18T15:43:32+09:00 31b6f2223c4b Verifying Checksum +2026-10-18T15:43:32+09:00 31b6f2223c4b Download complete +2026-10-18T15:43:32+09:00 99bb4ce30ad3 Verifying Checksum +2026-10-18T15:43:32+09:00 99bb4ce30ad3 Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [==================> ] 10.32MB/28.23MB +2026-10-18T15:43:32+09:00 a6809e067bc1 Downloading [==================================================>] 3.141kB/3.141kB +2026-10-18T15:43:32+09:00 a6809e067bc1 Verifying Checksum +2026-10-18T15:43:32+09:00 a6809e067bc1 Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [====================================> ] 20.35MB/28.23MB +2026-10-18T15:43:32+09:00 a7ef49b2a615 Downloading [==================================================>] 10.3kB/10.3kB +2026-10-18T15:43:32+09:00 a7ef49b2a615 Verifying Checksum +2026-10-18T15:43:32+09:00 a7ef49b2a615 Download complete +2026-10-18T15:43:32+09:00 10643155f463 Downloading [> ] 537.8kB/112.8MB +2026-10-18T15:43:32+09:00 29d37472e7c3 Downloading [==================================================>] 128B/128B +2026-10-18T15:43:32+09:00 29d37472e7c3 Verifying Checksum +2026-10-18T15:43:32+09:00 29d37472e7c3 Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [==========================================> ] 23.89MB/28.23MB +2026-10-18T15:43:32+09:00 10643155f463 Downloading [=====> ] 12.27MB/112.8MB +2026-10-18T15:43:32+09:00 4d2363af1825 Downloading [==================================================>] 168B/168B +2026-10-18T15:43:32+09:00 4d2363af1825 Verifying Checksum +2026-10-18T15:43:32+09:00 4d2363af1825 Download complete +2026-10-18T15:43:32+09:00 4a14fbbe260a Downloading [==================================================>] 5.84kB/5.84kB +2026-10-18T15:43:32+09:00 4a14fbbe260a Verifying Checksum +2026-10-18T15:43:32+09:00 4a14fbbe260a Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [================================================> ] 27.13MB/28.23MB +2026-10-18T15:43:32+09:00 10643155f463 Downloading [===========================> ] 62.12MB/112.8MB +2026-10-18T15:43:32+09:00 8cced4a98c7e Downloading [==================================================>] 186B/186B +2026-10-18T15:43:32+09:00 8cced4a98c7e Verifying Checksum +2026-10-18T15:43:32+09:00 8cced4a98c7e Download complete +2026-10-18T15:43:32+09:00 4909bfb5f5ed Downloading [======> ] 16.38kB/123.1kB +2026-10-18T15:43:32+09:00 4909bfb5f5ed Downloading [==================================================>] 123.1kB/123.1kB +2026-10-18T15:43:32+09:00 4909bfb5f5ed Download complete +2026-10-18T15:43:32+09:00 10643155f463 Verifying Checksum +2026-10-18T15:43:32+09:00 10643155f463 Download complete +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [================================================> ] 27.43MB/28.23MB +2026-10-18T15:43:32+09:00 4831516dd0cb Extracting [==================================================>] 28.23MB/28.23MB +2026-10-18T15:43:32+09:00 3e1ddef0ec36 Downloading [> ] 16.38kB/1.451MB +2026-10-18T15:43:32+09:00 d78be5cc1e53 Downloading [==================================================>] 951B/951B +2026-10-18T15:43:32+09:00 d78be5cc1e53 Verifying Checksum +2026-10-18T15:43:32+09:00 d78be5cc1e53 Download complete +2026-10-18T15:43:32+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:43:32+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:43:33+09:00 fe2c7735354a Downloading [=> ] 16.38kB/666.5kB +2026-10-18T15:43:33+09:00 3e1ddef0ec36 Verifying Checksum +2026-10-18T15:43:33+09:00 3e1ddef0ec36 Download complete +2026-10-18T15:43:33+09:00 fe2c7735354a Download complete +2026-10-18T15:43:33+09:00 4831516dd0cb Pull complete +2026-10-18T15:43:33+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:43:33+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:43:33+09:00 d9f591c70342 Downloading [==================================================>] 140B/140B +2026-10-18T15:43:33+09:00 d9f591c70342 Verifying Checksum +2026-10-18T15:43:33+09:00 d9f591c70342 Download complete +2026-10-18T15:43:33+09:00 95121e5a56c0 Downloading [> ] 149kB/14.29MB +2026-10-18T15:43:33+09:00 4f4fb700ef54 Downloading [==================================================>] 32B/32B +2026-10-18T15:43:33+09:00 4f4fb700ef54 Download complete +2026-10-18T15:43:33+09:00 4ed485d78f72 Downloading [==================================================>] 668B/668B +2026-10-18T15:43:33+09:00 4ed485d78f72 Verifying Checksum +2026-10-18T15:43:33+09:00 4ed485d78f72 Download complete +2026-10-18T15:43:33+09:00 95121e5a56c0 Downloading [======> ] 1.795MB/14.29MB +2026-10-18T15:43:33+09:00 95121e5a56c0 Downloading [==================> ] 5.381MB/14.29MB +2026-10-18T15:43:33+09:00 95121e5a56c0 Downloading [=======================================> ] 11.31MB/14.29MB +2026-10-18T15:43:33+09:00 95121e5a56c0 Verifying Checksum +2026-10-18T15:43:33+09:00 95121e5a56c0 Download complete +2026-10-18T15:43:38+09:00 9f4a0348ad2e Pull complete +2026-10-18T15:43:38+09:00 d78be5cc1e53 Pull complete +2026-10-18T15:43:38+09:00 6b6aac9d7476 Extracting [> ] 65.54kB/4.534MB +2026-10-18T15:43:38+09:00 fe2c7735354a Extracting [==> ] 32.77kB/666.5kB +2026-10-18T15:43:38+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:43:38+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:43:38+09:00 6b6aac9d7476 Extracting [==================================================>] 4.534MB/4.534MB +2026-10-18T15:43:38+09:00 fe2c7735354a Pull complete +2026-10-18T15:43:38+09:00 6b6aac9d7476 Pull complete +2026-10-18T15:43:38+09:00 d8a310896f84 Extracting [=> ] 32.77kB/1.25MB +2026-10-18T15:43:38+09:00 95121e5a56c0 Extracting [> ] 163.8kB/14.29MB +2026-10-18T15:43:38+09:00 d8a310896f84 Extracting [==================================================>] 1.25MB/1.25MB +2026-10-18T15:43:38+09:00 d8a310896f84 Pull complete +2026-10-18T15:43:38+09:00 99bb4ce30ad3 Extracting [> ] 98.3kB/8.066MB +2026-10-18T15:43:38+09:00 95121e5a56c0 Extracting [========================> ] 7.045MB/14.29MB +2026-10-18T15:43:38+09:00 99bb4ce30ad3 Extracting [==========================> ] 4.227MB/8.066MB +2026-10-18T15:43:38+09:00 95121e5a56c0 Extracting [==================================================>] 14.29MB/14.29MB +2026-10-18T15:43:38+09:00 99bb4ce30ad3 Extracting [================================================> ] 7.766MB/8.066MB +2026-10-18T15:43:38+09:00 99bb4ce30ad3 Extracting [==================================================>] 8.066MB/8.066MB +2026-10-18T15:43:38+09:00 95121e5a56c0 Pull complete +2026-10-18T15:43:38+09:00 99bb4ce30ad3 Pull complete +2026-10-18T15:43:38+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:43:38+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:43:38+09:00 31b6f2223c4b Extracting [=> ] 32.77kB/1.196MB +2026-10-18T15:43:38+09:00 d9f591c70342 Pull complete +2026-10-18T15:43:38+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:43:38+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:43:38+09:00 4f4fb700ef54 Pull complete +2026-10-18T15:43:38+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:43:38+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:43:38+09:00 4ed485d78f72 Pull complete +2026-10-18T15:43:38+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:43:38+09:00 valkey Pulled +2026-10-18T15:43:38+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:43:38+09:00 31b6f2223c4b Pull complete +2026-10-18T15:43:38+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:43:38+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:43:38+09:00 9da35c01411f Pull complete +2026-10-18T15:43:38+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:43:38+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:43:38+09:00 a6809e067bc1 Pull complete +2026-10-18T15:43:38+09:00 10643155f463 Extracting [> ] 557.1kB/112.8MB +2026-10-18T15:43:38+09:00 10643155f463 Extracting [===> ] 8.913MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [======> ] 15.6MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [==========> ] 24.51MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [================> ] 36.77MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [=====================> ] 49.58MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [==========================> ] 59.05MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [===============================> ] 71.86MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [=====================================> ] 84.67MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [==========================================> ] 95.81MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [============================================> ] 100.8MB/112.8MB +2026-10-18T15:43:39+09:00 10643155f463 Extracting [==============================================> ] 105.8MB/112.8MB +2026-10-18T15:43:40+09:00 10643155f463 Extracting [================================================> ] 109.2MB/112.8MB +2026-10-18T15:43:40+09:00 10643155f463 Extracting [=================================================> ] 111.4MB/112.8MB +2026-10-18T15:43:40+09:00 10643155f463 Extracting [==================================================>] 112.8MB/112.8MB +2026-10-18T15:43:42+09:00 10643155f463 Pull complete +2026-10-18T15:43:42+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:43:42+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:43:42+09:00 a7ef49b2a615 Pull complete +2026-10-18T15:43:42+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:43:42+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:43:42+09:00 29d37472e7c3 Pull complete +2026-10-18T15:43:42+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:43:42+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:43:42+09:00 4d2363af1825 Pull complete +2026-10-18T15:43:42+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:43:42+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:43:42+09:00 4a14fbbe260a Pull complete +2026-10-18T15:43:42+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:43:42+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:43:42+09:00 8cced4a98c7e Pull complete +2026-10-18T15:43:42+09:00 4909bfb5f5ed Extracting [=============> ] 32.77kB/123.1kB +2026-10-18T15:43:42+09:00 4909bfb5f5ed Extracting [==================================================>] 123.1kB/123.1kB +2026-10-18T15:43:42+09:00 4909bfb5f5ed Pull complete +2026-10-18T15:43:42+09:00 3e1ddef0ec36 Extracting [=> ] 32.77kB/1.451MB +2026-10-18T15:43:42+09:00 3e1ddef0ec36 Extracting [==================================================>] 1.451MB/1.451MB +2026-10-18T15:43:42+09:00 3e1ddef0ec36 Pull complete +2026-10-18T15:43:42+09:00 postgres Pulled +2026-10-18T15:43:42+09:00 #1 [internal] load local bake definitions +2026-10-18T15:43:42+09:00 #1 reading from stdin 449B done +2026-10-18T15:43:42+09:00 #1 DONE 0.0s +2026-10-18T15:43:42+09:00 +2026-10-18T15:43:42+09:00 #2 [internal] load build definition from Dockerfile +2026-10-18T15:43:42+09:00 #2 transferring dockerfile: 500B 0.0s done +2026-10-18T15:43:42+09:00 #2 DONE 0.0s +2026-10-18T15:43:42+09:00 +2026-10-18T15:43:42+09:00 #3 [auth] library/python:pull token for registry-1.docker.io +2026-10-18T15:43:42+09:00 #3 DONE 0.0s +2026-10-18T15:43:42+09:00 +2026-10-18T15:43:42+09:00 #4 [internal] load metadata for docker.io/library/python:3.11-slim +2026-10-18T15:43:43+09:00 #4 DONE 0.8s +2026-10-18T15:43:43+09:00 +2026-10-18T15:43:43+09:00 #5 [internal] load .dockerignore +2026-10-18T15:43:43+09:00 #5 transferring context: 2B done +2026-10-18T15:43:43+09:00 #5 DONE 0.0s +2026-10-18T15:43:43+09:00 +2026-10-18T15:43:43+09:00 #6 [internal] load build context +2026-10-18T15:43:43+09:00 #6 transferring context: 16.83kB done +2026-10-18T15:43:43+09:00 #6 DONE 0.0s +2026-10-18T15:43:43+09:00 +2026-10-18T15:43:43+09:00 #7 [1/8] FROM docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce +2026-10-18T15:43:43+09:00 #7 resolve docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce done +2026-10-18T15:43:43+09:00 #7 sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce 10.37kB / 10.37kB done +2026-10-18T15:43:43+09:00 #7 sha256:e529028263dbe6910a2d96f7d2b8f5266385e917fd45d286ef166977c094a51e 1.75kB / 1.75kB done +2026-10-18T15:43:43+09:00 #7 sha256:541096ae9b05d3b850341b78790e2ed31e94d5aa0ea086933c6ff0c09ffa2e63 5.49kB / 5.49kB done +2026-10-18T15:43:43+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0B / 29.84MB 0.1s +2026-10-18T15:43:43+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0B / 1.29MB 0.1s +2026-10-18T15:43:43+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0B / 14.46MB 0.1s +2026-10-18T15:43:43+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 1.29MB / 1.29MB 0.1s done +2026-10-18T15:43:43+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.2s +2026-10-18T15:43:43+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 250B / 250B 0.2s done +2026-10-18T15:43:43+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 16.78MB / 29.84MB 0.3s +2026-10-18T15:43:43+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.3s done +2026-10-18T15:43:43+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.5s +2026-10-18T15:43:44+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.5s done +2026-10-18T15:43:44+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.1s +2026-10-18T15:43:44+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.6s done +2026-10-18T15:43:44+09:00 #7 extracting sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0.1s done +2026-10-18T15:43:45+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 +2026-10-18T15:43:45+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0.4s done +2026-10-18T15:43:45+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d +2026-10-18T15:43:46+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d done +2026-10-18T15:43:46+09:00 #7 DONE 2.6s +2026-10-18T15:43:46+09:00 +2026-10-18T15:43:46+09:00 #8 [2/8] WORKDIR /app +2026-10-18T15:43:46+09:00 #8 DONE 0.0s +2026-10-18T15:43:46+09:00 +2026-10-18T15:43:46+09:00 #9 [3/8] COPY requirements.txt . +2026-10-18T15:43:46+09:00 #9 DONE 0.0s +2026-10-18T15:43:46+09:00 +2026-10-18T15:43:46+09:00 #10 [4/8] RUN pip install --no-cache-dir -r requirements.txt +2026-10-18T15:43:47+09:00 #10 1.192 Looking in indexes: <설정된 서버> <설정된 서버> +2026-10-18T15:43:47+09:00 #10 1.193 Ignoring torch: markers 'sys_platform != "linux" or platform_machine != "x86_64"' don't match your environment +2026-10-18T15:43:47+09:00 #10 1.611 Collecting fastapi==0.115.0 (from -r requirements.txt (line 4)) +2026-10-18T15:43:47+09:00 #10 1.657 Downloading fastapi-0.115.0-py3-none-any.whl.metadata (27 kB) +2026-10-18T15:43:47+09:00 #10 1.738 Collecting uvicorn==0.30.6 (from -r requirements.txt (line 5)) +2026-10-18T15:43:47+09:00 #10 1.750 Downloading uvicorn-0.30.6-py3-none-any.whl.metadata (6.6 kB) +2026-10-18T15:43:47+09:00 #10 1.828 Collecting FlagEmbedding==1.2.11 (from -r requirements.txt (line 6)) +2026-10-18T15:43:47+09:00 #10 1.844 Downloading FlagEmbedding-1.2.11.tar.gz (147 kB) +2026-10-18T15:43:47+09:00 #10 1.864 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.1/147.1 kB 8.3 MB/s eta 0:00:00 +2026-10-18T15:43:47+09:00 #10 1.879 Preparing metadata (setup.py): started +2026-10-18T15:43:48+09:00 #10 2.104 Preparing metadata (setup.py): finished with status 'done' +2026-10-18T15:43:48+09:00 #10 2.267 Collecting torch==2.4.1+cpu (from -r requirements.txt (line 9)) +2026-10-18T15:43:48+09:00 #10 2.427 Downloading <설정된 서버> (194.9 MB) +2026-10-18T15:43:49+09:00 #10 3.252 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.9/194.9 MB 266.8 MB/s eta 0:00:00 +2026-10-18T15:43:49+09:00 #10 3.596 Collecting transformers==4.44.2 (from -r requirements.txt (line 11)) +2026-10-18T15:43:49+09:00 #10 3.607 Downloading transformers-4.44.2-py3-none-any.whl.metadata (43 kB) +2026-10-18T15:43:49+09:00 #10 3.609 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 kB 418.3 MB/s eta 0:00:00 +2026-10-18T15:43:49+09:00 #10 3.722 Collecting peft==0.12.0 (from -r requirements.txt (line 12)) +2026-10-18T15:43:49+09:00 #10 3.733 Downloading peft-0.12.0-py3-none-any.whl.metadata (13 kB) +2026-10-18T15:43:50+09:00 #10 4.149 Collecting numpy==1.26.4 (from -r requirements.txt (line 13)) +2026-10-18T15:43:50+09:00 #10 4.159 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB) +2026-10-18T15:43:50+09:00 #10 4.161 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 495.2 MB/s eta 0:00:00 +2026-10-18T15:43:50+09:00 #10 4.337 Collecting pyarrow==21.0.0 (from -r requirements.txt (line 15)) +2026-10-18T15:43:50+09:00 #10 4.348 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.3 kB) +2026-10-18T15:43:50+09:00 #10 4.446 Collecting starlette<0.39.0,>=0.37.2 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:50+09:00 #10 4.456 Downloading starlette-0.38.6-py3-none-any.whl.metadata (6.0 kB) +2026-10-18T15:43:50+09:00 #10 4.606 Collecting pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:50+09:00 #10 4.617 Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB) +2026-10-18T15:43:50+09:00 #10 4.621 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.0/133.0 kB 50.7 MB/s eta 0:00:00 +2026-10-18T15:43:50+09:00 #10 4.674 Collecting typing-extensions>=4.8.0 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:50+09:00 #10 4.684 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) +2026-10-18T15:43:50+09:00 #10 4.778 Collecting click>=7.0 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:43:50+09:00 #10 4.788 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:43:50+09:00 #10 4.906 Collecting h11>=0.8 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:43:50+09:00 #10 4.916 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) +2026-10-18T15:43:50+09:00 #10 5.005 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:50+09:00 #10 5.015 Downloading datasets-5.1.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:43:51+09:00 #10 5.090 Collecting accelerate>=0.20.1 (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:51+09:00 #10 5.100 Downloading accelerate-1.15.0-py3-none-any.whl.metadata (19 kB) +2026-10-18T15:43:51+09:00 #10 5.186 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:51+09:00 #10 5.196 Downloading sentence_transformers-6.1.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:43:51+09:00 #10 5.264 Collecting filelock (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:51+09:00 #10 5.275 Downloading filelock-4.2.1-py3-none-any.whl.metadata (2.0 kB) +2026-10-18T15:43:51+09:00 #10 5.406 Collecting sympy (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:51+09:00 #10 5.417 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB) +2026-10-18T15:43:51+09:00 #10 5.474 Collecting networkx (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:51+09:00 #10 5.484 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB) +2026-10-18T15:43:51+09:00 #10 5.525 Collecting jinja2 (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:51+09:00 #10 5.539 Downloading <설정된 서버> (2.9 kB) +2026-10-18T15:43:51+09:00 #10 5.599 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:51+09:00 #10 5.609 Downloading fsspec-2026.9.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:43:51+09:00 #10 5.851 Collecting huggingface-hub<1.0,>=0.23.2 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:51+09:00 #10 5.862 Downloading huggingface_hub-0.36.2-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:43:51+09:00 #10 5.872 Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/site-packages (from transformers==4.44.2->-r requirements.txt (line 11)) (26.3) +2026-10-18T15:43:51+09:00 #10 5.992 Collecting pyyaml>=5.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:52+09:00 #10 6.003 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) +2026-10-18T15:43:52+09:00 #10 6.417 Collecting regex!=2019.12.17 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:52+09:00 #10 6.427 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) +2026-10-18T15:43:52+09:00 #10 6.429 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 kB 398.3 MB/s eta 0:00:00 +2026-10-18T15:43:52+09:00 #10 6.478 Collecting requests (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:52+09:00 #10 6.489 Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) +2026-10-18T15:43:52+09:00 #10 6.617 Collecting safetensors>=0.4.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:52+09:00 #10 6.627 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) +2026-10-18T15:43:52+09:00 #10 6.897 Collecting tokenizers<0.20,>=0.19 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:53+09:00 #10 6.907 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB) +2026-10-18T15:43:53+09:00 #10 6.967 Collecting tqdm>=4.27 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:53+09:00 #10 6.977 Downloading tqdm-4.70.1-py3-none-any.whl.metadata (57 kB) +2026-10-18T15:43:53+09:00 #10 6.978 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB 398.2 MB/s eta 0:00:00 +2026-10-18T15:43:53+09:00 #10 7.095 Collecting psutil (from peft==0.12.0->-r requirements.txt (line 12)) +2026-10-18T15:43:53+09:00 #10 7.106 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) +2026-10-18T15:43:53+09:00 #10 7.298 Collecting hf-xet<2.0.0,>=1.1.3 (from huggingface-hub<1.0,>=0.23.2->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:53+09:00 #10 7.308 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB) +2026-10-18T15:43:53+09:00 #10 7.473 Collecting annotated-types>=0.6.0 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:53+09:00 #10 7.484 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:43:54+09:00 #10 8.112 Collecting pydantic-core==2.50.1 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:54+09:00 #10 8.125 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB) +2026-10-18T15:43:54+09:00 #10 8.224 Collecting typing-inspection>=0.4.4 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:54+09:00 #10 8.239 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:43:54+09:00 #10 8.331 Collecting anyio<5,>=3.4.0 (from starlette<0.39.0,>=0.37.2->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:43:54+09:00 #10 8.344 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) +2026-10-18T15:43:54+09:00 #10 8.422 INFO: pip is looking at multiple versions of datasets to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:43:54+09:00 #10 8.425 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:54+09:00 #10 8.439 Downloading datasets-5.0.1-py3-none-any.whl.metadata (23 kB) +2026-10-18T15:43:54+09:00 #10 8.597 Collecting dill<0.4.2,>=0.3.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:54+09:00 #10 8.610 Downloading dill-0.4.1-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:43:54+09:00 #10 8.742 Collecting pandas (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:54+09:00 #10 8.755 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB) +2026-10-18T15:43:54+09:00 #10 8.757 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 511.3 MB/s eta 0:00:00 +2026-10-18T15:43:54+09:00 #10 8.844 Collecting httpx<1.0.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:54+09:00 #10 8.857 Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:43:55+09:00 #10 9.178 Collecting xxhash (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:55+09:00 #10 9.191 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (17 kB) +2026-10-18T15:43:55+09:00 #10 9.305 Collecting multiprocess<0.70.20 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:55+09:00 #10 9.318 Downloading multiprocess-0.70.19-py311-none-any.whl.metadata (7.5 kB) +2026-10-18T15:43:55+09:00 #10 9.332 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:55+09:00 #10 9.344 Downloading fsspec-2026.6.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:43:55+09:00 #10 9.506 Collecting charset_normalizer<4,>=2 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:55+09:00 #10 9.519 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (46 kB) +2026-10-18T15:43:55+09:00 #10 9.521 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.4/46.4 kB 464.6 MB/s eta 0:00:00 +2026-10-18T15:43:55+09:00 #10 9.561 Collecting idna<4,>=2.5 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:55+09:00 #10 9.573 Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB) +2026-10-18T15:43:55+09:00 #10 9.624 Collecting urllib3<3,>=1.26 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:55+09:00 #10 9.637 Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB) +2026-10-18T15:43:55+09:00 #10 9.679 Collecting certifi>=2023.5.7 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:43:55+09:00 #10 9.692 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) +2026-10-18T15:43:55+09:00 #10 9.765 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:55+09:00 #10 9.777 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) +2026-10-18T15:43:55+09:00 #10 9.829 INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:43:55+09:00 #10 9.832 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:55+09:00 #10 9.846 Downloading sentence_transformers-6.0.1-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:43:55+09:00 #10 9.870 Downloading sentence_transformers-6.0.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:43:56+09:00 #10 9.896 Downloading sentence_transformers-5.7.0-py3-none-any.whl.metadata (18 kB) +2026-10-18T15:43:56+09:00 #10 10.05 Collecting scikit-learn>=0.22.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:56+09:00 #10 10.07 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.3 kB) +2026-10-18T15:43:56+09:00 #10 10.20 Collecting scipy>=1.0.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:56+09:00 #10 10.22 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) +2026-10-18T15:43:56+09:00 #10 10.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 415.4 MB/s eta 0:00:00 +2026-10-18T15:43:56+09:00 #10 10.28 Collecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:43:56+09:00 #10 10.30 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB) +2026-10-18T15:43:56+09:00 #10 10.91 Collecting aiohttp!=4.0.0a0,!=4.0.0a1 (from fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:56+09:00 #10 10.92 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.3 kB) +2026-10-18T15:43:56+09:00 #10 11.00 Collecting httpcore==1.* (from httpx<1.0.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:56+09:00 #10 11.02 Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB) +2026-10-18T15:43:57+09:00 #10 11.13 Collecting joblib>=1.4.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.14 Downloading joblib-1.6.0-py3-none-any.whl.metadata (6.5 kB) +2026-10-18T15:43:57+09:00 #10 11.23 Collecting narwhals>=2.0.1 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.24 Downloading narwhals-2.27.1-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:43:57+09:00 #10 11.31 Collecting threadpoolctl>=3.5.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.32 Downloading threadpoolctl-3.7.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:43:57+09:00 #10 11.47 Collecting python-dateutil>=2.8.2 (from pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.49 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) +2026-10-18T15:43:57+09:00 #10 11.57 Collecting aiohappyeyeballs>=2.5.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.58 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl.metadata (5.9 kB) +2026-10-18T15:43:57+09:00 #10 11.65 Collecting aiosignal>=1.4.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.66 Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB) +2026-10-18T15:43:57+09:00 #10 11.73 Collecting attrs>=17.3.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.75 Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB) +2026-10-18T15:43:57+09:00 #10 11.84 Collecting frozenlist>=1.1.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:57+09:00 #10 11.86 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (20 kB) +2026-10-18T15:43:58+09:00 #10 12.07 Collecting multidict<8.0,>=4.5 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:58+09:00 #10 12.08 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (6.2 kB) +2026-10-18T15:43:58+09:00 #10 12.41 Collecting propcache>=0.2.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:58+09:00 #10 12.43 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (25 kB) +2026-10-18T15:43:58+09:00 #10 12.69 Collecting yarl<2.0,>=1.25.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:58+09:00 #10 12.70 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (111 kB) +2026-10-18T15:43:58+09:00 #10 12.70 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.6/111.6 kB 87.7 MB/s eta 0:00:00 +2026-10-18T15:43:58+09:00 #10 12.83 Collecting cloudpickle>=3.0 (from joblib>=1.4.0->scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:58+09:00 #10 12.85 Downloading cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:43:58+09:00 #10 12.92 Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:43:58+09:00 #10 12.94 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) +2026-10-18T15:43:59+09:00 #10 13.01 Downloading fastapi-0.115.0-py3-none-any.whl (94 kB) +2026-10-18T15:43:59+09:00 #10 13.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.6/94.6 kB 517.6 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.03 Downloading uvicorn-0.30.6-py3-none-any.whl (62 kB) +2026-10-18T15:43:59+09:00 #10 13.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 495.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.04 Downloading transformers-4.44.2-py3-none-any.whl (9.5 MB) +2026-10-18T15:43:59+09:00 #10 13.14 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 102.8 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.15 Downloading peft-0.12.0-py3-none-any.whl (296 kB) +2026-10-18T15:43:59+09:00 #10 13.15 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 296.4/296.4 kB 437.6 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.17 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB) +2026-10-18T15:43:59+09:00 #10 13.21 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 456.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.23 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (42.8 MB) +2026-10-18T15:43:59+09:00 #10 13.33 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 469.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.35 Downloading accelerate-1.15.0-py3-none-any.whl (394 kB) +2026-10-18T15:43:59+09:00 #10 13.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.3/394.3 kB 675.1 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.36 Downloading click-8.5.0-py3-none-any.whl (125 kB) +2026-10-18T15:43:59+09:00 #10 13.36 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.3/125.3 kB 603.8 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.38 Downloading h11-0.16.0-py3-none-any.whl (37 kB) +2026-10-18T15:43:59+09:00 #10 13.39 Downloading huggingface_hub-0.36.2-py3-none-any.whl (566 kB) +2026-10-18T15:43:59+09:00 #10 13.39 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 566.4/566.4 kB 667.3 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.40 Downloading pydantic-2.14.1-py3-none-any.whl (488 kB) +2026-10-18T15:43:59+09:00 #10 13.41 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 488.1/488.1 kB 657.9 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.42 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB) +2026-10-18T15:43:59+09:00 #10 13.43 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 567.4 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.44 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) +2026-10-18T15:43:59+09:00 #10 13.44 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 502.6 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.46 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (804 kB) +2026-10-18T15:43:59+09:00 #10 13.46 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 805.0/805.0 kB 654.1 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.47 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (516 kB) +2026-10-18T15:43:59+09:00 #10 13.47 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.0/516.0 kB 641.6 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.49 Downloading starlette-0.38.6-py3-none-any.whl (71 kB) +2026-10-18T15:43:59+09:00 #10 13.49 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.5/71.5 kB 497.9 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.50 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB) +2026-10-18T15:43:59+09:00 #10 13.51 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 607.8 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.52 Downloading tqdm-4.70.1-py3-none-any.whl (80 kB) +2026-10-18T15:43:59+09:00 #10 13.52 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 559.7 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.54 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) +2026-10-18T15:43:59+09:00 #10 13.54 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.6/45.6 kB 398.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.55 Downloading datasets-5.0.1-py3-none-any.whl (559 kB) +2026-10-18T15:43:59+09:00 #10 13.55 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 559.1/559.1 kB 302.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.57 Downloading fsspec-2026.6.0-py3-none-any.whl (203 kB) +2026-10-18T15:43:59+09:00 #10 13.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 203.9/203.9 kB 616.4 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.58 Downloading requests-2.34.2-py3-none-any.whl (73 kB) +2026-10-18T15:43:59+09:00 #10 13.58 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 550.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.59 Downloading filelock-4.2.1-py3-none-any.whl (162 kB) +2026-10-18T15:43:59+09:00 #10 13.60 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 625.9 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.61 Downloading <설정된 서버> (134 kB) +2026-10-18T15:43:59+09:00 #10 13.61 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 550.3 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.62 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB) +2026-10-18T15:43:59+09:00 #10 13.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 482.3 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.64 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) +2026-10-18T15:43:59+09:00 #10 13.64 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.6/155.6 kB 596.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.66 Downloading sentence_transformers-5.7.0-py3-none-any.whl (611 kB) +2026-10-18T15:43:59+09:00 #10 13.66 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 611.3/611.3 kB 685.4 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.67 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB) +2026-10-18T15:43:59+09:00 #10 13.69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 487.8 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.70 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) +2026-10-18T15:43:59+09:00 #10 13.71 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) +2026-10-18T15:43:59+09:00 #10 13.71 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 599.0 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.73 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) +2026-10-18T15:43:59+09:00 #10 13.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.0/137.0 kB 559.9 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.74 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB) +2026-10-18T15:43:59+09:00 #10 13.74 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 270.0/270.0 kB 620.7 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.75 Downloading dill-0.4.1-py3-none-any.whl (120 kB) +2026-10-18T15:43:59+09:00 #10 13.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.0/120.0 kB 445.8 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.77 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.2 MB) +2026-10-18T15:43:59+09:00 #10 13.78 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 494.7 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.79 Downloading httpx-0.28.1-py3-none-any.whl (73 kB) +2026-10-18T15:43:59+09:00 #10 13.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.5/73.5 kB 468.4 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.81 Downloading httpcore-1.0.9-py3-none-any.whl (78 kB) +2026-10-18T15:43:59+09:00 #10 13.81 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.8/78.8 kB 553.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.82 Downloading idna-3.20-py3-none-any.whl (69 kB) +2026-10-18T15:43:59+09:00 #10 13.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.6/69.6 kB 549.2 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.83 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) +2026-10-18T15:43:59+09:00 #10 13.85 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB) +2026-10-18T15:43:59+09:00 #10 13.85 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 645.7 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.86 Downloading multiprocess-0.70.19-py311-none-any.whl (144 kB) +2026-10-18T15:43:59+09:00 #10 13.86 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.5/144.5 kB 639.0 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.87 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.3 MB) +2026-10-18T15:43:59+09:00 #10 13.89 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 589.3 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.90 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.3 MB) +2026-10-18T15:43:59+09:00 #10 13.97 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.3/35.3 MB 529.5 MB/s eta 0:00:00 +2026-10-18T15:43:59+09:00 #10 13.98 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) +2026-10-18T15:44:00+09:00 #10 13.99 Downloading urllib3-2.8.0-py3-none-any.whl (135 kB) +2026-10-18T15:44:00+09:00 #10 13.99 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.7/135.7 kB 628.2 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.01 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.1 MB) +2026-10-18T15:44:00+09:00 #10 14.04 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.1/11.1 MB 325.5 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.05 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (261 kB) +2026-10-18T15:44:00+09:00 #10 14.06 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 261.0/261.0 kB 487.5 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.07 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB) +2026-10-18T15:44:00+09:00 #10 14.07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 545.5 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.09 Downloading joblib-1.6.0-py3-none-any.whl (306 kB) +2026-10-18T15:44:00+09:00 #10 14.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 306.1/306.1 kB 553.9 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.10 Downloading narwhals-2.27.1-py3-none-any.whl (483 kB) +2026-10-18T15:44:00+09:00 #10 14.10 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 483.2/483.2 kB 635.7 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.11 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) +2026-10-18T15:44:00+09:00 #10 14.12 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 622.3 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.13 Downloading threadpoolctl-3.7.0-py3-none-any.whl (26 kB) +2026-10-18T15:44:00+09:00 #10 14.14 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl (15 kB) +2026-10-18T15:44:00+09:00 #10 14.15 Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB) +2026-10-18T15:44:00+09:00 #10 14.17 Downloading attrs-26.1.0-py3-none-any.whl (67 kB) +2026-10-18T15:44:00+09:00 #10 14.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.5/67.5 kB 507.7 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.18 Downloading cloudpickle-3.1.2-py3-none-any.whl (22 kB) +2026-10-18T15:44:00+09:00 #10 14.19 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (231 kB) +2026-10-18T15:44:00+09:00 #10 14.19 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.1/231.1 kB 568.6 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.21 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (480 kB) +2026-10-18T15:44:00+09:00 #10 14.21 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 480.4/480.4 kB 523.8 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.22 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (235 kB) +2026-10-18T15:44:00+09:00 #10 14.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.4/235.4 kB 665.1 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.24 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) +2026-10-18T15:44:00+09:00 #10 14.25 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (117 kB) +2026-10-18T15:44:00+09:00 #10 14.25 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.7/117.7 kB 591.6 MB/s eta 0:00:00 +2026-10-18T15:44:00+09:00 #10 14.40 Building wheels for collected packages: FlagEmbedding +2026-10-18T15:44:00+09:00 #10 14.41 Building wheel for FlagEmbedding (setup.py): started +2026-10-18T15:44:00+09:00 #10 14.58 Building wheel for FlagEmbedding (setup.py): finished with status 'done' +2026-10-18T15:44:00+09:00 #10 14.58 Created wheel for FlagEmbedding: filename=flagembedding-1.2.11-py3-none-any.whl size=171233 sha256=dce53ea7205580c3c110307106c516b2fe2395be9418c23665187f4362bbcef2 +2026-10-18T15:44:00+09:00 #10 14.58 Stored in directory: /tmp/pip-ephem-wheel-cache-59kqjpl4/wheels/cc/30/56/331f855b95583721e80ba4d5630f701387dcade9d050c88d9d +2026-10-18T15:44:00+09:00 #10 14.58 Successfully built FlagEmbedding +2026-10-18T15:44:01+09:00 #10 15.06 Installing collected packages: mpmath, xxhash, urllib3, typing-extensions, tqdm, threadpoolctl, sympy, six, safetensors, regex, pyyaml, pyarrow, psutil, propcache, numpy, networkx, narwhals, multidict, MarkupSafe, idna, hf-xet, h11, fsspec, frozenlist, filelock, dill, cloudpickle, click, charset_normalizer, certifi, attrs, annotated-types, aiohappyeyeballs, yarl, uvicorn, typing-inspection, scipy, requests, python-dateutil, pydantic-core, multiprocess, joblib, jinja2, httpcore, anyio, aiosignal, torch, starlette, scikit-learn, pydantic, pandas, huggingface-hub, httpx, aiohttp, tokenizers, fastapi, accelerate, transformers, datasets, sentence_transformers, peft, FlagEmbedding +2026-10-18T15:44:24+09:00 #10 38.85 Successfully installed FlagEmbedding-1.2.11 MarkupSafe-3.0.4 accelerate-1.15.0 aiohappyeyeballs-2.7.1 aiohttp-3.14.5 aiosignal-1.4.0 annotated-types-0.8.0 anyio-4.15.1 attrs-26.1.0 certifi-2026.7.22 charset_normalizer-3.5.2 click-8.5.0 cloudpickle-3.1.2 datasets-5.0.1 dill-0.4.1 fastapi-0.115.0 filelock-4.2.1 frozenlist-1.8.0 fsspec-2026.6.0 h11-0.16.0 hf-xet-1.7.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.36.2 idna-3.20 jinja2-3.1.6 joblib-1.6.0 mpmath-1.3.0 multidict-7.1.0 multiprocess-0.70.19 narwhals-2.27.1 networkx-3.6.1 numpy-1.26.4 pandas-3.0.6 peft-0.12.0 propcache-0.5.4 psutil-7.2.2 pyarrow-21.0.0 pydantic-2.14.1 pydantic-core-2.50.1 python-dateutil-2.9.0.post0 pyyaml-6.0.3 regex-2026.9.29 requests-2.34.2 safetensors-0.8.0 scikit-learn-1.9.1 scipy-1.17.1 sentence_transformers-5.7.0 six-1.17.0 starlette-0.38.6 sympy-1.14.0 threadpoolctl-3.7.0 tokenizers-0.19.1 torch-2.4.1+cpu tqdm-4.70.1 transformers-4.44.2 typing-extensions-4.16.0 typing-inspection-0.4.4 urllib3-2.8.0 uvicorn-0.30.6 xxhash-4.0.1 yarl-1.25.1 +2026-10-18T15:44:25+09:00 #10 38.85 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:44:25+09:00 #10 38.94 +2026-10-18T15:44:25+09:00 #10 38.94 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:44:25+09:00 #10 38.94 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:44:31+09:00 #10 DONE 45.1s +2026-10-18T15:44:31+09:00 +2026-10-18T15:44:31+09:00 #11 [5/8] COPY requirements-observability.txt . +2026-10-18T15:44:31+09:00 #11 DONE 0.0s +2026-10-18T15:44:31+09:00 +2026-10-18T15:44:31+09:00 #12 [6/8] RUN pip install --no-cache-dir -r requirements-observability.txt +2026-10-18T15:44:31+09:00 #12 0.384 Collecting prometheus-client==0.25.0 (from -r requirements-observability.txt (line 1)) +2026-10-18T15:44:31+09:00 #12 0.449 Downloading prometheus_client-0.25.0-py3-none-any.whl.metadata (2.1 kB) +2026-10-18T15:44:31+09:00 #12 0.465 Downloading prometheus_client-0.25.0-py3-none-any.whl (64 kB) +2026-10-18T15:44:31+09:00 #12 0.479 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.2/64.2 kB 4.7 MB/s eta 0:00:00 +2026-10-18T15:44:31+09:00 #12 0.894 Installing collected packages: prometheus-client +2026-10-18T15:44:32+09:00 #12 0.925 Successfully installed prometheus-client-0.25.0 +2026-10-18T15:44:32+09:00 #12 0.925 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:44:32+09:00 #12 1.004 +2026-10-18T15:44:32+09:00 #12 1.004 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:44:32+09:00 #12 1.004 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:44:32+09:00 #12 DONE 1.1s +2026-10-18T15:44:32+09:00 +2026-10-18T15:44:32+09:00 #13 [7/8] RUN python -c "from FlagEmbedding import BGEM3FlagModel" +2026-10-18T15:44:35+09:00 #13 DONE 3.1s +2026-10-18T15:44:35+09:00 +2026-10-18T15:44:35+09:00 #14 [8/8] COPY main.py . +2026-10-18T15:44:35+09:00 #14 DONE 0.0s +2026-10-18T15:44:35+09:00 +2026-10-18T15:44:35+09:00 #15 exporting to image +2026-10-18T15:44:35+09:00 #15 exporting layers +2026-10-18T15:44:40+09:00 #15 exporting layers 5.5s done +2026-10-18T15:44:40+09:00 #15 writing image sha256:70496446175c4f1eb6aa60ba7af823e4f70356eeab11e6d18e2ed0b021b75351 done +2026-10-18T15:44:40+09:00 #15 naming to docker.io/library/docgrid-embedding-server done +2026-10-18T15:44:40+09:00 #15 DONE 5.6s +2026-10-18T15:44:40+09:00 +2026-10-18T15:44:40+09:00 #16 resolving provenance for metadata file +2026-10-18T15:44:40+09:00 #16 DONE 0.0s +2026-10-18T15:44:40+09:00 embedding-server Built +2026-10-18T15:44:40+09:00 Network docgrid_docgrid-local Creating +2026-10-18T15:44:40+09:00 Network docgrid_docgrid-local Created +2026-10-18T15:44:40+09:00 Volume "docgrid_huggingface-cache" Creating +2026-10-18T15:44:40+09:00 Volume "docgrid_huggingface-cache" Created +2026-10-18T15:44:40+09:00 Volume "docgrid_valkey-data" Creating +2026-10-18T15:44:40+09:00 Volume "docgrid_valkey-data" Created +2026-10-18T15:44:40+09:00 Volume "docgrid_postgres17_data" Creating +2026-10-18T15:44:40+09:00 Volume "docgrid_postgres17_data" Created +2026-10-18T15:44:40+09:00 Container docgrid-valkey Creating +2026-10-18T15:44:40+09:00 Container docgrid-postgres17 Creating +2026-10-18T15:44:40+09:00 Container docgrid-embedding Creating +2026-10-18T15:44:40+09:00 Container docgrid-embedding Created +2026-10-18T15:44:40+09:00 Container docgrid-postgres17 Created +2026-10-18T15:44:40+09:00 Container docgrid-valkey Created +2026-10-18T15:44:40+09:00 Container docgrid-valkey Starting +2026-10-18T15:44:40+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:44:40+09:00 Container docgrid-embedding Starting +2026-10-18T15:44:41+09:00 Container docgrid-valkey Started +2026-10-18T15:44:41+09:00 Container docgrid-embedding Started +2026-10-18T15:44:41+09:00 Container docgrid-postgres17 Started +2026-10-18T15:44:44+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:44:44+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:45:10+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:45:10+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:45:10+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:45:10+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:45:10+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-0b06ffdd53a143428056bc1468713ab9.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-0b06ffdd53a143428056bc1468713ab9.log new file mode 100644 index 00000000..ba66e318 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-0b06ffdd53a143428056bc1468713ab9.log @@ -0,0 +1,56 @@ +2026-10-18T15:46:37+09:00 [실행] 20261018T154637726025+0900 · 범위 search +2026-10-18T15:46:37+09:00 [계정] 회원가입 완료 +2026-10-18T15:46:38+09:00 [계정] 로그인 완료 +2026-10-18T15:46:38+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:46:38+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:46:38+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:46:38+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:46:38+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:46:38+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:46:38+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:46:38+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:46:38+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:46:38+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:46:38+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:46:38+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:46:38+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:46:38+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:46:38+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:46:39+09:00 [인덱싱] INDEXED 0/15 · 처리 중 0 · 대기 15 · 실패 0 (0.2초) +2026-10-18T15:46:49+09:00 [인덱싱] INDEXED 0/15 · 처리 중 2 · 대기 13 · 실패 0 (10.2초) +2026-10-18T15:46:52+09:00 [인덱싱] INDEXED 3/15 · 처리 중 1 · 대기 11 · 실패 0 (13.6초) +2026-10-18T15:46:55+09:00 [인덱싱] INDEXED 5/15 · 처리 중 2 · 대기 8 · 실패 0 (16.9초) +2026-10-18T15:46:59+09:00 [인덱싱] INDEXED 7/15 · 처리 중 2 · 대기 6 · 실패 0 (20.2초) +2026-10-18T15:47:02+09:00 [인덱싱] INDEXED 11/15 · 처리 중 1 · 대기 3 · 실패 0 (23.4초) +2026-10-18T15:47:05+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (26.5초) +2026-10-18T15:47:05+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:05+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:05+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:05+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:05+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:05+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:06+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:06+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:06+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:06+09:00 [원본] 문서 3: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 4: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 5: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 6: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 7: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 8: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 9: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 10: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 11: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 12: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 13: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 14: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 15: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 16: PASS +2026-10-18T15:47:06+09:00 [원본] 문서 17: PASS +2026-10-18T15:47:06+09:00 [업로드] PASS · 15/15 +2026-10-18T15:47:06+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:47:06+09:00 [검색] PASS · 3/3 +2026-10-18T15:47:06+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:47:06+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:47:06+09:00 [문서 ID 재사용] NOT_RUN · 0/0 +2026-10-18T15:47:06+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-fd93b3d25ddc4936bf237fe2d4fa6e42.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-fd93b3d25ddc4936bf237fe2d4fa6e42.log new file mode 100644 index 00000000..569b6d24 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/runtime/0b33fe3a31414ff28fc8f089dbf5c65c/verify-fd93b3d25ddc4936bf237fe2d4fa6e42.log @@ -0,0 +1,49 @@ +2026-10-18T15:47:07+09:00 [실행] 20261018T154707361229+0900 · 범위 search +2026-10-18T15:47:07+09:00 [계정] 로그인 완료 +2026-10-18T15:47:07+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:47:07+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:47:07+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:47:07+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:47:07+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:47:07+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:47:07+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:47:07+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:47:07+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:47:07+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:47:07+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:47:07+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:47:07+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:47:07+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:47:07+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:47:07+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.2초) +2026-10-18T15:47:08+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:08+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:08+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:08+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:08+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:08+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:08+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:47:08+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:47:08+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:47:08+09:00 [원본] 문서 3: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 4: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 5: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 6: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 7: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 8: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 9: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 10: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 11: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 12: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 13: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 14: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 15: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 16: PASS +2026-10-18T15:47:08+09:00 [원본] 문서 17: PASS +2026-10-18T15:47:08+09:00 [업로드] PASS · 15/15 +2026-10-18T15:47:08+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:47:08+09:00 [검색] PASS · 3/3 +2026-10-18T15:47:08+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:47:08+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:47:08+09:00 [문서 ID 재사용] PASS · 15/15 +2026-10-18T15:47:08+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/summary.json new file mode 100644 index 00000000..c010dbd3 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/summary.json @@ -0,0 +1,117 @@ +{ + "runId": "39105008958-1", + "revision": "148ae4c04dd1301094cdb0c67fa1086293f217bf", + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": [ + { + "id": "preflight", + "purpose": "독립 실행기의 새 환경 확인", + "timestamp": "2026-10-18T15:43:13+09:00", + "verdict": "PASS", + "existingContainers": 0, + "existingImageCount": 6, + "existingVolumes": 0, + "environmentFilesInitiallyPresent": 0, + "workload": { + "documents": 15, + "searchQuestions": 3, + "browserSessions": 1 + } + }, + { + "id": "concurrent-start", + "purpose": "진행 중 start의 잠금으로 두 번째 start 거부", + "timestamp": "2026-10-18T15:43:17+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 0.114, + "log": "concurrent-start.log" + }, + { + "id": "cold-start", + "purpose": "모델·의존성 최초 준비를 포함한 전체 기동", + "timestamp": "2026-10-18T15:46:36+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 203.438, + "log": "cold-start.log" + }, + { + "id": "verify-first", + "purpose": "실제 모델 인덱싱·검색·프록시·원본 대조", + "timestamp": "2026-10-18T15:47:06+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 29.69, + "log": "verify-first.log" + }, + { + "id": "first-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:47:06+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "verify-replay", + "purpose": "같은 계정 재실행과 문서 ID 재사용", + "timestamp": "2026-10-18T15:47:08+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 2.475, + "log": "verify-replay.log" + }, + { + "id": "replay-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:47:08+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15, + "replay": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "browser", + "purpose": "실제 Chromium 로그인·질문 전송·원본 다운로드 해시", + "timestamp": "2026-10-18T15:47:55+09:00", + "verdict": "FAIL", + "exitCode": 1, + "expectedExitCode": 0, + "elapsedSeconds": 47.036, + "log": "browser.log" + }, + { + "id": "incomplete", + "purpose": "현재 회차의 완료 여부", + "timestamp": "2026-10-18T15:47:55+09:00", + "verdict": "FAIL", + "at": "browser", + "errorType": "RuntimeError" + }, + { + "id": "always-cleanup", + "purpose": "시험 중단·완료 후 소유 자원 종료", + "timestamp": "2026-10-18T15:47:58+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 2.818, + "log": "always-cleanup.log" + } + ] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-first.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-first.log new file mode 100644 index 00000000..fafd456c --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-first.log @@ -0,0 +1,10 @@ +실행 ID: 39105008958-1/verify-first +목적: 실제 모델 인덱싱·검색·프록시·원본 대조 +시작: 2026-10-18T15:46:36+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:47:06+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/bd6f8ca5087b4906bfc2ce5fa89da55b/summary.json +종료: 2026-10-18T15:47:06+09:00 +실제 종료 코드: 0 +소요 시간: 29.69초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-replay.log b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-replay.log new file mode 100644 index 00000000..2392f4c8 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105008958-1/verify-replay.log @@ -0,0 +1,10 @@ +실행 ID: 39105008958-1/verify-replay +목적: 같은 계정 재실행과 문서 ID 재사용 +시작: 2026-10-18T15:47:06+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:47:08+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/f57bbd0a0643491c89e2e7366b4e8fdb/summary.json +종료: 2026-10-18T15:47:08+09:00 +실제 종료 코드: 0 +소요 시간: 2.475초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/always-cleanup.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/always-cleanup.log new file mode 100644 index 00000000..11bd1210 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/always-cleanup.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/always-cleanup +목적: 시험 중단·완료 후 소유 자원 종료 +시작: 2026-10-18T15:57:30+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:57:30+09:00 [종료] 이미 종료된 세션입니다. +종료: 2026-10-18T15:57:30+09:00 +실제 종료 코드: 0 +소요 시간: 0.064초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser.log new file mode 100644 index 00000000..b9fce54a --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/browser +목적: 실제 Chromium 로그인·질문 전송·원본 다운로드 해시 +시작: 2026-10-18T15:56:30+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: node scripts/demo/browser_smoke.cjs <실행기 작업공간>/.demo/reproduction/39105569049-1/browser +2026-10-18T15:56:33+09:00 {"login":"PASS","search":"PASS","download":"PASS","downloadedBytes":52683} +종료: 2026-10-18T15:56:34+09:00 +실제 종료 코드: 0 +소요 시간: 3.782초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/search.png b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/search.png new file mode 100644 index 00000000..e1fa0150 Binary files /dev/null and b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/search.png differ diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/ssr-auth.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/ssr-auth.json new file mode 100644 index 00000000..46444f3c --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/ssr-auth.json @@ -0,0 +1,7 @@ +{ + "purpose": "hydration 이전 인증정보 URL 제출 방지", + "timestamp": "2026-10-18T06:56:31.669Z", + "postFallback": true, + "initiallyDisabled": true, + "verdict": "PASS" +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/summary.json new file mode 100644 index 00000000..f2f2979b --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/browser/summary.json @@ -0,0 +1,11 @@ +{ + "verdict": "PASS", + "timestamp": "2026-10-18T06:56:33.938Z", + "browser": "156.0.8078.4", + "login": "PASS", + "search": "PASS", + "download": "PASS", + "documentId": 3, + "bytes": 52683, + "sha256": "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304" +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/cold-start.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/cold-start.log new file mode 100644 index 00000000..ed070b75 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/cold-start.log @@ -0,0 +1,11 @@ +실행 ID: 39105569049-1/cold-start +목적: 모델·의존성 최초 준비를 포함한 전체 기동 +시작: 2026-10-18T15:52:46+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start --timeout 1200 +2026-10-18T15:52:48+09:00 [시작] 로컬 시연 세션 1bd07e5ccd714d77a817b67f1d272a0f · 범위 search +2026-10-18T15:56:02+09:00 [준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요. +종료: 2026-10-18T15:56:03+09:00 +실제 종료 코드: 0 +소요 시간: 196.632초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/concurrent-start.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/concurrent-start.log new file mode 100644 index 00000000..398166e6 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/concurrent-start.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/concurrent-start +목적: 진행 중 start의 잠금으로 두 번째 start 거부 +시작: 2026-10-18T15:52:48+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start +2026-10-18T15:52:48+09:00 [실패] 다른 시작·검증·종료 명령이 실행 중입니다. +종료: 2026-10-18T15:52:48+09:00 +실제 종료 코드: 1 +소요 시간: 0.114초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/events.jsonl new file mode 100644 index 00000000..5002214d --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/events.jsonl @@ -0,0 +1,56 @@ +{"timestamp": "2026-10-18T15:56:04.024+09:00", "message": "[실행] 20261018T155604022729+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:56:04.201+09:00", "message": "[계정] 회원가입 완료"} +{"timestamp": "2026-10-18T15:56:04.325+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:56:04.806+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:56:04.858+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:56:04.894+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:56:04.929+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:56:04.964+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:56:04.995+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:56:05.024+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:56:05.080+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:56:05.114+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:56:05.186+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:56:05.232+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:56:05.268+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:56:05.299+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:56:05.330+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:56:05.363+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:56:05.825+09:00", "message": "[인덱싱] INDEXED 0/15 · 처리 중 2 · 대기 13 · 실패 0 (0.5초)"} +{"timestamp": "2026-10-18T15:56:09.450+09:00", "message": "[인덱싱] INDEXED 1/15 · 처리 중 2 · 대기 12 · 실패 0 (4.1초)"} +{"timestamp": "2026-10-18T15:56:13.100+09:00", "message": "[인덱싱] INDEXED 4/15 · 처리 중 2 · 대기 9 · 실패 0 (7.7초)"} +{"timestamp": "2026-10-18T15:56:16.474+09:00", "message": "[인덱싱] INDEXED 7/15 · 처리 중 1 · 대기 7 · 실패 0 (11.1초)"} +{"timestamp": "2026-10-18T15:56:19.761+09:00", "message": "[인덱싱] INDEXED 9/15 · 처리 중 2 · 대기 4 · 실패 0 (14.4초)"} +{"timestamp": "2026-10-18T15:56:22.899+09:00", "message": "[인덱싱] INDEXED 13/15 · 처리 중 1 · 대기 1 · 실패 0 (17.5초)"} +{"timestamp": "2026-10-18T15:56:25.933+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (20.6초)"} +{"timestamp": "2026-10-18T15:56:26.231+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:26.231+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:26.231+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:26.444+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:26.444+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:26.465+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:26.641+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:26.641+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:26.641+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:26.667+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:56:26.684+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:56:26.703+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:56:26.721+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:56:26.739+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:56:26.758+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:56:26.774+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:56:26.789+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:56:26.804+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:56:26.821+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:56:26.834+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:56:26.850+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:56:26.867+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:56:26.882+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[문서 ID 재사용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:56:26.897+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/summary.json new file mode 100644 index 00000000..60ca5432 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/first-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T155604022729+0900", + "revision": "a62175ee3e4621c6411feb3af5f4ed3663802b6c", + "scope": "search", + "startedAt": "2026-10-18T15:56:04.024+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 1 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 2 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 3 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "208b7156c72415ab41097dabd67a3b01f0a660d0718d0976f6237eaeb2f6b003", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:56:26.897+09:00", + "elapsedSeconds": 22.875 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/interrupted-start.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/interrupted-start.log new file mode 100644 index 00000000..30657d02 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/interrupted-start.log @@ -0,0 +1,13 @@ +실행 ID: 39105569049-1/interrupted-start +목적: 실제 백엔드 기동 중 부모 SIGTERM 뒤 소유 자원 정리 +시작: 2026-10-18T15:56:46+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 130 +절차: ./scripts/demo.py start +2026-10-18T15:56:47+09:00 [시작] 로컬 시연 세션 ea791ff132274affb11ed6d134b127ba · 범위 search +2026-10-18T15:56:54+09:00 [기동 중단] 이번 실행이 시작한 자원을 정리합니다. +2026-10-18T15:56:57+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +2026-10-18T15:56:57+09:00 [중단] 실행을 취소했습니다. +종료: 2026-10-18T15:56:57+09:00 +실제 종료 코드: 130 +소요 시간: 10.906초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/missing-provider.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/missing-provider.log new file mode 100644 index 00000000..2c6629ec --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/missing-provider.log @@ -0,0 +1,13 @@ +실행 ID: 39105569049-1/missing-provider +목적: 잘못 지정된 임베딩 주소는 준비 실패로 판정 +시작: 2026-10-18T15:56:39+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 1 +절차: ./scripts/demo.py start --timeout 5 +2026-10-18T15:56:39+09:00 [시작] 로컬 시연 세션 2cac5af2e629447fb41c291abe0e8feb · 범위 search +2026-10-18T15:56:41+09:00 [기동 중단] 이번 실행이 시작한 자원을 정리합니다. +2026-10-18T15:56:46+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +2026-10-18T15:56:46+09:00 [실패] 하위 명령 실패: services (코드 1), 기록: .demo/launcher/sessions/2cac5af2e629447fb41c291abe0e8feb/services.log +종료: 2026-10-18T15:56:46+09:00 +실제 종료 코드: 1 +소요 시간: 7.234초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/ready-status.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/ready-status.log new file mode 100644 index 00000000..485f5abd --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/ready-status.log @@ -0,0 +1,14 @@ +실행 ID: 39105569049-1/ready-status +목적: 기록이 아닌 실제 서버·프록시·DB 준비 재확인 +시작: 2026-10-18T15:56:34+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py status +2026-10-18T15:56:34+09:00 [기록된 상태] READY · 범위 search +2026-10-18T15:56:34+09:00 [기록] .demo/launcher/sessions/1bd07e5ccd714d77a817b67f1d272a0f/ +2026-10-18T15:56:34+09:00 [backend] 소유 프로세스 확인 +2026-10-18T15:56:34+09:00 [frontend] 소유 프로세스 확인 +2026-10-18T15:56:34+09:00 [현재 상태] 서버·API 프록시·대상 DB 준비 확인 +종료: 2026-10-18T15:56:35+09:00 +실제 종료 코드: 0 +소요 시간: 1.016초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/events.jsonl new file mode 100644 index 00000000..51cfbe53 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/events.jsonl @@ -0,0 +1,49 @@ +{"timestamp": "2026-10-18T15:56:28.168+09:00", "message": "[실행] 20261018T155628167053+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:56:28.296+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:56:28.315+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:56:28.334+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:56:28.357+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:56:28.375+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:56:28.391+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:56:28.408+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:56:28.426+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:56:28.452+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:56:28.471+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:56:28.494+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:56:28.514+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:56:28.534+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:56:28.552+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:56:28.572+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:56:28.590+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:56:28.827+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.2초)"} +{"timestamp": "2026-10-18T15:56:29.034+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:29.034+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:29.034+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:29.232+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:29.232+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:29.252+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:29.429+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:56:29.429+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:56:29.429+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:56:29.446+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:56:29.461+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:56:29.476+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:56:29.491+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:56:29.507+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:56:29.522+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:56:29.538+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:56:29.554+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:56:29.574+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:56:29.588+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:56:29.603+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:56:29.618+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:56:29.632+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:56:29.646+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[문서 ID 재사용] PASS · 15/15"} +{"timestamp": "2026-10-18T15:56:29.660+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/summary.json new file mode 100644 index 00000000..a5b4674f --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/replay-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T155628167053+0900", + "revision": "a62175ee3e4621c6411feb3af5f4ed3663802b6c", + "scope": "search", + "startedAt": "2026-10-18T15:56:28.168+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "PASS", + "passed": 15, + "expected": 15 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 4 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 5 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 6 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "208b7156c72415ab41097dabd67a3b01f0a660d0718d0976f6237eaeb2f6b003", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:56:29.660+09:00", + "elapsedSeconds": 1.493 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/reuse-start.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/reuse-start.log new file mode 100644 index 00000000..765e101e --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/reuse-start.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/reuse-start +목적: 동일 활성 세션 중복 기동 없이 재사용 +시작: 2026-10-18T15:56:35+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start +2026-10-18T15:56:36+09:00 [재사용] 이미 준비된 시연 세션입니다. Web: <설정된 서버> +종료: 2026-10-18T15:56:36+09:00 +실제 종료 코드: 0 +소요 시간: 1.019초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/backend.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/backend.log new file mode 100644 index 00000000..fb6ff6f9 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/backend.log @@ -0,0 +1,143 @@ +2026-10-18T15:57:05+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. +2026-10-18T15:57:06+09:00 Daemon will be stopped at the end of the build +2026-10-18T15:57:12+09:00 > Task :compileJava UP-TO-DATE +2026-10-18T15:57:12+09:00 > Task :processResources UP-TO-DATE +2026-10-18T15:57:12+09:00 > Task :classes UP-TO-DATE +2026-10-18T15:57:12+09:00 > Task :resolveMainClassName UP-TO-DATE +2026-10-18T15:57:14+09:00 +2026-10-18T15:57:14+09:00 > Task :bootRun +2026-10-18T15:57:14+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:57:14+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:57:14+09:00 +2026-10-18T15:57:14+09:00 . ____ _ __ _ _ +2026-10-18T15:57:14+09:00 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +2026-10-18T15:57:14+09:00 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ +2026-10-18T15:57:14+09:00 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) +2026-10-18T15:57:14+09:00 ' |____| .__|_| |_|_| |_\__, | / / / / +2026-10-18T15:57:14+09:00 =========|_|==============|___/=/_/_/_/ +2026-10-18T15:57:14+09:00 +2026-10-18T15:57:14+09:00 :: Spring Boot :: (v3.5.16) +2026-10-18T15:57:14+09:00 +2026-10-18T15:57:14+09:00 2026-10-18T06:57:12.896Z INFO 20660 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Starting DocgridApplication using Java 17.0.20.1 with PID 20660 (<작업공간>/backend/build/classes/java/main started by runner in <작업공간>) +2026-10-18T15:57:14+09:00 2026-10-18T06:57:12.898Z INFO 20660 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : The following 1 profile is active: "local" +2026-10-18T15:57:14+09:00 2026-10-18T06:57:12.925Z INFO 20660 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-10-18T15:57:14+09:00 2026-10-18T06:57:12.925Z INFO 20660 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.707Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.709Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.839Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 125 ms. Found 31 JPA repository interfaces. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.849Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.850Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.867Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionDocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentChunkRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentVersionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.FileObjectRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.868Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingJobRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingModelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.CollectionPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.DocumentPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.UserDocumentAccessCacheRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.RagResponseRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.ResponseCitationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.869Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchConversationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.870Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchQueryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.870Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchResultRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.870Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.VectorSearchRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.870Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncAdminActionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.870Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncConsistencyIssueRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncEventDeliveryAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncOutboxEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncReconciliationRunRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.DepartmentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.McpAccessTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.871Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.RoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.EmbeddingJobAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.IndexingEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.WorkerNodeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:57:14+09:00 2026-10-18T06:57:13.872Z INFO 20660 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.152Z WARN 20660 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.153Z WARN 20660 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.158Z WARN 20660 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.160Z WARN 20660 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.379Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.388Z INFO 20660 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.388Z INFO 20660 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.420Z INFO 20660 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.420Z INFO 20660 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1495 ms +2026-10-18T15:57:14+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.607Z INFO 20660 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Starting... +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.679Z INFO 20660 --- [docgrid] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : docgrid-local-db-pool - Added connection org.postgresql.jdbc.PgConnection@5ccf60a1 +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.680Z INFO 20660 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Start completed. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.698Z INFO 20660 --- [docgrid] [ restartedMain] org.flywaydb.core.FlywayExecutor : Database: jdbc:postgresql://127.0.0.1:55432/app?currentSchema=public&sslmode=disable (PostgreSQL 17.8) +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.748Z INFO 20660 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.036s) +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.769Z INFO 20660 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "public": 52 +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.770Z INFO 20660 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Schema "public" is up to date. No migration necessary. +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.830Z INFO 20660 --- [docgrid] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.851Z INFO 20660 --- [docgrid] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.53.Final +2026-10-18T15:57:14+09:00 2026-10-18T06:57:14.866Z INFO 20660 --- [docgrid] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-10-18T15:57:15+09:00 2026-10-18T06:57:15.001Z INFO 20660 --- [docgrid] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-10-18T15:57:15+09:00 2026-10-18T06:57:15.038Z INFO 20660 --- [docgrid] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: +2026-10-18T15:57:15+09:00 Database JDBC URL [Connecting through datasource 'HikariDataSource (docgrid-local-db-pool)'] +2026-10-18T15:57:15+09:00 Database driver: undefined/unknown +2026-10-18T15:57:15+09:00 Database version: 17.8 +2026-10-18T15:57:15+09:00 Autocommit mode: undefined/unknown +2026-10-18T15:57:15+09:00 Isolation level: undefined/unknown +2026-10-18T15:57:15+09:00 Minimum pool size: undefined/unknown +2026-10-18T15:57:15+09:00 Maximum pool size: undefined/unknown +2026-10-18T15:57:15+09:00 2026-10-18T06:57:15.794Z INFO 20660 --- [docgrid] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-10-18T15:57:15+09:00 2026-10-18T06:57:15.825Z INFO 20660 --- [docgrid] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-10-18T15:57:16+09:00 2026-10-18T06:57:15.986Z INFO 20660 --- [docgrid] [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-10-18T15:57:17+09:00 2026-10-18T06:57:17.921Z WARN 20660 --- [docgrid] [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : +2026-10-18T15:57:17+09:00 +2026-10-18T15:57:17+09:00 Using generated security password: bd6e03ba-1d81-451a-abc2-ed9a4ccf21d8 +2026-10-18T15:57:17+09:00 +2026-10-18T15:57:17+09:00 This generated password is for development use only. Your security configuration must be updated before running your application in production. +2026-10-18T15:57:17+09:00 +2026-10-18T15:57:17+09:00 2026-10-18T06:57:17.925Z INFO 20660 --- [docgrid] [ restartedMain] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.376Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.377Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Registered tools: 3 +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.377Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.377Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.377Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.377Z INFO 20660 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.571Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.607Z INFO 20660 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting... +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.608Z INFO 20660 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@75e9b5b2]] +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.608Z INFO 20660 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started. +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.617Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.668Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.669Z INFO 20660 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.669Z INFO 20660 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.681Z INFO 20660 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.682Z INFO 20660 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 63 ms +2026-10-18T15:57:18+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.690Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoints beneath base path '/actuator' +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.712Z INFO 20660 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.725Z INFO 20660 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Started DocgridApplication in 6.113 seconds (process running for 6.396) +2026-10-18T15:57:18+09:00 2026-10-18T06:57:18.821Z INFO 20660 --- [docgrid] [ restartedMain] c.o.d.d.w.l.WorkerLifecycleManager : 인덱싱 Worker를 등록했습니다. workerId=2, workerName=indexing-worker, instanceId=a46d3152-2db7-469e-bfaf-c645bf690cec +2026-10-18T15:57:19+09:00 2026-10-18T06:57:19.057Z INFO 20660 --- [docgrid] [nio-8081-exec-1] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServletRegistration' +2026-10-18T15:57:19+09:00 2026-10-18T06:57:19.058Z INFO 20660 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServletRegistration' +2026-10-18T15:57:19+09:00 2026-10-18T06:57:19.058Z INFO 20660 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-10-18T15:57:22+09:00 2026-10-18T06:57:22.132Z INFO 20660 --- [docgrid] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-10-18T15:57:22+09:00 2026-10-18T06:57:22.132Z INFO 20660 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-10-18T15:57:22+09:00 2026-10-18T06:57:22.133Z INFO 20660 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.153Z INFO 20660 --- [docgrid] [nio-8080-exec-7] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.159Z INFO 20660 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=5 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.171Z INFO 20660 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=8 results=3 latencyMs=298 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.177Z INFO 20660 --- [docgrid] [nio-8080-exec-7] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=8 responseId=8 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.389Z INFO 20660 --- [docgrid] [nio-8080-exec-6] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.394Z INFO 20660 --- [docgrid] [nio-8080-exec-6] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=5 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.400Z INFO 20660 --- [docgrid] [nio-8080-exec-6] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=9 results=3 latencyMs=193 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.403Z INFO 20660 --- [docgrid] [nio-8080-exec-6] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=9 responseId=9 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.589Z INFO 20660 --- [docgrid] [nio-8080-exec-9] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.594Z INFO 20660 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=5 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.599Z INFO 20660 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=10 results=3 latencyMs=144 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.602Z INFO 20660 --- [docgrid] [nio-8080-exec-9] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=10 responseId=10 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.866Z ERROR 20660 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.866Z ERROR 20660 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.891Z WARN 20660 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=9 errorCode=RAG-001 +2026-10-18T15:57:26+09:00 2026-10-18T06:57:26.891Z WARN 20660 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=8 errorCode=RAG-001 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/events.jsonl new file mode 100644 index 00000000..fc462053 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/events.jsonl @@ -0,0 +1,5 @@ +{"timestamp": "2026-10-18T15:56:58+09:00", "message": "[시작] 로컬 시연 세션 0806f0385fd940dc8968a8446fafb9c2 · 범위 search"} +{"timestamp": "2026-10-18T15:57:23+09:00", "message": "[준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요."} +{"timestamp": "2026-10-18T15:57:27+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/f1a295ef524b4da7a989b8acd54bc2ca/summary.json"} +{"timestamp": "2026-10-18T15:57:30+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} +{"timestamp": "2026-10-18T15:57:30+09:00", "message": "[종료] 이미 종료된 세션입니다."} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/frontend.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/frontend.log new file mode 100644 index 00000000..0f023103 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/frontend.log @@ -0,0 +1,65 @@ +2026-10-18T15:57:19+09:00 +2026-10-18T15:57:19+09:00 > <이메일 생략> dev +2026-10-18T15:57:19+09:00 > WRANGLER_LOG_PATH=.wrangler/wrangler.log vinext dev --hostname 127.0.0.1 +2026-10-18T15:57:19+09:00 +2026-10-18T15:57:19+09:00 +2026-10-18T15:57:19+09:00 vinext dev (Vite 8.0.13) +2026-10-18T15:57:19+09:00 +2026-10-18T15:57:20+09:00 Using secrets defined in .env.local +2026-10-18T15:57:21+09:00 ➜ Local: <설정된 서버> +2026-10-18T15:57:21+09:00 ➜ Debug: <설정된 서버> +2026-10-18T15:57:22+09:00 GET /api/backend/departments 200 in 245ms +2026-10-18T15:57:23+09:00 GET /login 200 in 1.1s (compile: 1792306639.4s, render: 1.0s) +2026-10-18T15:57:23+09:00 GET /api/backend/departments 200 in 17ms +2026-10-18T15:57:23+09:00 GET /login 200 in 29ms (compile: 1792306639.4s, render: 18ms) +2026-10-18T15:57:24+09:00 POST /api/backend/auth/login 200 in 157ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 353ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 25ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 22ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 21ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 21ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 25ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 24ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 21ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 23ms +2026-10-18T15:57:25+09:00 POST /api/backend/api/documents 201 in 20ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/3/status 200 in 55ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/4/status 200 in 34ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/5/status 200 in 18ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/6/status 200 in 19ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/7/status 200 in 22ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/8/status 200 in 25ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/9/status 200 in 22ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/10/status 200 in 23ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/11/status 200 in 19ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/12/status 200 in 20ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/13/status 200 in 22ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/14/status 200 in 17ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/15/status 200 in 19ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/16/status 200 in 18ms +2026-10-18T15:57:25+09:00 GET /api/backend/api/documents/17/status 200 in 19ms +2026-10-18T15:57:26+09:00 POST /api/backend/search 200 in 345ms +2026-10-18T15:57:26+09:00 POST /api/backend/search 200 in 218ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/8/content 200 in 30ms +2026-10-18T15:57:26+09:00 POST /api/backend/search 200 in 167ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/3/file 200 in 22ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/4/file 200 in 34ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/5/file 200 in 25ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/6/file 200 in 17ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/7/file 200 in 15ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/8/file 200 in 16ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/9/file 200 in 17ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/10/file 200 in 17ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/11/file 200 in 17ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/12/file 200 in 16ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/13/file 200 in 16ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/14/file 200 in 21ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/15/file 200 in 23ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/16/file 200 in 18ms +2026-10-18T15:57:26+09:00 GET /api/backend/api/documents/17/file 200 in 18ms +2026-10-18T15:57:27+09:00 ➜ Tunnel closed diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/services.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/services.log new file mode 100644 index 00000000..fbb818e5 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/services.log @@ -0,0 +1,14 @@ +2026-10-18T15:56:58+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:56:58+09:00 Container docgrid-valkey Starting +2026-10-18T15:56:58+09:00 Container docgrid-embedding Starting +2026-10-18T15:56:58+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:56:58+09:00 Container docgrid-embedding Started +2026-10-18T15:56:58+09:00 Container docgrid-postgres17 Started +2026-10-18T15:56:59+09:00 Container docgrid-valkey Started +2026-10-18T15:56:59+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:56:59+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:57:03+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:57:04+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:57:04+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:57:04+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:57:04+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/verify-9bb4bd37d577445d9fa5344f8a9476fa.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/verify-9bb4bd37d577445d9fa5344f8a9476fa.log new file mode 100644 index 00000000..f766982e --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/0806f0385fd940dc8968a8446fafb9c2/verify-9bb4bd37d577445d9fa5344f8a9476fa.log @@ -0,0 +1,49 @@ +2026-10-18T15:57:24+09:00 [실행] 20261018T155724600405+0900 · 범위 search +2026-10-18T15:57:24+09:00 [계정] 로그인 완료 +2026-10-18T15:57:25+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:57:25+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:57:25+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:57:25+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:57:25+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:57:25+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:57:25+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:57:25+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:57:25+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:57:25+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:57:25+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:57:25+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:57:25+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:57:25+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:57:25+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:57:25+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.4초) +2026-10-18T15:57:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:57:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:57:26+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:57:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:57:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:57:26+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:57:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:57:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:57:26+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:57:26+09:00 [원본] 문서 3: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 4: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 5: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 6: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 7: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 8: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 9: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 10: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 11: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 12: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 13: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 14: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 15: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 16: PASS +2026-10-18T15:57:26+09:00 [원본] 문서 17: PASS +2026-10-18T15:57:26+09:00 [업로드] PASS · 15/15 +2026-10-18T15:57:26+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:57:26+09:00 [검색] PASS · 3/3 +2026-10-18T15:57:26+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:57:26+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:57:26+09:00 [문서 ID 재사용] PASS · 15/15 +2026-10-18T15:57:26+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/backend.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/backend.log new file mode 100644 index 00000000..47307726 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/backend.log @@ -0,0 +1,293 @@ +2026-10-18T15:54:41+09:00 Downloading <설정된 서버> +2026-10-18T15:54:43+09:00 .............10%.............20%.............30%.............40%.............50%..............60%.............70%.............80%.............90%.............100% +2026-10-18T15:54:44+09:00 +2026-10-18T15:54:44+09:00 Welcome to Gradle 8.14.5! +2026-10-18T15:54:44+09:00 +2026-10-18T15:54:44+09:00 Here are the highlights of this release: +2026-10-18T15:54:44+09:00 - Java 24 support +2026-10-18T15:54:44+09:00 - GraalVM Native Image toolchain selection +2026-10-18T15:54:44+09:00 - Enhancements to test reporting +2026-10-18T15:54:44+09:00 - Build Authoring improvements +2026-10-18T15:54:44+09:00 +2026-10-18T15:54:44+09:00 For more details see <설정된 서버> +2026-10-18T15:54:44+09:00 +2026-10-18T15:54:44+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. +2026-10-18T15:54:45+09:00 Daemon will be stopped at the end of the build +2026-10-18T15:55:50+09:00 > Task :compileJava +2026-10-18T15:55:50+09:00 > Task :processResources +2026-10-18T15:55:50+09:00 > Task :classes +2026-10-18T15:55:50+09:00 > Task :resolveMainClassName +2026-10-18T15:55:52+09:00 +2026-10-18T15:55:52+09:00 > Task :bootRun +2026-10-18T15:55:52+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:55:52+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:55:52+09:00 +2026-10-18T15:55:52+09:00 . ____ _ __ _ _ +2026-10-18T15:55:52+09:00 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +2026-10-18T15:55:52+09:00 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ +2026-10-18T15:55:52+09:00 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) +2026-10-18T15:55:52+09:00 ' |____| .__|_| |_|_| |_\__, | / / / / +2026-10-18T15:55:52+09:00 =========|_|==============|___/=/_/_/_/ +2026-10-18T15:55:52+09:00 +2026-10-18T15:55:52+09:00 :: Spring Boot :: (v3.5.16) +2026-10-18T15:55:52+09:00 +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.047Z INFO 9811 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Starting DocgridApplication using Java 17.0.20.1 with PID 9811 (<작업공간>/backend/build/classes/java/main started by runner in <작업공간>) +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.049Z INFO 9811 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : The following 1 profile is active: "local" +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.074Z INFO 9811 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.074Z INFO 9811 --- [docgrid] [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.836Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.837Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.961Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 119 ms. Found 31 JPA repository interfaces. +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.969Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +2026-10-18T15:55:52+09:00 2026-10-18T06:55:52.969Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.987Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionDocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.987Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.collection.repository.CollectionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.987Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentChunkRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.987Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.987Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.DocumentVersionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.document.repository.FileObjectRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingJobRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingModelRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.embedding.repository.EmbeddingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.CollectionPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.DocumentPermissionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.988Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.permission.repository.UserDocumentAccessCacheRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.RagResponseRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.rag.repository.ResponseCitationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchConversationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchQueryRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.SearchResultRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.989Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.search.repository.VectorSearchRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncAdminActionRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncConsistencyIssueRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncEventDeliveryAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncOutboxEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.sync.repository.SyncReconciliationRunRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.DepartmentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.990Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.McpAccessTokenRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.991Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.RoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.991Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.991Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.user.repository.UserRoleRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.992Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.EmbeddingJobAttemptRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.992Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.IndexingEventRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.993Z INFO 9811 --- [docgrid] [ restartedMain] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.opensource.docgrid.domain.worker.repository.WorkerNodeRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2026-10-18T15:55:53+09:00 2026-10-18T06:55:52.993Z INFO 9811 --- [docgrid] [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 19 ms. Found 0 Redis repository interfaces. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.261Z WARN 9811 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.262Z WARN 9811 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.267Z WARN 9811 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'stringOrNumberMigrationVersionConverter' of type [org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$StringOrNumberToMigrationVersionConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.269Z WARN 9811 --- [docgrid] [ restartedMain] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.513Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.523Z INFO 9811 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.523Z INFO 9811 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.555Z INFO 9811 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.556Z INFO 9811 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1481 ms +2026-10-18T15:55:53+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.725Z INFO 9811 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Starting... +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.808Z INFO 9811 --- [docgrid] [ restartedMain] com.zaxxer.hikari.pool.HikariPool : docgrid-local-db-pool - Added connection org.postgresql.jdbc.PgConnection@26d752a1 +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.810Z INFO 9811 --- [docgrid] [ restartedMain] com.zaxxer.hikari.HikariDataSource : docgrid-local-db-pool - Start completed. +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.829Z INFO 9811 --- [docgrid] [ restartedMain] org.flywaydb.core.FlywayExecutor : Database: jdbc:postgresql://127.0.0.1:55432/app?currentSchema=public&sslmode=disable (PostgreSQL 17.8) +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.866Z INFO 9811 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.868Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.026s) +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.880Z INFO 9811 --- [docgrid] [ restartedMain] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.922Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.926Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - init schema" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.940Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "2 - create departments" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.950Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "3 - create users" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.958Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "4 - create file objects" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.966Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "5 - create documents" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.974Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "6 - create document versions" +2026-10-18T15:55:53+09:00 2026-10-18T06:55:53.983Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "7 - create collections" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:53.990Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "8 - create collection documents" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:53.998Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "9 - create roles" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.003Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "10 - create user roles" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.009Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "11 - create collection permissions" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.018Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "12 - create document permissions" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.026Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "13 - create user document access cache" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.029Z WARN 9811 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : DB: identifier "uk_user_document_access_cache_user_id_document_id_source_type_source_id" will be truncated to "uk_user_document_access_cache_user_id_document_id_source_type_s" (SQL State: 42622 - Error Code: 0) +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.034Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "14 - create embedding models" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.041Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "15 - create document chunks" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.047Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "16 - create embeddings" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.053Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "17 - create worker nodes" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.059Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "18 - create embedding jobs" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.065Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "19 - create embedding job attempts" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.070Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "20 - create indexing events" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.076Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "21 - create search queries" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.081Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "22 - create search results" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.088Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "23 - create rag responses" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.094Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "24 - create response citations" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.099Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "25 - create failover events" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.105Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "26 - create mcp access tokens" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.110Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "27 - add embedding model constraints" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.114Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "28 - seed roles departments admin" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.119Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "29 - add file object deduplication constraint" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.124Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "30 - add document version upload metadata" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.130Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "31 - add worker instance id" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.135Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "32 - convert vector columns to pgvector" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.143Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "33 - add embedding job claim token" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.147Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "34 - add claim token to embedding job attempts" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.150Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "35 - add embedding job next retry at" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.154Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "36 - create sync outbox events" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.161Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "37 - create sync consistency issues" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.168Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "38 - create sync admin actions" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.173Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "39 - create sync event delivery attempts" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.180Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "40 - alter rag responses answer text nullable" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.183Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "41 - create search conversations" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.187Z INFO 9811 --- [docgrid] [ restartedMain] o.f.c.i.s.DefaultSqlScriptExecutor : +--------+ +2026-10-18T15:55:54+09:00 | setval | +2026-10-18T15:55:54+09:00 +--------+ +2026-10-18T15:55:54+09:00 | 1 | +2026-10-18T15:55:54+09:00 +--------+ +2026-10-18T15:55:54+09:00 +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.191Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "42 - create collection closure" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.196Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "43 - add rag responses claimed at" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.198Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "44 - create ha probe writes" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.202Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "45 - create ha probe idempotent writes" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.205Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "46 - enable pg trgm chunk text index" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.213Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "47 - create initial upload requests" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.217Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "48 - track initial upload candidates" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.224Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "49 - create version upload requests" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.228Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "50 - track version upload candidates" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.236Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "51 - add rag response claim lease" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.241Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "52 - create permission revocation requests" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.246Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed bge m3 embedding model" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.252Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Migrating schema "public" with repeatable migration "seed test fixtures" +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.268Z INFO 9811 --- [docgrid] [ restartedMain] o.f.core.internal.command.DbMigrate : Successfully applied 54 migrations to schema "public", now at version v52 (execution time 00:00.135s) +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.328Z INFO 9811 --- [docgrid] [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.351Z INFO 9811 --- [docgrid] [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.53.Final +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.366Z INFO 9811 --- [docgrid] [ restartedMain] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.508Z INFO 9811 --- [docgrid] [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-10-18T15:55:54+09:00 2026-10-18T06:55:54.545Z INFO 9811 --- [docgrid] [ restartedMain] org.hibernate.orm.connections.pooling : HHH10001005: Database info: +2026-10-18T15:55:54+09:00 Database JDBC URL [Connecting through datasource 'HikariDataSource (docgrid-local-db-pool)'] +2026-10-18T15:55:54+09:00 Database driver: undefined/unknown +2026-10-18T15:55:54+09:00 Database version: 17.8 +2026-10-18T15:55:54+09:00 Autocommit mode: undefined/unknown +2026-10-18T15:55:54+09:00 Isolation level: undefined/unknown +2026-10-18T15:55:54+09:00 Minimum pool size: undefined/unknown +2026-10-18T15:55:54+09:00 Maximum pool size: undefined/unknown +2026-10-18T15:55:55+09:00 2026-10-18T06:55:55.246Z INFO 9811 --- [docgrid] [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-10-18T15:55:55+09:00 2026-10-18T06:55:55.274Z INFO 9811 --- [docgrid] [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-10-18T15:55:55+09:00 2026-10-18T06:55:55.454Z INFO 9811 --- [docgrid] [ restartedMain] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.301Z WARN 9811 --- [docgrid] [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration : +2026-10-18T15:55:57+09:00 +2026-10-18T15:55:57+09:00 Using generated security password: 15b8d1ad-40f7-48e7-9f7c-a33519aedb6b +2026-10-18T15:55:57+09:00 +2026-10-18T15:55:57+09:00 This generated password is for development use only. Your security configuration must be updated before running your application in production. +2026-10-18T15:55:57+09:00 +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.305Z INFO 9811 --- [docgrid] [ restartedMain] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.736Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.737Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Registered tools: 3 +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.737Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.737Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.737Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.738Z INFO 9811 --- [docgrid] [ restartedMain] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.934Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.977Z INFO 9811 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Starting... +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.977Z INFO 9811 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@6bad9d00]] +2026-10-18T15:55:57+09:00 2026-10-18T06:55:57.978Z INFO 9811 --- [docgrid] [ restartedMain] o.s.m.s.b.SimpleBrokerMessageHandler : Started. +2026-10-18T15:55:58+09:00 2026-10-18T06:55:57.986Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.039Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.040Z INFO 9811 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.040Z INFO 9811 --- [docgrid] [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.55] +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.052Z INFO 9811 --- [docgrid] [ restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.052Z INFO 9811 --- [docgrid] [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 63 ms +2026-10-18T15:55:58+09:00 Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.062Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoints beneath base path '/actuator' +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.085Z INFO 9811 --- [docgrid] [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.100Z INFO 9811 --- [docgrid] [ restartedMain] c.opensource.docgrid.DocgridApplication : Started DocgridApplication in 6.361 seconds (process running for 6.626) +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.262Z INFO 9811 --- [docgrid] [ restartedMain] c.o.d.d.w.l.WorkerLifecycleManager : 인덱싱 Worker를 등록했습니다. workerId=1, workerName=indexing-worker, instanceId=e9bfe900-bf46-4a7f-aed5-6fca87ad056f +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.520Z INFO 9811 --- [docgrid] [nio-8081-exec-1] o.a.c.c.C.[Tomcat-1].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServletRegistration' +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.520Z INFO 9811 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServletRegistration' +2026-10-18T15:55:58+09:00 2026-10-18T06:55:58.520Z INFO 9811 --- [docgrid] [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-10-18T15:56:01+09:00 2026-10-18T06:56:01.612Z INFO 9811 --- [docgrid] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-10-18T15:56:01+09:00 2026-10-18T06:56:01.612Z INFO 9811 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-10-18T15:56:01+09:00 2026-10-18T06:56:01.618Z INFO 9811 --- [docgrid] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 6 ms +2026-10-18T15:56:04+09:00 2026-10-18T06:56:04.090Z WARN 9811 --- [docgrid] [nio-8080-exec-5] c.o.d.g.e.GlobalExceptionHandler : [DocGridException] POST /auth/login | code=USER-004 | message=이메일 또는 비밀번호가 올바르지 않습니다. +2026-10-18T15:56:04+09:00 2026-10-18T06:56:04.094Z WARN 9811 --- [docgrid] [nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.opensource.docgrid.global.exception.DocGridException: 이메일 또는 비밀번호가 올바르지 않습니다.] +2026-10-18T15:56:05+09:00 2026-10-18T06:56:05.195Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=2, attemptId=2, initialStatus=UPLOADED +2026-10-18T15:56:05+09:00 2026-10-18T06:56:05.196Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=1, attemptId=1, initialStatus=UPLOADED +2026-10-18T15:56:07+09:00 2026-10-18T06:56:07.417Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=1, attemptId=1, documentId=3, versionId=3, chunkCount=1, embeddingCount=1, durationMs=2213 +2026-10-18T15:56:07+09:00 2026-10-18T06:56:07.422Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=1, attemptId=1 +2026-10-18T15:56:08+09:00 2026-10-18T06:56:08.201Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=3, attemptId=3, initialStatus=UPLOADED +2026-10-18T15:56:09+09:00 2026-10-18T06:56:09.216Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=2, attemptId=2, documentId=4, versionId=4, chunkCount=1, embeddingCount=1, durationMs=3998 +2026-10-18T15:56:09+09:00 2026-10-18T06:56:09.221Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=2, attemptId=2 +2026-10-18T15:56:10+09:00 2026-10-18T06:56:10.216Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=4, attemptId=4, initialStatus=UPLOADED +2026-10-18T15:56:10+09:00 2026-10-18T06:56:10.353Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=3, attemptId=3, documentId=5, versionId=5, chunkCount=1, embeddingCount=1, durationMs=2157 +2026-10-18T15:56:10+09:00 2026-10-18T06:56:10.356Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=3, attemptId=3 +2026-10-18T15:56:11+09:00 2026-10-18T06:56:11.245Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=5, attemptId=5, initialStatus=UPLOADED +2026-10-18T15:56:11+09:00 2026-10-18T06:56:11.856Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=4, attemptId=4, documentId=6, versionId=6, chunkCount=1, embeddingCount=1, durationMs=1631 +2026-10-18T15:56:11+09:00 2026-10-18T06:56:11.861Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=4, attemptId=4 +2026-10-18T15:56:12+09:00 2026-10-18T06:56:12.240Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=6, attemptId=6, initialStatus=UPLOADED +2026-10-18T15:56:12+09:00 2026-10-18T06:56:12.943Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=5, attemptId=5, documentId=7, versionId=7, chunkCount=1, embeddingCount=1, durationMs=1705 +2026-10-18T15:56:12+09:00 2026-10-18T06:56:12.946Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=5, attemptId=5 +2026-10-18T15:56:13+09:00 2026-10-18T06:56:13.250Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=7, attemptId=7, initialStatus=UPLOADED +2026-10-18T15:56:15+09:00 2026-10-18T06:56:15.187Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=6, attemptId=6, documentId=8, versionId=8, chunkCount=6, embeddingCount=6, durationMs=2941 +2026-10-18T15:56:15+09:00 2026-10-18T06:56:15.191Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=6, attemptId=6 +2026-10-18T15:56:15+09:00 2026-10-18T06:56:15.259Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=8, attemptId=8, initialStatus=UPLOADED +2026-10-18T15:56:15+09:00 2026-10-18T06:56:15.823Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=7, attemptId=7, documentId=9, versionId=9, chunkCount=7, embeddingCount=7, durationMs=2570 +2026-10-18T15:56:15+09:00 2026-10-18T06:56:15.826Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=7, attemptId=7 +2026-10-18T15:56:16+09:00 2026-10-18T06:56:16.269Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=9, attemptId=9, initialStatus=UPLOADED +2026-10-18T15:56:18+09:00 2026-10-18T06:56:18.201Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=8, attemptId=8, documentId=10, versionId=10, chunkCount=7, embeddingCount=7, durationMs=2938 +2026-10-18T15:56:18+09:00 2026-10-18T06:56:18.204Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=8, attemptId=8 +2026-10-18T15:56:18+09:00 2026-10-18T06:56:18.277Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=10, attemptId=10, initialStatus=UPLOADED +2026-10-18T15:56:18+09:00 2026-10-18T06:56:18.614Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=9, attemptId=9, documentId=11, versionId=11, chunkCount=6, embeddingCount=6, durationMs=2344 +2026-10-18T15:56:18+09:00 2026-10-18T06:56:18.617Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=9, attemptId=9 +2026-10-18T15:56:19+09:00 2026-10-18T06:56:19.280Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=11, attemptId=11, initialStatus=UPLOADED +2026-10-18T15:56:19+09:00 2026-10-18T06:56:19.953Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=10, attemptId=10, documentId=12, versionId=12, chunkCount=6, embeddingCount=6, durationMs=1665 +2026-10-18T15:56:19+09:00 2026-10-18T06:56:19.955Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=10, attemptId=10 +2026-10-18T15:56:20+09:00 2026-10-18T06:56:20.286Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=12, attemptId=12, initialStatus=UPLOADED +2026-10-18T15:56:20+09:00 2026-10-18T06:56:20.941Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=11, attemptId=11, documentId=13, versionId=13, chunkCount=1, embeddingCount=1, durationMs=1659 +2026-10-18T15:56:20+09:00 2026-10-18T06:56:20.943Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=11, attemptId=11 +2026-10-18T15:56:21+09:00 2026-10-18T06:56:21.291Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=13, attemptId=13, initialStatus=UPLOADED +2026-10-18T15:56:22+09:00 2026-10-18T06:56:22.025Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=12, attemptId=12, documentId=14, versionId=14, chunkCount=1, embeddingCount=1, durationMs=1731 +2026-10-18T15:56:22+09:00 2026-10-18T06:56:22.028Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=12, attemptId=12 +2026-10-18T15:56:22+09:00 2026-10-18T06:56:22.325Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=14, attemptId=14, initialStatus=UPLOADED +2026-10-18T15:56:22+09:00 2026-10-18T06:56:22.751Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=13, attemptId=13, documentId=15, versionId=15, chunkCount=1, embeddingCount=1, durationMs=1456 +2026-10-18T15:56:22+09:00 2026-10-18T06:56:22.754Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=13, attemptId=13 +2026-10-18T15:56:23+09:00 2026-10-18T06:56:23.317Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 시작합니다. workerId=1, jobId=15, attemptId=15, initialStatus=UPLOADED +2026-10-18T15:56:23+09:00 2026-10-18T06:56:23.604Z INFO 9811 --- [docgrid] [ng-worker-job-2] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=14, attemptId=14, documentId=16, versionId=16, chunkCount=1, embeddingCount=1, durationMs=1287 +2026-10-18T15:56:23+09:00 2026-10-18T06:56:23.607Z INFO 9811 --- [docgrid] [ng-worker-job-2] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=14, attemptId=14 +2026-10-18T15:56:24+09:00 2026-10-18T06:56:24.234Z INFO 9811 --- [docgrid] [ng-worker-job-1] .e.s.c.DocumentIndexingCompletionService : 문서 인덱싱 완료: jobId=15, attemptId=15, documentId=17, versionId=17, chunkCount=1, embeddingCount=1, durationMs=916 +2026-10-18T15:56:24+09:00 2026-10-18T06:56:24.236Z INFO 9811 --- [docgrid] [ng-worker-job-1] c.o.d.d.w.s.WorkerIndexingPipeline : Worker 인덱싱 실행을 완료했습니다. workerId=1, jobId=15, attemptId=15 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.207Z INFO 9811 --- [docgrid] [nio-8080-exec-4] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.210Z INFO 9811 --- [docgrid] [nio-8080-exec-4] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.218Z INFO 9811 --- [docgrid] [nio-8080-exec-4] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=1 results=3 latencyMs=250 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.223Z INFO 9811 --- [docgrid] [nio-8080-exec-4] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=1 responseId=1 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.376Z ERROR 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.397Z WARN 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=1 errorCode=RAG-001 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.432Z INFO 9811 --- [docgrid] [nio-8080-exec-5] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.435Z INFO 9811 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.439Z INFO 9811 --- [docgrid] [nio-8080-exec-5] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=2 results=3 latencyMs=190 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.440Z INFO 9811 --- [docgrid] [nio-8080-exec-5] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=2 responseId=2 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.626Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.630Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.634Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=3 results=3 latencyMs=154 +2026-10-18T15:56:26+09:00 2026-10-18T06:56:26.636Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=3 responseId=3 +2026-10-18T15:56:27+09:00 2026-10-18T06:56:27.368Z ERROR 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:27+09:00 2026-10-18T06:56:27.371Z ERROR 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:27+09:00 2026-10-18T06:56:27.372Z WARN 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=2 errorCode=RAG-001 +2026-10-18T15:56:27+09:00 2026-10-18T06:56:27.374Z WARN 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=3 errorCode=RAG-001 +2026-10-18T15:56:28+09:00 2026-10-18T06:56:28.105Z INFO 9811 --- [docgrid] [MessageBroker-2] c.o.d.d.w.l.WorkerLeaseRecoveryScheduler : Worker Lease 복구 주기를 완료했습니다. deadWorkers=0, candidates=0, recovered=0, skipped=0, failed=0 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.022Z INFO 9811 --- [docgrid] [nio-8080-exec-6] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=1 vectorPool=12 lexicalPool=2 merged=12 after=3 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.025Z INFO 9811 --- [docgrid] [nio-8080-exec-6] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.029Z INFO 9811 --- [docgrid] [nio-8080-exec-6] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=4 results=3 latencyMs=185 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.030Z INFO 9811 --- [docgrid] [nio-8080-exec-6] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=4 responseId=4 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.220Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=4 vectorPool=12 lexicalPool=4 merged=12 after=3 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.223Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=3 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.226Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=5 results=3 latencyMs=179 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.228Z INFO 9811 --- [docgrid] [nio-8080-exec-7] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=5 responseId=5 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.379Z ERROR 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.384Z ERROR 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.389Z WARN 9811 --- [docgrid] [ag-worker-job-1] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=4 errorCode=RAG-001 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.394Z WARN 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=5 errorCode=RAG-001 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.417Z INFO 9811 --- [docgrid] [nio-8080-exec-9] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=3 terms=2 vectorPool=12 lexicalPool=3 merged=12 after=3 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.420Z INFO 9811 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=3 after=3 liveMs=2 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.423Z INFO 9811 --- [docgrid] [nio-8080-exec-9] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=6 results=3 latencyMs=158 +2026-10-18T15:56:29+09:00 2026-10-18T06:56:29.425Z INFO 9811 --- [docgrid] [nio-8080-exec-9] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=6 responseId=6 +2026-10-18T15:56:30+09:00 2026-10-18T06:56:30.399Z ERROR 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:30+09:00 2026-10-18T06:56:30.404Z WARN 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=6 errorCode=RAG-001 +2026-10-18T15:56:33+09:00 2026-10-18T06:56:33.399Z INFO 9811 --- [docgrid] [nio-8080-exec-1] c.o.d.d.s.s.q.HybridSearchQueryService : [SEARCH] hybrid modelId=1 topK=5 terms=1 vectorPool=20 lexicalPool=2 merged=20 after=5 +2026-10-18T15:56:33+09:00 2026-10-18T06:56:33.403Z INFO 9811 --- [docgrid] [nio-8080-exec-1] c.o.d.d.search.service.SearchFacade : [SEARCH] live check userId=2 before=5 after=5 liveMs=3 +2026-10-18T15:56:33+09:00 2026-10-18T06:56:33.408Z INFO 9811 --- [docgrid] [nio-8080-exec-1] c.o.d.d.search.service.SearchFacade : [SEARCH] done queryId=7 results=5 latencyMs=188 +2026-10-18T15:56:33+09:00 2026-10-18T06:56:33.410Z INFO 9811 --- [docgrid] [nio-8080-exec-1] c.o.d.domain.rag.service.RagFacade : [RAG] enqueued queryId=7 responseId=7 +2026-10-18T15:56:34+09:00 2026-10-18T06:56:34.416Z ERROR 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.OllamaClient : Ollama 서버 호출 실패: I/O error on POST request for "<설정된 서버> null +2026-10-18T15:56:34+09:00 2026-10-18T06:56:34.421Z WARN 9811 --- [docgrid] [ag-worker-job-2] c.o.d.domain.rag.service.RagFacade : [RAG] fallback queryId=7 errorCode=RAG-001 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/events.jsonl new file mode 100644 index 00000000..ff1b20ed --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/events.jsonl @@ -0,0 +1,7 @@ +{"timestamp": "2026-10-18T15:52:48+09:00", "message": "[시작] 로컬 시연 세션 1bd07e5ccd714d77a817b67f1d272a0f · 범위 search"} +{"timestamp": "2026-10-18T15:56:02+09:00", "message": "[준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요."} +{"timestamp": "2026-10-18T15:56:27+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/43aaa87d4ac94307a3639f790aabf3a1/summary.json"} +{"timestamp": "2026-10-18T15:56:30+09:00", "message": "[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/3abd7182177c4cc4a95e4d956b49ebed/summary.json"} +{"timestamp": "2026-10-18T15:56:36+09:00", "message": "[재사용] 이미 준비된 시연 세션입니다. Web: <설정된 서버>"} +{"timestamp": "2026-10-18T15:56:39+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} +{"timestamp": "2026-10-18T15:56:39+09:00", "message": "[종료] 이미 종료된 세션입니다."} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/frontend.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/frontend.log new file mode 100644 index 00000000..4a587ab8 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/frontend.log @@ -0,0 +1,198 @@ +2026-10-18T15:55:58+09:00 +2026-10-18T15:55:58+09:00 > <이메일 생략> dev +2026-10-18T15:55:58+09:00 > WRANGLER_LOG_PATH=.wrangler/wrangler.log vinext dev --hostname 127.0.0.1 +2026-10-18T15:55:58+09:00 +2026-10-18T15:55:59+09:00 +2026-10-18T15:55:59+09:00 vinext dev (Vite 8.0.13) +2026-10-18T15:55:59+09:00 +2026-10-18T15:55:59+09:00 Using secrets defined in .env.local +2026-10-18T15:56:01+09:00 ➜ Local: <설정된 서버> +2026-10-18T15:56:01+09:00 ➜ Debug: <설정된 서버> +2026-10-18T15:56:01+09:00 GET /api/backend/departments 200 in 226ms +2026-10-18T15:56:02+09:00 GET /login 200 in 1.0s (compile: 1792306558.9s, render: 995ms) +2026-10-18T15:56:03+09:00 GET /api/backend/departments 200 in 18ms +2026-10-18T15:56:03+09:00 GET /login 200 in 27ms (compile: 1792306558.8s, render: 18ms) +2026-10-18T15:56:04+09:00 POST /api/backend/auth/login 401 in 43ms +2026-10-18T15:56:04+09:00 POST /api/backend/auth/signup 201 in 103ms +2026-10-18T15:56:04+09:00 POST /api/backend/auth/login 200 in 123ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 480ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 51ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 35ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 34ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 34ms +2026-10-18T15:56:04+09:00 POST /api/backend/api/documents 201 in 30ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 29ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 54ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 33ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 71ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 43ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 32ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 29ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 31ms +2026-10-18T15:56:05+09:00 POST /api/backend/api/documents 201 in 32ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/3/status 200 in 33ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/4/status 200 in 19ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/5/status 200 in 26ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/6/status 200 in 50ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/7/status 200 in 27ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/8/status 200 in 31ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/9/status 200 in 21ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/10/status 200 in 20ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/11/status 200 in 18ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/12/status 200 in 21ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/13/status 200 in 25ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/14/status 200 in 19ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/15/status 200 in 18ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/16/status 200 in 23ms +2026-10-18T15:56:05+09:00 GET /api/backend/api/documents/17/status 200 in 74ms +2026-10-18T15:56:08+09:00 GET /api/backend/api/documents/3/status 200 in 53ms +2026-10-18T15:56:08+09:00 GET /api/backend/api/documents/4/status 200 in 32ms +2026-10-18T15:56:08+09:00 GET /api/backend/api/documents/5/status 200 in 30ms +2026-10-18T15:56:08+09:00 GET /api/backend/api/documents/6/status 200 in 24ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/7/status 200 in 27ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/8/status 200 in 34ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/9/status 200 in 58ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/10/status 200 in 47ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/11/status 200 in 52ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/12/status 200 in 33ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/13/status 200 in 30ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/14/status 200 in 42ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/15/status 200 in 24ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/16/status 200 in 28ms +2026-10-18T15:56:09+09:00 GET /api/backend/api/documents/17/status 200 in 63ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/4/status 200 in 26ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/5/status 200 in 32ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/6/status 200 in 49ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/7/status 200 in 39ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/8/status 200 in 49ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/9/status 200 in 62ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/10/status 200 in 47ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/11/status 200 in 35ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/12/status 200 in 53ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/13/status 200 in 33ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/14/status 200 in 30ms +2026-10-18T15:56:12+09:00 GET /api/backend/api/documents/15/status 200 in 31ms +2026-10-18T15:56:13+09:00 GET /api/backend/api/documents/16/status 200 in 51ms +2026-10-18T15:56:13+09:00 GET /api/backend/api/documents/17/status 200 in 44ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/7/status 200 in 27ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/8/status 200 in 33ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/9/status 200 in 21ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/10/status 200 in 20ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/11/status 200 in 19ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/12/status 200 in 21ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/13/status 200 in 32ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/14/status 200 in 32ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/15/status 200 in 33ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/16/status 200 in 46ms +2026-10-18T15:56:16+09:00 GET /api/backend/api/documents/17/status 200 in 54ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/10/status 200 in 46ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/11/status 200 in 47ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/12/status 200 in 21ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/13/status 200 in 23ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/14/status 200 in 27ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/15/status 200 in 26ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/16/status 200 in 35ms +2026-10-18T15:56:19+09:00 GET /api/backend/api/documents/17/status 200 in 29ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/12/status 200 in 26ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/13/status 200 in 19ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/14/status 200 in 17ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/15/status 200 in 18ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/16/status 200 in 21ms +2026-10-18T15:56:22+09:00 GET /api/backend/api/documents/17/status 200 in 24ms +2026-10-18T15:56:25+09:00 GET /api/backend/api/documents/16/status 200 in 16ms +2026-10-18T15:56:25+09:00 GET /api/backend/api/documents/17/status 200 in 13ms +2026-10-18T15:56:26+09:00 POST /api/backend/search 200 in 296ms +2026-10-18T15:56:26+09:00 POST /api/backend/search 200 in 212ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/8/content 200 in 19ms +2026-10-18T15:56:26+09:00 POST /api/backend/search 200 in 175ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/3/file 200 in 22ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/4/file 200 in 15ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/5/file 200 in 17ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/6/file 200 in 16ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/7/file 200 in 16ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/8/file 200 in 16ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/9/file 200 in 14ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/10/file 200 in 13ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/11/file 200 in 13ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/12/file 200 in 15ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/13/file 200 in 12ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/14/file 200 in 14ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/15/file 200 in 15ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/16/file 200 in 13ms +2026-10-18T15:56:26+09:00 GET /api/backend/api/documents/17/file 200 in 13ms +2026-10-18T15:56:27+09:00 GET /api/backend/departments 200 in 11ms +2026-10-18T15:56:27+09:00 GET /login 200 in 26ms (compile: 1792306558.8s, render: 16ms) +2026-10-18T15:56:28+09:00 POST /api/backend/auth/login 200 in 98ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 18ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 18ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 22ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 16ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 15ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 16ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 17ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 24ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 22ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 17ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 19ms +2026-10-18T15:56:28+09:00 POST /api/backend/api/documents 201 in 17ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/3/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/4/status 200 in 13ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/5/status 200 in 15ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/6/status 200 in 15ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/7/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/8/status 200 in 13ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/9/status 200 in 16ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/10/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/11/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/12/status 200 in 16ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/13/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/14/status 200 in 16ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/15/status 200 in 14ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/16/status 200 in 13ms +2026-10-18T15:56:28+09:00 GET /api/backend/api/documents/17/status 200 in 12ms +2026-10-18T15:56:29+09:00 POST /api/backend/search 200 in 204ms +2026-10-18T15:56:29+09:00 POST /api/backend/search 200 in 197ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/8/content 200 in 18ms +2026-10-18T15:56:29+09:00 POST /api/backend/search 200 in 176ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/3/file 200 in 15ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/4/file 200 in 13ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/5/file 200 in 13ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/6/file 200 in 14ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/7/file 200 in 13ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/8/file 200 in 13ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/9/file 200 in 14ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/10/file 200 in 14ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/11/file 200 in 18ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/12/file 200 in 12ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/13/file 200 in 14ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/14/file 200 in 13ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/15/file 200 in 12ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/16/file 200 in 12ms +2026-10-18T15:56:29+09:00 GET /api/backend/api/documents/17/file 200 in 11ms +2026-10-18T15:56:31+09:00 GET /login 200 in 34ms (compile: 1792306558.8s, render: 21ms) +2026-10-18T15:56:31+09:00 GET /login?returnTo=%2Fsearch 200 in 32ms (compile: 1792306558.8s, render: 20ms) +2026-10-18T15:56:32+09:00 POST /api/backend/auth/login 200 in 79ms +2026-10-18T15:56:32+09:00 GET /api/backend/auth/me 200 in 14ms +2026-10-18T15:56:32+09:00 GET /search 200 in 46ms (compile: 1792306558.8s, render: 31ms) +2026-10-18T15:56:33+09:00 GET /api/backend/auth/me 200 in 16ms +2026-10-18T15:56:33+09:00 GET /api/backend/search/conversations?page=0&size=20 200 in 32ms +2026-10-18T15:56:33+09:00 GET /api/backend/collections?page=0&size=100 200 in 41ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents?status=INDEXED&page=0&size=3 200 in 40ms +2026-10-18T15:56:33+09:00 POST /api/backend/search 200 in 213ms +2026-10-18T15:56:33+09:00 GET /api/backend/search/conversations?page=0&size=20 200 in 16ms +2026-10-18T15:56:33+09:00 GET /documents/3 200 in 26ms (compile: 1792306558.8s, render: 17ms) +2026-10-18T15:56:33+09:00 GET /api/backend/auth/me 200 in 16ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents/3 200 in 38ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents/3/status 200 in 41ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents/3/versions 200 in 41ms +2026-10-18T15:56:33+09:00 GET /api/backend/permissions/documents/3/me 200 in 44ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents/3/content 200 in 16ms +2026-10-18T15:56:33+09:00 GET /api/backend/api/documents/3/file?disposition=attachment 200 in 17ms +2026-10-18T15:56:34+09:00 GET /api/backend/departments 200 in 12ms +2026-10-18T15:56:34+09:00 GET /login 200 in 54ms (compile: 1792306558.9s, render: 20ms) +2026-10-18T15:56:35+09:00 GET /api/backend/departments 200 in 12ms +2026-10-18T15:56:35+09:00 GET /login 200 in 25ms (compile: 1792306558.8s, render: 16ms) +2026-10-18T15:56:36+09:00 ➜ Tunnel closed diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/install.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/install.log new file mode 100644 index 00000000..1247a3e5 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/install.log @@ -0,0 +1,17 @@ +2026-10-18T15:52:50+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:52:50+09:00 npm warn deprecated @esbuild-kit/<이메일 생략>: Merged into tsx: <설정된 서버> +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 added 502 packages, and audited 503 packages in 12s +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 156 packages are looking for funding +2026-10-18T15:53:00+09:00 run `npm fund` for details +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 30 vulnerabilities (1 low, 6 moderate, 23 high) +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 To address issues that do not require attention, run: +2026-10-18T15:53:00+09:00 npm audit fix +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 To address all issues (including breaking changes), run: +2026-10-18T15:53:00+09:00 npm audit fix --force +2026-10-18T15:53:00+09:00 +2026-10-18T15:53:00+09:00 Run `npm audit` for details. diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/services.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/services.log new file mode 100644 index 00000000..a27b476f --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/services.log @@ -0,0 +1,598 @@ +2026-10-18T15:53:01+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:53:01+09:00 postgres Pulling +2026-10-18T15:53:01+09:00 valkey Pulling +2026-10-18T15:53:02+09:00 e2de96513ba9 Already exists +2026-10-18T15:53:02+09:00 4831516dd0cb Pulling fs layer +2026-10-18T15:53:02+09:00 9f4a0348ad2e Pulling fs layer +2026-10-18T15:53:02+09:00 6b6aac9d7476 Pulling fs layer +2026-10-18T15:53:02+09:00 d8a310896f84 Pulling fs layer +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Pulling fs layer +2026-10-18T15:53:02+09:00 31b6f2223c4b Pulling fs layer +2026-10-18T15:53:02+09:00 9da35c01411f Pulling fs layer +2026-10-18T15:53:02+09:00 a6809e067bc1 Pulling fs layer +2026-10-18T15:53:02+09:00 10643155f463 Pulling fs layer +2026-10-18T15:53:02+09:00 a7ef49b2a615 Pulling fs layer +2026-10-18T15:53:02+09:00 29d37472e7c3 Pulling fs layer +2026-10-18T15:53:02+09:00 4d2363af1825 Pulling fs layer +2026-10-18T15:53:02+09:00 4a14fbbe260a Pulling fs layer +2026-10-18T15:53:02+09:00 8cced4a98c7e Pulling fs layer +2026-10-18T15:53:02+09:00 4909bfb5f5ed Pulling fs layer +2026-10-18T15:53:02+09:00 3e1ddef0ec36 Pulling fs layer +2026-10-18T15:53:02+09:00 31b6f2223c4b Waiting +2026-10-18T15:53:02+09:00 9da35c01411f Waiting +2026-10-18T15:53:02+09:00 a6809e067bc1 Waiting +2026-10-18T15:53:02+09:00 10643155f463 Waiting +2026-10-18T15:53:02+09:00 a7ef49b2a615 Waiting +2026-10-18T15:53:02+09:00 29d37472e7c3 Waiting +2026-10-18T15:53:02+09:00 4d2363af1825 Waiting +2026-10-18T15:53:02+09:00 4a14fbbe260a Waiting +2026-10-18T15:53:02+09:00 8cced4a98c7e Waiting +2026-10-18T15:53:02+09:00 4909bfb5f5ed Waiting +2026-10-18T15:53:02+09:00 3e1ddef0ec36 Waiting +2026-10-18T15:53:02+09:00 d8a310896f84 Waiting +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Waiting +2026-10-18T15:53:02+09:00 d78be5cc1e53 Pulling fs layer +2026-10-18T15:53:02+09:00 fe2c7735354a Pulling fs layer +2026-10-18T15:53:02+09:00 95121e5a56c0 Pulling fs layer +2026-10-18T15:53:02+09:00 d9f591c70342 Pulling fs layer +2026-10-18T15:53:02+09:00 4f4fb700ef54 Pulling fs layer +2026-10-18T15:53:02+09:00 4ed485d78f72 Pulling fs layer +2026-10-18T15:53:02+09:00 d78be5cc1e53 Waiting +2026-10-18T15:53:02+09:00 fe2c7735354a Waiting +2026-10-18T15:53:02+09:00 95121e5a56c0 Waiting +2026-10-18T15:53:02+09:00 d9f591c70342 Waiting +2026-10-18T15:53:02+09:00 4f4fb700ef54 Waiting +2026-10-18T15:53:02+09:00 4ed485d78f72 Waiting +2026-10-18T15:53:02+09:00 6b6aac9d7476 Downloading [> ] 49.15kB/4.534MB +2026-10-18T15:53:02+09:00 9f4a0348ad2e Downloading [==================================================>] 1.169kB/1.169kB +2026-10-18T15:53:02+09:00 9f4a0348ad2e Verifying Checksum +2026-10-18T15:53:02+09:00 9f4a0348ad2e Download complete +2026-10-18T15:53:02+09:00 4831516dd0cb Downloading [> ] 294.3kB/28.23MB +2026-10-18T15:53:02+09:00 6b6aac9d7476 Downloading [=============================================> ] 4.1MB/4.534MB +2026-10-18T15:53:02+09:00 6b6aac9d7476 Verifying Checksum +2026-10-18T15:53:02+09:00 6b6aac9d7476 Download complete +2026-10-18T15:53:02+09:00 d8a310896f84 Downloading [> ] 16.38kB/1.25MB +2026-10-18T15:53:02+09:00 4831516dd0cb Downloading [================> ] 9.142MB/28.23MB +2026-10-18T15:53:02+09:00 d8a310896f84 Verifying Checksum +2026-10-18T15:53:02+09:00 d8a310896f84 Download complete +2026-10-18T15:53:02+09:00 4831516dd0cb Verifying Checksum +2026-10-18T15:53:02+09:00 4831516dd0cb Download complete +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Downloading [> ] 81.28kB/8.066MB +2026-10-18T15:53:02+09:00 4831516dd0cb Extracting [> ] 294.9kB/28.23MB +2026-10-18T15:53:02+09:00 31b6f2223c4b Downloading [> ] 15.74kB/1.196MB +2026-10-18T15:53:02+09:00 9da35c01411f Downloading [==================================================>] 116B/116B +2026-10-18T15:53:02+09:00 9da35c01411f Download complete +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Downloading [==============================> ] 4.996MB/8.066MB +2026-10-18T15:53:02+09:00 4831516dd0cb Extracting [=============> ] 7.373MB/28.23MB +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Verifying Checksum +2026-10-18T15:53:02+09:00 99bb4ce30ad3 Download complete +2026-10-18T15:53:02+09:00 31b6f2223c4b Verifying Checksum +2026-10-18T15:53:02+09:00 31b6f2223c4b Download complete +2026-10-18T15:53:02+09:00 4831516dd0cb Extracting [======================> ] 12.98MB/28.23MB +2026-10-18T15:53:02+09:00 a6809e067bc1 Downloading [==================================================>] 3.141kB/3.141kB +2026-10-18T15:53:02+09:00 a6809e067bc1 Verifying Checksum +2026-10-18T15:53:02+09:00 a6809e067bc1 Download complete +2026-10-18T15:53:02+09:00 a7ef49b2a615 Downloading [==================================================>] 10.3kB/10.3kB +2026-10-18T15:53:02+09:00 a7ef49b2a615 Verifying Checksum +2026-10-18T15:53:02+09:00 a7ef49b2a615 Download complete +2026-10-18T15:53:02+09:00 10643155f463 Downloading [> ] 539.3kB/112.8MB +2026-10-18T15:53:02+09:00 4831516dd0cb Extracting [=========================================> ] 23.3MB/28.23MB +2026-10-18T15:53:03+09:00 10643155f463 Downloading [=========> ] 22.35MB/112.8MB +2026-10-18T15:53:03+09:00 29d37472e7c3 Downloading [==================================================>] 128B/128B +2026-10-18T15:53:03+09:00 29d37472e7c3 Verifying Checksum +2026-10-18T15:53:03+09:00 29d37472e7c3 Download complete +2026-10-18T15:53:03+09:00 4d2363af1825 Downloading [==================================================>] 168B/168B +2026-10-18T15:53:03+09:00 4d2363af1825 Verifying Checksum +2026-10-18T15:53:03+09:00 4d2363af1825 Download complete +2026-10-18T15:53:03+09:00 4831516dd0cb Extracting [==========================================> ] 23.89MB/28.23MB +2026-10-18T15:53:03+09:00 10643155f463 Downloading [===============================> ] 71.13MB/112.8MB +2026-10-18T15:53:03+09:00 4a14fbbe260a Downloading [==================================================>] 5.84kB/5.84kB +2026-10-18T15:53:03+09:00 4a14fbbe260a Verifying Checksum +2026-10-18T15:53:03+09:00 4a14fbbe260a Download complete +2026-10-18T15:53:03+09:00 8cced4a98c7e Downloading [==================================================>] 186B/186B +2026-10-18T15:53:03+09:00 8cced4a98c7e Verifying Checksum +2026-10-18T15:53:03+09:00 8cced4a98c7e Download complete +2026-10-18T15:53:03+09:00 10643155f463 Verifying Checksum +2026-10-18T15:53:03+09:00 10643155f463 Download complete +2026-10-18T15:53:03+09:00 4831516dd0cb Extracting [================================================> ] 27.13MB/28.23MB +2026-10-18T15:53:03+09:00 4909bfb5f5ed Downloading [======> ] 16.38kB/123.1kB +2026-10-18T15:53:03+09:00 d78be5cc1e53 Downloading [==================================================>] 951B/951B +2026-10-18T15:53:03+09:00 d78be5cc1e53 Verifying Checksum +2026-10-18T15:53:03+09:00 d78be5cc1e53 Download complete +2026-10-18T15:53:03+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:53:03+09:00 d78be5cc1e53 Extracting [==================================================>] 951B/951B +2026-10-18T15:53:03+09:00 4909bfb5f5ed Verifying Checksum +2026-10-18T15:53:03+09:00 4909bfb5f5ed Download complete +2026-10-18T15:53:03+09:00 3e1ddef0ec36 Downloading [> ] 16.38kB/1.451MB +2026-10-18T15:53:03+09:00 4831516dd0cb Extracting [================================================> ] 27.43MB/28.23MB +2026-10-18T15:53:03+09:00 4831516dd0cb Extracting [==================================================>] 28.23MB/28.23MB +2026-10-18T15:53:03+09:00 3e1ddef0ec36 Verifying Checksum +2026-10-18T15:53:03+09:00 3e1ddef0ec36 Download complete +2026-10-18T15:53:03+09:00 d9f591c70342 Downloading [==================================================>] 140B/140B +2026-10-18T15:53:03+09:00 fe2c7735354a Downloading [=> ] 15.79kB/666.5kB +2026-10-18T15:53:03+09:00 d9f591c70342 Verifying Checksum +2026-10-18T15:53:03+09:00 d9f591c70342 Download complete +2026-10-18T15:53:03+09:00 95121e5a56c0 Downloading [> ] 146.9kB/14.29MB +2026-10-18T15:53:03+09:00 4831516dd0cb Pull complete +2026-10-18T15:53:03+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:53:03+09:00 9f4a0348ad2e Extracting [==================================================>] 1.169kB/1.169kB +2026-10-18T15:53:03+09:00 fe2c7735354a Downloading [==========================================> ] 572.8kB/666.5kB +2026-10-18T15:53:03+09:00 fe2c7735354a Downloading [==================================================>] 666.5kB/666.5kB +2026-10-18T15:53:03+09:00 fe2c7735354a Verifying Checksum +2026-10-18T15:53:03+09:00 fe2c7735354a Download complete +2026-10-18T15:53:03+09:00 95121e5a56c0 Downloading [===> ] 1.032MB/14.29MB +2026-10-18T15:53:03+09:00 4f4fb700ef54 Downloading [==================================================>] 32B/32B +2026-10-18T15:53:03+09:00 4f4fb700ef54 Verifying Checksum +2026-10-18T15:53:03+09:00 4f4fb700ef54 Download complete +2026-10-18T15:53:03+09:00 95121e5a56c0 Downloading [==================> ] 5.16MB/14.29MB +2026-10-18T15:53:03+09:00 4ed485d78f72 Download complete +2026-10-18T15:53:03+09:00 95121e5a56c0 Verifying Checksum +2026-10-18T15:53:03+09:00 95121e5a56c0 Download complete +2026-10-18T15:53:07+09:00 9f4a0348ad2e Pull complete +2026-10-18T15:53:07+09:00 d78be5cc1e53 Pull complete +2026-10-18T15:53:07+09:00 6b6aac9d7476 Extracting [> ] 65.54kB/4.534MB +2026-10-18T15:53:07+09:00 fe2c7735354a Extracting [==> ] 32.77kB/666.5kB +2026-10-18T15:53:07+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:53:07+09:00 fe2c7735354a Extracting [==================================================>] 666.5kB/666.5kB +2026-10-18T15:53:07+09:00 6b6aac9d7476 Extracting [==================================================>] 4.534MB/4.534MB +2026-10-18T15:53:08+09:00 6b6aac9d7476 Pull complete +2026-10-18T15:53:08+09:00 fe2c7735354a Pull complete +2026-10-18T15:53:08+09:00 d8a310896f84 Extracting [=> ] 32.77kB/1.25MB +2026-10-18T15:53:08+09:00 95121e5a56c0 Extracting [> ] 163.8kB/14.29MB +2026-10-18T15:53:08+09:00 d8a310896f84 Extracting [==================================================>] 1.25MB/1.25MB +2026-10-18T15:53:08+09:00 d8a310896f84 Pull complete +2026-10-18T15:53:08+09:00 99bb4ce30ad3 Extracting [> ] 98.3kB/8.066MB +2026-10-18T15:53:08+09:00 95121e5a56c0 Extracting [===================> ] 5.571MB/14.29MB +2026-10-18T15:53:08+09:00 99bb4ce30ad3 Extracting [============================> ] 4.522MB/8.066MB +2026-10-18T15:53:08+09:00 95121e5a56c0 Extracting [==================================================>] 14.29MB/14.29MB +2026-10-18T15:53:08+09:00 99bb4ce30ad3 Extracting [======================================> ] 6.291MB/8.066MB +2026-10-18T15:53:08+09:00 99bb4ce30ad3 Extracting [==================================================>] 8.066MB/8.066MB +2026-10-18T15:53:08+09:00 95121e5a56c0 Pull complete +2026-10-18T15:53:08+09:00 99bb4ce30ad3 Pull complete +2026-10-18T15:53:08+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:53:08+09:00 d9f591c70342 Extracting [==================================================>] 140B/140B +2026-10-18T15:53:08+09:00 31b6f2223c4b Extracting [=> ] 32.77kB/1.196MB +2026-10-18T15:53:08+09:00 d9f591c70342 Pull complete +2026-10-18T15:53:08+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:53:08+09:00 4f4fb700ef54 Extracting [==================================================>] 32B/32B +2026-10-18T15:53:08+09:00 4f4fb700ef54 Pull complete +2026-10-18T15:53:08+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:53:08+09:00 4ed485d78f72 Extracting [==================================================>] 668B/668B +2026-10-18T15:53:08+09:00 4ed485d78f72 Pull complete +2026-10-18T15:53:08+09:00 valkey Pulled +2026-10-18T15:53:08+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:53:08+09:00 31b6f2223c4b Extracting [==================================================>] 1.196MB/1.196MB +2026-10-18T15:53:08+09:00 31b6f2223c4b Pull complete +2026-10-18T15:53:08+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:53:08+09:00 9da35c01411f Extracting [==================================================>] 116B/116B +2026-10-18T15:53:08+09:00 9da35c01411f Pull complete +2026-10-18T15:53:08+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:53:08+09:00 a6809e067bc1 Extracting [==================================================>] 3.141kB/3.141kB +2026-10-18T15:53:08+09:00 a6809e067bc1 Pull complete +2026-10-18T15:53:08+09:00 10643155f463 Extracting [> ] 557.1kB/112.8MB +2026-10-18T15:53:08+09:00 10643155f463 Extracting [===> ] 8.913MB/112.8MB +2026-10-18T15:53:08+09:00 10643155f463 Extracting [======> ] 15.6MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [==========> ] 23.4MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [===============> ] 35.09MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [====================> ] 47.35MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [=========================> ] 56.82MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [==============================> ] 67.96MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [===================================> ] 80.77MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [========================================> ] 91.91MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [===========================================> ] 98.6MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [=============================================> ] 102.5MB/112.8MB +2026-10-18T15:53:09+09:00 10643155f463 Extracting [===============================================> ] 107.5MB/112.8MB +2026-10-18T15:53:10+09:00 10643155f463 Extracting [================================================> ] 110.3MB/112.8MB +2026-10-18T15:53:10+09:00 10643155f463 Extracting [=================================================> ] 111.4MB/112.8MB +2026-10-18T15:53:10+09:00 10643155f463 Extracting [==================================================>] 112.8MB/112.8MB +2026-10-18T15:53:11+09:00 10643155f463 Pull complete +2026-10-18T15:53:11+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:53:11+09:00 a7ef49b2a615 Extracting [==================================================>] 10.3kB/10.3kB +2026-10-18T15:53:11+09:00 a7ef49b2a615 Pull complete +2026-10-18T15:53:11+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:53:11+09:00 29d37472e7c3 Extracting [==================================================>] 128B/128B +2026-10-18T15:53:11+09:00 29d37472e7c3 Pull complete +2026-10-18T15:53:11+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:53:11+09:00 4d2363af1825 Extracting [==================================================>] 168B/168B +2026-10-18T15:53:11+09:00 4d2363af1825 Pull complete +2026-10-18T15:53:11+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:53:11+09:00 4a14fbbe260a Extracting [==================================================>] 5.84kB/5.84kB +2026-10-18T15:53:11+09:00 4a14fbbe260a Pull complete +2026-10-18T15:53:11+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:53:11+09:00 8cced4a98c7e Extracting [==================================================>] 186B/186B +2026-10-18T15:53:11+09:00 8cced4a98c7e Pull complete +2026-10-18T15:53:11+09:00 4909bfb5f5ed Extracting [=============> ] 32.77kB/123.1kB +2026-10-18T15:53:11+09:00 4909bfb5f5ed Extracting [==================================================>] 123.1kB/123.1kB +2026-10-18T15:53:12+09:00 4909bfb5f5ed Pull complete +2026-10-18T15:53:12+09:00 3e1ddef0ec36 Extracting [=> ] 32.77kB/1.451MB +2026-10-18T15:53:12+09:00 3e1ddef0ec36 Extracting [==================================================>] 1.451MB/1.451MB +2026-10-18T15:53:12+09:00 3e1ddef0ec36 Pull complete +2026-10-18T15:53:12+09:00 postgres Pulled +2026-10-18T15:53:12+09:00 #1 [internal] load local bake definitions +2026-10-18T15:53:12+09:00 #1 reading from stdin 449B done +2026-10-18T15:53:12+09:00 #1 DONE 0.0s +2026-10-18T15:53:12+09:00 +2026-10-18T15:53:12+09:00 #2 [internal] load build definition from Dockerfile +2026-10-18T15:53:12+09:00 #2 transferring dockerfile: 500B done +2026-10-18T15:53:12+09:00 #2 DONE 0.0s +2026-10-18T15:53:12+09:00 +2026-10-18T15:53:12+09:00 #3 [auth] library/python:pull token for registry-1.docker.io +2026-10-18T15:53:12+09:00 #3 DONE 0.0s +2026-10-18T15:53:12+09:00 +2026-10-18T15:53:12+09:00 #4 [internal] load metadata for docker.io/library/python:3.11-slim +2026-10-18T15:53:12+09:00 #4 DONE 0.6s +2026-10-18T15:53:13+09:00 +2026-10-18T15:53:13+09:00 #5 [internal] load .dockerignore +2026-10-18T15:53:13+09:00 #5 transferring context: 2B done +2026-10-18T15:53:13+09:00 #5 DONE 0.0s +2026-10-18T15:53:13+09:00 +2026-10-18T15:53:13+09:00 #6 [internal] load build context +2026-10-18T15:53:13+09:00 #6 transferring context: 16.83kB done +2026-10-18T15:53:13+09:00 #6 DONE 0.0s +2026-10-18T15:53:13+09:00 +2026-10-18T15:53:13+09:00 #7 [1/8] FROM docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce +2026-10-18T15:53:13+09:00 #7 resolve docker.io/library/python:3.11-slim@sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce done +2026-10-18T15:53:13+09:00 #7 sha256:e88e9763f943ec1834f992a4b51e0f24500486803e8bc534e5767af9ea65f6ce 10.37kB / 10.37kB done +2026-10-18T15:53:13+09:00 #7 sha256:e529028263dbe6910a2d96f7d2b8f5266385e917fd45d286ef166977c094a51e 1.75kB / 1.75kB done +2026-10-18T15:53:13+09:00 #7 sha256:541096ae9b05d3b850341b78790e2ed31e94d5aa0ea086933c6ff0c09ffa2e63 5.49kB / 5.49kB done +2026-10-18T15:53:13+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0B / 29.84MB 0.1s +2026-10-18T15:53:13+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0B / 1.29MB 0.1s +2026-10-18T15:53:13+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0B / 14.46MB 0.1s +2026-10-18T15:53:13+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 11.53MB / 29.84MB 0.2s +2026-10-18T15:53:13+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.3s +2026-10-18T15:53:13+09:00 #7 sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 1.29MB / 1.29MB 0.2s done +2026-10-18T15:53:13+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.3s +2026-10-18T15:53:13+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 250B / 250B 0.3s +2026-10-18T15:53:13+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e +2026-10-18T15:53:13+09:00 #7 sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 29.84MB / 29.84MB 0.5s done +2026-10-18T15:53:13+09:00 #7 sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 14.46MB / 14.46MB 0.5s done +2026-10-18T15:53:13+09:00 #7 sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d 250B / 250B 0.4s done +2026-10-18T15:53:14+09:00 #7 extracting sha256:ecc510c1e359bdc007b39802570bb7e4dec7d6ebccf357c3201a74299113e05e 0.6s done +2026-10-18T15:53:14+09:00 #7 extracting sha256:0f752a1982d6f819fc2c9e78ac1514c63f2f2e1dec7885ffd4cb6809ba4a26ca 0.1s done +2026-10-18T15:53:14+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 +2026-10-18T15:53:15+09:00 #7 extracting sha256:759a7f30c31818dda4c97b407b24d93da479c306568d185ced927e1a749164f1 0.4s done +2026-10-18T15:53:15+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d +2026-10-18T15:53:15+09:00 #7 extracting sha256:496c1a902b3a93cea3e54b90b79dbcaa0e58ad90c3fe9dd0a43c9557dc47f17d done +2026-10-18T15:53:15+09:00 #7 DONE 2.5s +2026-10-18T15:53:15+09:00 +2026-10-18T15:53:15+09:00 #8 [2/8] WORKDIR /app +2026-10-18T15:53:15+09:00 #8 DONE 0.0s +2026-10-18T15:53:15+09:00 +2026-10-18T15:53:15+09:00 #9 [3/8] COPY requirements.txt . +2026-10-18T15:53:15+09:00 #9 DONE 0.0s +2026-10-18T15:53:15+09:00 +2026-10-18T15:53:15+09:00 #10 [4/8] RUN pip install --no-cache-dir -r requirements.txt +2026-10-18T15:53:16+09:00 #10 1.137 Looking in indexes: <설정된 서버> <설정된 서버> +2026-10-18T15:53:16+09:00 #10 1.138 Ignoring torch: markers 'sys_platform != "linux" or platform_machine != "x86_64"' don't match your environment +2026-10-18T15:53:16+09:00 #10 1.487 Collecting fastapi==0.115.0 (from -r requirements.txt (line 4)) +2026-10-18T15:53:17+09:00 #10 1.543 Downloading fastapi-0.115.0-py3-none-any.whl.metadata (27 kB) +2026-10-18T15:53:17+09:00 #10 1.625 Collecting uvicorn==0.30.6 (from -r requirements.txt (line 5)) +2026-10-18T15:53:17+09:00 #10 1.636 Downloading uvicorn-0.30.6-py3-none-any.whl.metadata (6.6 kB) +2026-10-18T15:53:17+09:00 #10 1.700 Collecting FlagEmbedding==1.2.11 (from -r requirements.txt (line 6)) +2026-10-18T15:53:17+09:00 #10 1.711 Downloading FlagEmbedding-1.2.11.tar.gz (147 kB) +2026-10-18T15:53:17+09:00 #10 1.724 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.1/147.1 kB 12.0 MB/s eta 0:00:00 +2026-10-18T15:53:17+09:00 #10 1.739 Preparing metadata (setup.py): started +2026-10-18T15:53:17+09:00 #10 1.986 Preparing metadata (setup.py): finished with status 'done' +2026-10-18T15:53:17+09:00 #10 2.144 Collecting torch==2.4.1+cpu (from -r requirements.txt (line 9)) +2026-10-18T15:53:17+09:00 #10 2.184 Downloading <설정된 서버> (194.9 MB) +2026-10-18T15:53:18+09:00 #10 2.974 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.9/194.9 MB 341.0 MB/s eta 0:00:00 +2026-10-18T15:53:18+09:00 #10 3.248 Collecting transformers==4.44.2 (from -r requirements.txt (line 11)) +2026-10-18T15:53:18+09:00 #10 3.258 Downloading transformers-4.44.2-py3-none-any.whl.metadata (43 kB) +2026-10-18T15:53:18+09:00 #10 3.260 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 kB 438.8 MB/s eta 0:00:00 +2026-10-18T15:53:18+09:00 #10 3.333 Collecting peft==0.12.0 (from -r requirements.txt (line 12)) +2026-10-18T15:53:18+09:00 #10 3.344 Downloading peft-0.12.0-py3-none-any.whl.metadata (13 kB) +2026-10-18T15:53:19+09:00 #10 3.758 Collecting numpy==1.26.4 (from -r requirements.txt (line 13)) +2026-10-18T15:53:19+09:00 #10 3.768 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB) +2026-10-18T15:53:19+09:00 #10 3.770 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 390.3 MB/s eta 0:00:00 +2026-10-18T15:53:19+09:00 #10 3.927 Collecting pyarrow==21.0.0 (from -r requirements.txt (line 15)) +2026-10-18T15:53:19+09:00 #10 3.937 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.3 kB) +2026-10-18T15:53:19+09:00 #10 4.021 Collecting starlette<0.39.0,>=0.37.2 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:19+09:00 #10 4.030 Downloading starlette-0.38.6-py3-none-any.whl.metadata (6.0 kB) +2026-10-18T15:53:19+09:00 #10 4.184 Collecting pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:19+09:00 #10 4.194 Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB) +2026-10-18T15:53:19+09:00 #10 4.197 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.0/133.0 kB 76.2 MB/s eta 0:00:00 +2026-10-18T15:53:19+09:00 #10 4.244 Collecting typing-extensions>=4.8.0 (from fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:19+09:00 #10 4.253 Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB) +2026-10-18T15:53:19+09:00 #10 4.360 Collecting click>=7.0 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:53:19+09:00 #10 4.370 Downloading click-8.5.0-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:53:19+09:00 #10 4.435 Collecting h11>=0.8 (from uvicorn==0.30.6->-r requirements.txt (line 5)) +2026-10-18T15:53:19+09:00 #10 4.444 Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) +2026-10-18T15:53:19+09:00 #10 4.524 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:20+09:00 #10 4.534 Downloading datasets-5.1.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:53:20+09:00 #10 4.608 Collecting accelerate>=0.20.1 (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:20+09:00 #10 4.619 Downloading accelerate-1.15.0-py3-none-any.whl.metadata (19 kB) +2026-10-18T15:53:20+09:00 #10 4.683 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:20+09:00 #10 4.693 Downloading sentence_transformers-6.1.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:53:20+09:00 #10 4.751 Collecting filelock (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:20+09:00 #10 4.760 Downloading filelock-4.2.1-py3-none-any.whl.metadata (2.0 kB) +2026-10-18T15:53:20+09:00 #10 4.864 Collecting sympy (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:20+09:00 #10 4.875 Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB) +2026-10-18T15:53:20+09:00 #10 4.928 Collecting networkx (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:20+09:00 #10 4.938 Downloading networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB) +2026-10-18T15:53:20+09:00 #10 4.979 Collecting jinja2 (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:20+09:00 #10 4.992 Downloading <설정된 서버> (2.9 kB) +2026-10-18T15:53:20+09:00 #10 5.044 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:20+09:00 #10 5.054 Downloading fsspec-2026.9.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:53:20+09:00 #10 5.242 Collecting huggingface-hub<1.0,>=0.23.2 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:20+09:00 #10 5.252 Downloading huggingface_hub-0.36.2-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:53:20+09:00 #10 5.262 Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/site-packages (from transformers==4.44.2->-r requirements.txt (line 11)) (26.3) +2026-10-18T15:53:20+09:00 #10 5.339 Collecting pyyaml>=5.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:20+09:00 #10 5.349 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) +2026-10-18T15:53:21+09:00 #10 5.754 Collecting regex!=2019.12.17 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:21+09:00 #10 5.764 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) +2026-10-18T15:53:21+09:00 #10 5.766 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 kB 350.0 MB/s eta 0:00:00 +2026-10-18T15:53:21+09:00 #10 5.812 Collecting requests (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:21+09:00 #10 5.822 Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) +2026-10-18T15:53:21+09:00 #10 5.952 Collecting safetensors>=0.4.1 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:21+09:00 #10 5.962 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) +2026-10-18T15:53:21+09:00 #10 6.243 Collecting tokenizers<0.20,>=0.19 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:21+09:00 #10 6.253 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB) +2026-10-18T15:53:21+09:00 #10 6.309 Collecting tqdm>=4.27 (from transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:21+09:00 #10 6.319 Downloading tqdm-4.70.1-py3-none-any.whl.metadata (57 kB) +2026-10-18T15:53:21+09:00 #10 6.320 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.4/57.4 kB 451.6 MB/s eta 0:00:00 +2026-10-18T15:53:21+09:00 #10 6.431 Collecting psutil (from peft==0.12.0->-r requirements.txt (line 12)) +2026-10-18T15:53:22+09:00 #10 6.441 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) +2026-10-18T15:53:22+09:00 #10 6.629 Collecting hf-xet<2.0.0,>=1.1.3 (from huggingface-hub<1.0,>=0.23.2->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:22+09:00 #10 6.639 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB) +2026-10-18T15:53:22+09:00 #10 6.752 Collecting annotated-types>=0.6.0 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:22+09:00 #10 6.762 Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:53:22+09:00 #10 7.383 Collecting pydantic-core==2.50.1 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:23+09:00 #10 7.394 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB) +2026-10-18T15:53:23+09:00 #10 7.461 Collecting typing-inspection>=0.4.4 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:23+09:00 #10 7.471 Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB) +2026-10-18T15:53:23+09:00 #10 7.562 Collecting anyio<5,>=3.4.0 (from starlette<0.39.0,>=0.37.2->fastapi==0.115.0->-r requirements.txt (line 4)) +2026-10-18T15:53:23+09:00 #10 7.572 Downloading anyio-4.15.1-py3-none-any.whl.metadata (4.7 kB) +2026-10-18T15:53:23+09:00 #10 7.650 INFO: pip is looking at multiple versions of datasets to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:53:23+09:00 #10 7.654 Collecting datasets (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 7.664 Downloading datasets-5.0.1-py3-none-any.whl.metadata (23 kB) +2026-10-18T15:53:23+09:00 #10 7.824 Collecting dill<0.4.2,>=0.3.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 7.833 Downloading dill-0.4.1-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:53:23+09:00 #10 7.966 Collecting pandas (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 7.976 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB) +2026-10-18T15:53:23+09:00 #10 7.978 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.5/79.5 kB 530.9 MB/s eta 0:00:00 +2026-10-18T15:53:23+09:00 #10 8.065 Collecting httpx<1.0.0 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 8.074 Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:53:23+09:00 #10 8.381 Collecting xxhash (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 8.391 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (17 kB) +2026-10-18T15:53:23+09:00 #10 8.465 Collecting multiprocess<0.70.20 (from datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:23+09:00 #10 8.475 Downloading multiprocess-0.70.19-py311-none-any.whl.metadata (7.5 kB) +2026-10-18T15:53:23+09:00 #10 8.488 Collecting fsspec (from torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:24+09:00 #10 8.498 Downloading fsspec-2026.6.0-py3-none-any.whl.metadata (10 kB) +2026-10-18T15:53:24+09:00 #10 8.656 Collecting charset_normalizer<4,>=2 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:24+09:00 #10 8.666 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (46 kB) +2026-10-18T15:53:24+09:00 #10 8.668 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.4/46.4 kB 420.5 MB/s eta 0:00:00 +2026-10-18T15:53:24+09:00 #10 8.712 Collecting idna<4,>=2.5 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:24+09:00 #10 8.722 Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB) +2026-10-18T15:53:24+09:00 #10 8.771 Collecting urllib3<3,>=1.26 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:24+09:00 #10 8.781 Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB) +2026-10-18T15:53:24+09:00 #10 8.821 Collecting certifi>=2023.5.7 (from requests->transformers==4.44.2->-r requirements.txt (line 11)) +2026-10-18T15:53:24+09:00 #10 8.831 Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) +2026-10-18T15:53:24+09:00 #10 8.903 Collecting MarkupSafe>=2.0 (from jinja2->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:24+09:00 #10 8.913 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) +2026-10-18T15:53:24+09:00 #10 8.964 INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while. +2026-10-18T15:53:24+09:00 #10 8.967 Collecting sentence_transformers (from FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:24+09:00 #10 8.978 Downloading sentence_transformers-6.0.1-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:53:24+09:00 #10 9.000 Downloading sentence_transformers-6.0.0-py3-none-any.whl.metadata (20 kB) +2026-10-18T15:53:24+09:00 #10 9.021 Downloading sentence_transformers-5.7.0-py3-none-any.whl.metadata (18 kB) +2026-10-18T15:53:24+09:00 #10 9.174 Collecting scikit-learn>=0.22.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:24+09:00 #10 9.184 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.3 kB) +2026-10-18T15:53:24+09:00 #10 9.324 Collecting scipy>=1.0.0 (from sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:25+09:00 #10 9.334 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) +2026-10-18T15:53:25+09:00 #10 9.336 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 kB 463.4 MB/s eta 0:00:00 +2026-10-18T15:53:25+09:00 #10 9.396 Collecting mpmath<1.4,>=1.1.0 (from sympy->torch==2.4.1+cpu->-r requirements.txt (line 9)) +2026-10-18T15:53:25+09:00 #10 9.406 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB) +2026-10-18T15:53:25+09:00 #10 10.02 Collecting aiohttp!=4.0.0a0,!=4.0.0a1 (from fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:25+09:00 #10 10.03 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (8.3 kB) +2026-10-18T15:53:25+09:00 #10 10.11 Collecting httpcore==1.* (from httpx<1.0.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:25+09:00 #10 10.12 Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB) +2026-10-18T15:53:25+09:00 #10 10.24 Collecting joblib>=1.4.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:25+09:00 #10 10.25 Downloading joblib-1.6.0-py3-none-any.whl.metadata (6.5 kB) +2026-10-18T15:53:25+09:00 #10 10.34 Collecting narwhals>=2.0.1 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.35 Downloading narwhals-2.27.1-py3-none-any.whl.metadata (15 kB) +2026-10-18T15:53:26+09:00 #10 10.42 Collecting threadpoolctl>=3.5.0 (from scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.43 Downloading threadpoolctl-3.7.0-py3-none-any.whl.metadata (24 kB) +2026-10-18T15:53:26+09:00 #10 10.57 Collecting python-dateutil>=2.8.2 (from pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.58 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) +2026-10-18T15:53:26+09:00 #10 10.66 Collecting aiohappyeyeballs>=2.5.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.67 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl.metadata (5.9 kB) +2026-10-18T15:53:26+09:00 #10 10.74 Collecting aiosignal>=1.4.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.75 Downloading aiosignal-1.4.0-py3-none-any.whl.metadata (3.7 kB) +2026-10-18T15:53:26+09:00 #10 10.81 Collecting attrs>=17.3.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.82 Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB) +2026-10-18T15:53:26+09:00 #10 10.91 Collecting frozenlist>=1.1.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 10.92 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (20 kB) +2026-10-18T15:53:26+09:00 #10 11.14 Collecting multidict<8.0,>=4.5 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:26+09:00 #10 11.15 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (6.2 kB) +2026-10-18T15:53:27+09:00 #10 11.54 Collecting propcache>=0.2.0 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:27+09:00 #10 11.55 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (25 kB) +2026-10-18T15:53:27+09:00 #10 11.78 Collecting yarl<2.0,>=1.25.1 (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2026.6.0,>=2023.1.0->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:27+09:00 #10 11.79 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (111 kB) +2026-10-18T15:53:27+09:00 #10 11.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.6/111.6 kB 551.7 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 11.87 Collecting cloudpickle>=3.0 (from joblib>=1.4.0->scikit-learn>=0.22.0->sentence_transformers->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:27+09:00 #10 11.88 Downloading cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB) +2026-10-18T15:53:27+09:00 #10 11.97 Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->datasets->FlagEmbedding==1.2.11->-r requirements.txt (line 6)) +2026-10-18T15:53:27+09:00 #10 11.98 Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) +2026-10-18T15:53:27+09:00 #10 12.06 Downloading fastapi-0.115.0-py3-none-any.whl (94 kB) +2026-10-18T15:53:27+09:00 #10 12.06 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.6/94.6 kB 504.3 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.07 Downloading uvicorn-0.30.6-py3-none-any.whl (62 kB) +2026-10-18T15:53:27+09:00 #10 12.08 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 452.9 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.09 Downloading transformers-4.44.2-py3-none-any.whl (9.5 MB) +2026-10-18T15:53:27+09:00 #10 12.16 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 137.0 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.17 Downloading peft-0.12.0-py3-none-any.whl (296 kB) +2026-10-18T15:53:27+09:00 #10 12.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 296.4/296.4 kB 333.6 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.18 Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB) +2026-10-18T15:53:27+09:00 #10 12.23 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 448.3 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.24 Downloading pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (42.8 MB) +2026-10-18T15:53:27+09:00 #10 12.32 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 559.6 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.33 Downloading accelerate-1.15.0-py3-none-any.whl (394 kB) +2026-10-18T15:53:27+09:00 #10 12.33 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.3/394.3 kB 627.0 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.34 Downloading click-8.5.0-py3-none-any.whl (125 kB) +2026-10-18T15:53:27+09:00 #10 12.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.3/125.3 kB 609.4 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.36 Downloading h11-0.16.0-py3-none-any.whl (37 kB) +2026-10-18T15:53:27+09:00 #10 12.37 Downloading huggingface_hub-0.36.2-py3-none-any.whl (566 kB) +2026-10-18T15:53:27+09:00 #10 12.37 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 566.4/566.4 kB 670.0 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.38 Downloading pydantic-2.14.1-py3-none-any.whl (488 kB) +2026-10-18T15:53:27+09:00 #10 12.38 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 488.1/488.1 kB 652.9 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.39 Downloading pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB) +2026-10-18T15:53:27+09:00 #10 12.40 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 612.5 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.41 Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) +2026-10-18T15:53:27+09:00 #10 12.41 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 676.0 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.42 Downloading regex-2026.9.29-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (804 kB) +2026-10-18T15:53:27+09:00 #10 12.42 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 805.0/805.0 kB 653.7 MB/s eta 0:00:00 +2026-10-18T15:53:27+09:00 #10 12.43 Downloading safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (516 kB) +2026-10-18T15:53:28+09:00 #10 12.43 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 516.0/516.0 kB 545.8 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.44 Downloading starlette-0.38.6-py3-none-any.whl (71 kB) +2026-10-18T15:53:28+09:00 #10 12.45 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.5/71.5 kB 476.8 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.46 Downloading tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB) +2026-10-18T15:53:28+09:00 #10 12.47 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 480.9 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.48 Downloading tqdm-4.70.1-py3-none-any.whl (80 kB) +2026-10-18T15:53:28+09:00 #10 12.48 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 505.7 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.49 Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB) +2026-10-18T15:53:28+09:00 #10 12.49 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.6/45.6 kB 419.4 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.50 Downloading datasets-5.0.1-py3-none-any.whl (559 kB) +2026-10-18T15:53:28+09:00 #10 12.50 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 559.1/559.1 kB 634.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.51 Downloading fsspec-2026.6.0-py3-none-any.whl (203 kB) +2026-10-18T15:53:28+09:00 #10 12.52 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 203.9/203.9 kB 526.7 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.53 Downloading requests-2.34.2-py3-none-any.whl (73 kB) +2026-10-18T15:53:28+09:00 #10 12.53 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 476.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.54 Downloading filelock-4.2.1-py3-none-any.whl (162 kB) +2026-10-18T15:53:28+09:00 #10 12.54 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 420.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.55 Downloading <설정된 서버> (134 kB) +2026-10-18T15:53:28+09:00 #10 12.56 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 507.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.57 Downloading networkx-3.6.1-py3-none-any.whl (2.1 MB) +2026-10-18T15:53:28+09:00 #10 12.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 569.9 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.58 Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) +2026-10-18T15:53:28+09:00 #10 12.58 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.6/155.6 kB 590.6 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.59 Downloading sentence_transformers-5.7.0-py3-none-any.whl (611 kB) +2026-10-18T15:53:28+09:00 #10 12.60 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 611.3/611.3 kB 516.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.61 Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB) +2026-10-18T15:53:28+09:00 #10 12.62 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 611.8 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.63 Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB) +2026-10-18T15:53:28+09:00 #10 12.64 Downloading anyio-4.15.1-py3-none-any.whl (132 kB) +2026-10-18T15:53:28+09:00 #10 12.64 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.1/132.1 kB 565.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.65 Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) +2026-10-18T15:53:28+09:00 #10 12.65 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.0/137.0 kB 507.0 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.66 Downloading charset_normalizer-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (269 kB) +2026-10-18T15:53:28+09:00 #10 12.66 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 270.0/270.0 kB 574.1 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.67 Downloading dill-0.4.1-py3-none-any.whl (120 kB) +2026-10-18T15:53:28+09:00 #10 12.68 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.0/120.0 kB 533.1 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.69 Downloading hf_xet-1.7.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.2 MB) +2026-10-18T15:53:28+09:00 #10 12.70 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 558.0 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.71 Downloading httpx-0.28.1-py3-none-any.whl (73 kB) +2026-10-18T15:53:28+09:00 #10 12.71 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.5/73.5 kB 491.8 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.72 Downloading httpcore-1.0.9-py3-none-any.whl (78 kB) +2026-10-18T15:53:28+09:00 #10 12.72 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.8/78.8 kB 522.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.73 Downloading idna-3.20-py3-none-any.whl (69 kB) +2026-10-18T15:53:28+09:00 #10 12.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.6/69.6 kB 501.6 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.74 Downloading markupsafe-3.0.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) +2026-10-18T15:53:28+09:00 #10 12.75 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB) +2026-10-18T15:53:28+09:00 #10 12.75 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 557.9 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.76 Downloading multiprocess-0.70.19-py311-none-any.whl (144 kB) +2026-10-18T15:53:28+09:00 #10 12.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.5/144.5 kB 557.8 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.77 Downloading scikit_learn-1.9.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.3 MB) +2026-10-18T15:53:28+09:00 #10 12.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 633.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.80 Downloading scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.3 MB) +2026-10-18T15:53:28+09:00 #10 12.86 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.3/35.3 MB 660.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.87 Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB) +2026-10-18T15:53:28+09:00 #10 12.88 Downloading urllib3-2.8.0-py3-none-any.whl (135 kB) +2026-10-18T15:53:28+09:00 #10 12.89 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.7/135.7 kB 561.7 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.90 Downloading pandas-3.0.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.1 MB) +2026-10-18T15:53:28+09:00 #10 12.92 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.1/11.1 MB 555.6 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.93 Downloading xxhash-4.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (261 kB) +2026-10-18T15:53:28+09:00 #10 12.93 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 261.0/261.0 kB 631.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.94 Downloading aiohttp-3.14.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB) +2026-10-18T15:53:28+09:00 #10 12.94 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 674.9 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.95 Downloading joblib-1.6.0-py3-none-any.whl (306 kB) +2026-10-18T15:53:28+09:00 #10 12.96 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 306.1/306.1 kB 629.3 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.97 Downloading narwhals-2.27.1-py3-none-any.whl (483 kB) +2026-10-18T15:53:28+09:00 #10 12.97 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 483.2/483.2 kB 618.6 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.98 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) +2026-10-18T15:53:28+09:00 #10 12.98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 596.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 12.99 Downloading threadpoolctl-3.7.0-py3-none-any.whl (26 kB) +2026-10-18T15:53:28+09:00 #10 13.00 Downloading aiohappyeyeballs-2.7.1-py3-none-any.whl (15 kB) +2026-10-18T15:53:28+09:00 #10 13.01 Downloading aiosignal-1.4.0-py3-none-any.whl (7.5 kB) +2026-10-18T15:53:28+09:00 #10 13.02 Downloading attrs-26.1.0-py3-none-any.whl (67 kB) +2026-10-18T15:53:28+09:00 #10 13.02 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.5/67.5 kB 472.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 13.03 Downloading cloudpickle-3.1.2-py3-none-any.whl (22 kB) +2026-10-18T15:53:28+09:00 #10 13.04 Downloading frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (231 kB) +2026-10-18T15:53:28+09:00 #10 13.05 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.1/231.1 kB 584.0 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 13.06 Downloading multidict-7.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (480 kB) +2026-10-18T15:53:28+09:00 #10 13.06 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 480.4/480.4 kB 631.7 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 13.07 Downloading propcache-0.5.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (235 kB) +2026-10-18T15:53:28+09:00 #10 13.07 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.4/235.4 kB 578.4 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 13.08 Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) +2026-10-18T15:53:28+09:00 #10 13.09 Downloading yarl-1.25.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (117 kB) +2026-10-18T15:53:28+09:00 #10 13.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.7/117.7 kB 500.5 MB/s eta 0:00:00 +2026-10-18T15:53:28+09:00 #10 13.25 Building wheels for collected packages: FlagEmbedding +2026-10-18T15:53:28+09:00 #10 13.26 Building wheel for FlagEmbedding (setup.py): started +2026-10-18T15:53:28+09:00 #10 13.43 Building wheel for FlagEmbedding (setup.py): finished with status 'done' +2026-10-18T15:53:29+09:00 #10 13.43 Created wheel for FlagEmbedding: filename=flagembedding-1.2.11-py3-none-any.whl size=171233 sha256=f922ad34ddd1546f80e6a06ae3bc810fc496131233cb63f13c3b53783cb79a52 +2026-10-18T15:53:29+09:00 #10 13.43 Stored in directory: /tmp/pip-ephem-wheel-cache-i4dt6i3r/wheels/cc/30/56/331f855b95583721e80ba4d5630f701387dcade9d050c88d9d +2026-10-18T15:53:29+09:00 #10 13.43 Successfully built FlagEmbedding +2026-10-18T15:53:29+09:00 #10 13.92 Installing collected packages: mpmath, xxhash, urllib3, typing-extensions, tqdm, threadpoolctl, sympy, six, safetensors, regex, pyyaml, pyarrow, psutil, propcache, numpy, networkx, narwhals, multidict, MarkupSafe, idna, hf-xet, h11, fsspec, frozenlist, filelock, dill, cloudpickle, click, charset_normalizer, certifi, attrs, annotated-types, aiohappyeyeballs, yarl, uvicorn, typing-inspection, scipy, requests, python-dateutil, pydantic-core, multiprocess, joblib, jinja2, httpcore, anyio, aiosignal, torch, starlette, scikit-learn, pydantic, pandas, huggingface-hub, httpx, aiohttp, tokenizers, fastapi, accelerate, transformers, datasets, sentence_transformers, peft, FlagEmbedding +2026-10-18T15:53:53+09:00 #10 38.03 Successfully installed FlagEmbedding-1.2.11 MarkupSafe-3.0.4 accelerate-1.15.0 aiohappyeyeballs-2.7.1 aiohttp-3.14.5 aiosignal-1.4.0 annotated-types-0.8.0 anyio-4.15.1 attrs-26.1.0 certifi-2026.7.22 charset_normalizer-3.5.2 click-8.5.0 cloudpickle-3.1.2 datasets-5.0.1 dill-0.4.1 fastapi-0.115.0 filelock-4.2.1 frozenlist-1.8.0 fsspec-2026.6.0 h11-0.16.0 hf-xet-1.7.0 httpcore-1.0.9 httpx-0.28.1 huggingface-hub-0.36.2 idna-3.20 jinja2-3.1.6 joblib-1.6.0 mpmath-1.3.0 multidict-7.1.0 multiprocess-0.70.19 narwhals-2.27.1 networkx-3.6.1 numpy-1.26.4 pandas-3.0.6 peft-0.12.0 propcache-0.5.4 psutil-7.2.2 pyarrow-21.0.0 pydantic-2.14.1 pydantic-core-2.50.1 python-dateutil-2.9.0.post0 pyyaml-6.0.3 regex-2026.9.29 requests-2.34.2 safetensors-0.8.0 scikit-learn-1.9.1 scipy-1.17.1 sentence_transformers-5.7.0 six-1.17.0 starlette-0.38.6 sympy-1.14.0 threadpoolctl-3.7.0 tokenizers-0.19.1 torch-2.4.1+cpu tqdm-4.70.1 transformers-4.44.2 typing-extensions-4.16.0 typing-inspection-0.4.4 urllib3-2.8.0 uvicorn-0.30.6 xxhash-4.0.1 yarl-1.25.1 +2026-10-18T15:53:53+09:00 #10 38.03 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:53:53+09:00 #10 38.12 +2026-10-18T15:53:53+09:00 #10 38.12 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:53:53+09:00 #10 38.12 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:53:59+09:00 #10 DONE 44.1s +2026-10-18T15:53:59+09:00 +2026-10-18T15:53:59+09:00 #11 [5/8] COPY requirements-observability.txt . +2026-10-18T15:53:59+09:00 #11 DONE 0.0s +2026-10-18T15:53:59+09:00 +2026-10-18T15:53:59+09:00 #12 [6/8] RUN pip install --no-cache-dir -r requirements-observability.txt +2026-10-18T15:54:00+09:00 #12 0.423 Collecting prometheus-client==0.25.0 (from -r requirements-observability.txt (line 1)) +2026-10-18T15:54:00+09:00 #12 0.459 Downloading prometheus_client-0.25.0-py3-none-any.whl.metadata (2.1 kB) +2026-10-18T15:54:00+09:00 #12 0.472 Downloading prometheus_client-0.25.0-py3-none-any.whl (64 kB) +2026-10-18T15:54:00+09:00 #12 0.483 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.2/64.2 kB 5.9 MB/s eta 0:00:00 +2026-10-18T15:54:00+09:00 #12 0.921 Installing collected packages: prometheus-client +2026-10-18T15:54:00+09:00 #12 0.953 Successfully installed prometheus-client-0.25.0 +2026-10-18T15:54:00+09:00 #12 0.953 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <설정된 서버> +2026-10-18T15:54:00+09:00 #12 1.046 +2026-10-18T15:54:00+09:00 #12 1.046 [notice] A new release of pip is available: 24.0 -> 26.2.1 +2026-10-18T15:54:00+09:00 #12 1.046 [notice] To update, run: pip install --upgrade pip +2026-10-18T15:54:00+09:00 #12 DONE 1.1s +2026-10-18T15:54:00+09:00 +2026-10-18T15:54:00+09:00 #13 [7/8] RUN python -c "from FlagEmbedding import BGEM3FlagModel" +2026-10-18T15:54:04+09:00 #13 DONE 3.4s +2026-10-18T15:54:04+09:00 +2026-10-18T15:54:04+09:00 #14 [8/8] COPY main.py . +2026-10-18T15:54:04+09:00 #14 DONE 0.0s +2026-10-18T15:54:04+09:00 +2026-10-18T15:54:04+09:00 #15 exporting to image +2026-10-18T15:54:04+09:00 #15 exporting layers +2026-10-18T15:54:09+09:00 #15 exporting layers 5.6s done +2026-10-18T15:54:09+09:00 #15 writing image sha256:feb0f015f5224520476af5b8f7df0296808d98591a9363c3bf4c940f7b667bf6 done +2026-10-18T15:54:09+09:00 #15 naming to docker.io/library/docgrid-embedding-server done +2026-10-18T15:54:09+09:00 #15 DONE 5.6s +2026-10-18T15:54:09+09:00 +2026-10-18T15:54:09+09:00 #16 resolving provenance for metadata file +2026-10-18T15:54:09+09:00 #16 DONE 0.0s +2026-10-18T15:54:09+09:00 embedding-server Built +2026-10-18T15:54:09+09:00 Network docgrid_docgrid-local Creating +2026-10-18T15:54:09+09:00 Network docgrid_docgrid-local Created +2026-10-18T15:54:09+09:00 Volume "docgrid_valkey-data" Creating +2026-10-18T15:54:09+09:00 Volume "docgrid_valkey-data" Created +2026-10-18T15:54:09+09:00 Volume "docgrid_postgres17_data" Creating +2026-10-18T15:54:09+09:00 Volume "docgrid_postgres17_data" Created +2026-10-18T15:54:09+09:00 Volume "docgrid_huggingface-cache" Creating +2026-10-18T15:54:09+09:00 Volume "docgrid_huggingface-cache" Created +2026-10-18T15:54:09+09:00 Container docgrid-valkey Creating +2026-10-18T15:54:09+09:00 Container docgrid-embedding Creating +2026-10-18T15:54:09+09:00 Container docgrid-postgres17 Creating +2026-10-18T15:54:09+09:00 Container docgrid-embedding Created +2026-10-18T15:54:09+09:00 Container docgrid-valkey Created +2026-10-18T15:54:09+09:00 Container docgrid-postgres17 Created +2026-10-18T15:54:09+09:00 Container docgrid-embedding Starting +2026-10-18T15:54:09+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:54:09+09:00 Container docgrid-valkey Starting +2026-10-18T15:54:10+09:00 Container docgrid-postgres17 Started +2026-10-18T15:54:10+09:00 Container docgrid-embedding Started +2026-10-18T15:54:10+09:00 Container docgrid-valkey Started +2026-10-18T15:54:13+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:54:13+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:54:39+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:54:39+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:54:39+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:54:39+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:54:39+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-0775c0c6ef524d8fb95fca711451f360.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-0775c0c6ef524d8fb95fca711451f360.log new file mode 100644 index 00000000..ae944691 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-0775c0c6ef524d8fb95fca711451f360.log @@ -0,0 +1,49 @@ +2026-10-18T15:56:28+09:00 [실행] 20261018T155628167053+0900 · 범위 search +2026-10-18T15:56:28+09:00 [계정] 로그인 완료 +2026-10-18T15:56:28+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:56:28+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:56:28+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:56:28+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:56:28+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:56:28+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:56:28+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:56:28+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:56:28+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:56:28+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:56:28+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:56:28+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:56:28+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:56:28+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:56:28+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:56:28+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.2초) +2026-10-18T15:56:29+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:29+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:29+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:29+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:29+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:29+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:29+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:29+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:29+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:29+09:00 [원본] 문서 3: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 4: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 5: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 6: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 7: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 8: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 9: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 10: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 11: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 12: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 13: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 14: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 15: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 16: PASS +2026-10-18T15:56:29+09:00 [원본] 문서 17: PASS +2026-10-18T15:56:29+09:00 [업로드] PASS · 15/15 +2026-10-18T15:56:29+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:56:29+09:00 [검색] PASS · 3/3 +2026-10-18T15:56:29+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:56:29+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:56:29+09:00 [문서 ID 재사용] PASS · 15/15 +2026-10-18T15:56:29+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-bd3f7021beb74a68aa22b623ef67065e.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-bd3f7021beb74a68aa22b623ef67065e.log new file mode 100644 index 00000000..02faa85c --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/1bd07e5ccd714d77a817b67f1d272a0f/verify-bd3f7021beb74a68aa22b623ef67065e.log @@ -0,0 +1,56 @@ +2026-10-18T15:56:04+09:00 [실행] 20261018T155604022729+0900 · 범위 search +2026-10-18T15:56:04+09:00 [계정] 회원가입 완료 +2026-10-18T15:56:04+09:00 [계정] 로그인 완료 +2026-10-18T15:56:04+09:00 [업로드] 1/15 · 문서 3 +2026-10-18T15:56:04+09:00 [업로드] 2/15 · 문서 4 +2026-10-18T15:56:04+09:00 [업로드] 3/15 · 문서 5 +2026-10-18T15:56:04+09:00 [업로드] 4/15 · 문서 6 +2026-10-18T15:56:04+09:00 [업로드] 5/15 · 문서 7 +2026-10-18T15:56:04+09:00 [업로드] 6/15 · 문서 8 +2026-10-18T15:56:05+09:00 [업로드] 7/15 · 문서 9 +2026-10-18T15:56:05+09:00 [업로드] 8/15 · 문서 10 +2026-10-18T15:56:05+09:00 [업로드] 9/15 · 문서 11 +2026-10-18T15:56:05+09:00 [업로드] 10/15 · 문서 12 +2026-10-18T15:56:05+09:00 [업로드] 11/15 · 문서 13 +2026-10-18T15:56:05+09:00 [업로드] 12/15 · 문서 14 +2026-10-18T15:56:05+09:00 [업로드] 13/15 · 문서 15 +2026-10-18T15:56:05+09:00 [업로드] 14/15 · 문서 16 +2026-10-18T15:56:05+09:00 [업로드] 15/15 · 문서 17 +2026-10-18T15:56:05+09:00 [인덱싱] INDEXED 0/15 · 처리 중 2 · 대기 13 · 실패 0 (0.5초) +2026-10-18T15:56:09+09:00 [인덱싱] INDEXED 1/15 · 처리 중 2 · 대기 12 · 실패 0 (4.1초) +2026-10-18T15:56:13+09:00 [인덱싱] INDEXED 4/15 · 처리 중 2 · 대기 9 · 실패 0 (7.7초) +2026-10-18T15:56:16+09:00 [인덱싱] INDEXED 7/15 · 처리 중 1 · 대기 7 · 실패 0 (11.1초) +2026-10-18T15:56:19+09:00 [인덱싱] INDEXED 9/15 · 처리 중 2 · 대기 4 · 실패 0 (14.4초) +2026-10-18T15:56:22+09:00 [인덱싱] INDEXED 13/15 · 처리 중 1 · 대기 1 · 실패 0 (17.5초) +2026-10-18T15:56:25+09:00 [인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (20.6초) +2026-10-18T15:56:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:26+09:00 [질문 1] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:26+09:00 [질문 2] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:26+09:00 [검색] 통과: 결과 3건, 기대 문서 포함 여부 확인 +2026-10-18T15:56:26+09:00 [RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다. +2026-10-18T15:56:26+09:00 [질문 3] 검색 PASS · 생성 답변 NOT_RUN +2026-10-18T15:56:26+09:00 [원본] 문서 3: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 4: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 5: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 6: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 7: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 8: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 9: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 10: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 11: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 12: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 13: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 14: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 15: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 16: PASS +2026-10-18T15:56:26+09:00 [원본] 문서 17: PASS +2026-10-18T15:56:26+09:00 [업로드] PASS · 15/15 +2026-10-18T15:56:26+09:00 [인덱싱] PASS · 15/15 +2026-10-18T15:56:26+09:00 [검색] PASS · 3/3 +2026-10-18T15:56:26+09:00 [원본 해시] PASS · 15/15 +2026-10-18T15:56:26+09:00 [생성 답변·인용] NOT_RUN · 0/0 +2026-10-18T15:56:26+09:00 [문서 ID 재사용] NOT_RUN · 0/0 +2026-10-18T15:56:26+09:00 [최종] 종료 코드 0 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/events.jsonl new file mode 100644 index 00000000..6d40b327 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/events.jsonl @@ -0,0 +1,3 @@ +{"timestamp": "2026-10-18T15:56:39+09:00", "message": "[시작] 로컬 시연 세션 2cac5af2e629447fb41c291abe0e8feb · 범위 search"} +{"timestamp": "2026-10-18T15:56:41+09:00", "message": "[기동 중단] 이번 실행이 시작한 자원을 정리합니다."} +{"timestamp": "2026-10-18T15:56:46+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/services.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/services.log new file mode 100644 index 00000000..e596ac93 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/2cac5af2e629447fb41c291abe0e8feb/services.log @@ -0,0 +1,8 @@ +2026-10-18T15:56:40+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:56:40+09:00 Container docgrid-valkey Starting +2026-10-18T15:56:40+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:56:40+09:00 Container docgrid-embedding Starting +2026-10-18T15:56:40+09:00 Container docgrid-postgres17 Started +2026-10-18T15:56:40+09:00 Container docgrid-valkey Started +2026-10-18T15:56:40+09:00 Container docgrid-embedding Started +2026-10-18T15:56:41+09:00 [FAIL] 앱의 대상 포트와 실행 중 컨테이너가 일치하지 않습니다: embedding-server diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/backend.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/backend.log new file mode 100644 index 00000000..d243dc87 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/backend.log @@ -0,0 +1 @@ +2026-10-18T15:56:54+09:00 To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to <설정된 서버> in the Gradle documentation. diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/events.jsonl new file mode 100644 index 00000000..06686581 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/events.jsonl @@ -0,0 +1,3 @@ +{"timestamp": "2026-10-18T15:56:47+09:00", "message": "[시작] 로컬 시연 세션 ea791ff132274affb11ed6d134b127ba · 범위 search"} +{"timestamp": "2026-10-18T15:56:54+09:00", "message": "[기동 중단] 이번 실행이 시작한 자원을 정리합니다."} +{"timestamp": "2026-10-18T15:56:57+09:00", "message": "[종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/services.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/services.log new file mode 100644 index 00000000..abb40c40 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/runtime/ea791ff132274affb11ed6d134b127ba/services.log @@ -0,0 +1,14 @@ +2026-10-18T15:56:47+09:00 [local-services] 로컬 PostgreSQL·Valkey·Embedding Provider를 시작합니다. +2026-10-18T15:56:47+09:00 Container docgrid-postgres17 Starting +2026-10-18T15:56:47+09:00 Container docgrid-embedding Starting +2026-10-18T15:56:47+09:00 Container docgrid-valkey Starting +2026-10-18T15:56:48+09:00 Container docgrid-valkey Started +2026-10-18T15:56:48+09:00 Container docgrid-postgres17 Started +2026-10-18T15:56:48+09:00 Container docgrid-embedding Started +2026-10-18T15:56:48+09:00 [OK] 대상 PostgreSQL 준비 완료 +2026-10-18T15:56:48+09:00 [OK] Valkey 준비 완료 +2026-10-18T15:56:52+09:00 [OK] Embedding Provider 준비 완료 +2026-10-18T15:56:53+09:00 [OK] 대상 PostgreSQL 인증·pgvector 0.8.1 확인 +2026-10-18T15:56:53+09:00 [OK] Valkey 연결 가능 +2026-10-18T15:56:53+09:00 [OK] Embedding Provider 준비 완료 (<설정된 서버>) +2026-10-18T15:56:53+09:00 [OK] 검색 범위 준비 완료 · 생성 답변은 미검증 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-final.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-final.log new file mode 100644 index 00000000..faa1c71d --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-final.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/stop-final +목적: 최종 소유 자원 정리 +시작: 2026-10-18T15:57:27+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:57:30+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +종료: 2026-10-18T15:57:30+09:00 +실제 종료 코드: 0 +소요 시간: 2.971초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-first.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-first.log new file mode 100644 index 00000000..3e58f8ec --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-first.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/stop-first +목적: 소유 자원 종료와 데이터·캐시 보존 +시작: 2026-10-18T15:56:36+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:56:39+09:00 [종료 완료] 소유 서버·컨테이너 중지, 데이터·원본·모델 캐시 보존 +종료: 2026-10-18T15:56:39+09:00 +실제 종료 코드: 0 +소요 시간: 3.124초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-replay.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-replay.log new file mode 100644 index 00000000..666c0890 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/stop-replay.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/stop-replay +목적: 이미 종료된 세션 재종료 +시작: 2026-10-18T15:56:39+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py stop +2026-10-18T15:56:39+09:00 [종료] 이미 종료된 세션입니다. +종료: 2026-10-18T15:56:39+09:00 +실제 종료 코드: 0 +소요 시간: 0.064초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/summary.json new file mode 100644 index 00000000..054a19d1 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/summary.json @@ -0,0 +1,248 @@ +{ + "runId": "39105569049-1", + "revision": "a62175ee3e4621c6411feb3af5f4ed3663802b6c", + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": [ + { + "id": "preflight", + "purpose": "독립 실행기의 새 환경 확인", + "timestamp": "2026-10-18T15:52:46+09:00", + "verdict": "PASS", + "existingContainers": 0, + "existingImageCount": 6, + "existingVolumes": 0, + "environmentFilesInitiallyPresent": 0, + "workload": { + "documents": 15, + "searchQuestions": 3, + "browserSessions": 1 + } + }, + { + "id": "concurrent-start", + "purpose": "진행 중 start의 잠금으로 두 번째 start 거부", + "timestamp": "2026-10-18T15:52:48+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 0.114, + "log": "concurrent-start.log" + }, + { + "id": "cold-start", + "purpose": "모델·의존성 최초 준비를 포함한 전체 기동", + "timestamp": "2026-10-18T15:56:03+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 196.632, + "log": "cold-start.log" + }, + { + "id": "verify-first", + "purpose": "실제 모델 인덱싱·검색·프록시·원본 대조", + "timestamp": "2026-10-18T15:56:27+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 24.135, + "log": "verify-first.log" + }, + { + "id": "first-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:56:27+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "verify-replay", + "purpose": "같은 계정 재실행과 문서 ID 재사용", + "timestamp": "2026-10-18T15:56:30+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.072, + "log": "verify-replay.log" + }, + { + "id": "replay-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:56:30+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15, + "replay": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "browser", + "purpose": "실제 Chromium 로그인·질문 전송·원본 다운로드 해시", + "timestamp": "2026-10-18T15:56:34+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.782, + "log": "browser.log" + }, + { + "id": "ready-status", + "purpose": "기록이 아닌 실제 서버·프록시·DB 준비 재확인", + "timestamp": "2026-10-18T15:56:35+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 1.016, + "log": "ready-status.log" + }, + { + "id": "reuse-start", + "purpose": "동일 활성 세션 중복 기동 없이 재사용", + "timestamp": "2026-10-18T15:56:36+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 1.019, + "log": "reuse-start.log" + }, + { + "id": "stop-first", + "purpose": "소유 자원 종료와 데이터·캐시 보존", + "timestamp": "2026-10-18T15:56:39+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.124, + "log": "stop-first.log" + }, + { + "id": "stop-observation", + "purpose": "종료 뒤 실제 서버 포트·컨테이너 실행 상태 확인", + "timestamp": "2026-10-18T15:56:39+09:00", + "verdict": "PASS", + "ownedContainers": 3 + }, + { + "id": "stop-replay", + "purpose": "이미 종료된 세션 재종료", + "timestamp": "2026-10-18T15:56:39+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 0.064, + "log": "stop-replay.log" + }, + { + "id": "missing-provider", + "purpose": "잘못 지정된 임베딩 주소는 준비 실패로 판정", + "timestamp": "2026-10-18T15:56:46+09:00", + "verdict": "PASS", + "exitCode": 1, + "expectedExitCode": 1, + "elapsedSeconds": 7.234, + "log": "missing-provider.log" + }, + { + "id": "missing-provider-cleanup", + "purpose": "종료 뒤 실제 서버 포트·컨테이너 실행 상태 확인", + "timestamp": "2026-10-18T15:56:46+09:00", + "verdict": "PASS", + "ownedContainers": 3 + }, + { + "id": "interrupted-start", + "purpose": "실제 백엔드 기동 중 부모 SIGTERM 뒤 소유 자원 정리", + "timestamp": "2026-10-18T15:56:57+09:00", + "verdict": "PASS", + "exitCode": 130, + "expectedExitCode": 130, + "elapsedSeconds": 10.906, + "log": "interrupted-start.log" + }, + { + "id": "interrupted-cleanup", + "purpose": "종료 뒤 실제 서버 포트·컨테이너 실행 상태 확인", + "timestamp": "2026-10-18T15:56:57+09:00", + "verdict": "PASS", + "ownedContainers": 3 + }, + { + "id": "warm-start", + "purpose": "보존된 의존성·모델 캐시로 재기동", + "timestamp": "2026-10-18T15:57:23+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 26.061, + "log": "warm-start.log" + }, + { + "id": "verify-warm", + "purpose": "재기동 뒤 데이터 보존과 문서 ID 재확인", + "timestamp": "2026-10-18T15:57:27+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 3.626, + "log": "verify-warm.log" + }, + { + "id": "warm-result", + "purpose": "예제 필수 단계 수와 이전 원장 문서 ID 검사", + "timestamp": "2026-10-18T15:57:27+09:00", + "verdict": "PASS", + "counts": { + "upload": 15, + "indexing": 15, + "search": 3, + "download": 15, + "replay": 15 + }, + "rag": "NOT_RUN" + }, + { + "id": "stop-final", + "purpose": "최종 소유 자원 정리", + "timestamp": "2026-10-18T15:57:30+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 2.971, + "log": "stop-final.log" + }, + { + "id": "final-cleanup", + "purpose": "종료 뒤 실제 서버 포트·컨테이너 실행 상태 확인", + "timestamp": "2026-10-18T15:57:30+09:00", + "verdict": "PASS", + "ownedContainers": 3 + }, + { + "id": "environment-preserved", + "purpose": "생성 이후 환경 파일 bytes·mtime 보존", + "timestamp": "2026-10-18T15:57:30+09:00", + "verdict": "PASS", + "unchangedFiles": 2 + }, + { + "id": "always-cleanup", + "purpose": "시험 중단·완료 후 소유 자원 종료", + "timestamp": "2026-10-18T15:57:30+09:00", + "verdict": "PASS", + "exitCode": 0, + "expectedExitCode": 0, + "elapsedSeconds": 0.064, + "log": "always-cleanup.log" + } + ] +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-first.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-first.log new file mode 100644 index 00000000..ef943381 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-first.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/verify-first +목적: 실제 모델 인덱싱·검색·프록시·원본 대조 +시작: 2026-10-18T15:56:03+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:56:27+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/43aaa87d4ac94307a3639f790aabf3a1/summary.json +종료: 2026-10-18T15:56:27+09:00 +실제 종료 코드: 0 +소요 시간: 24.135초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-replay.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-replay.log new file mode 100644 index 00000000..618cecc2 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-replay.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/verify-replay +목적: 같은 계정 재실행과 문서 ID 재사용 +시작: 2026-10-18T15:56:27+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify --timeout 900 +2026-10-18T15:56:30+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/3abd7182177c4cc4a95e4d956b49ebed/summary.json +종료: 2026-10-18T15:56:30+09:00 +실제 종료 코드: 0 +소요 시간: 3.072초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-warm.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-warm.log new file mode 100644 index 00000000..702d9cf2 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/verify-warm.log @@ -0,0 +1,10 @@ +실행 ID: 39105569049-1/verify-warm +목적: 재기동 뒤 데이터 보존과 문서 ID 재확인 +시작: 2026-10-18T15:57:23+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py verify +2026-10-18T15:57:27+09:00 [검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: .demo/reports/f1a295ef524b4da7a989b8acd54bc2ca/summary.json +종료: 2026-10-18T15:57:27+09:00 +실제 종료 코드: 0 +소요 시간: 3.626초 diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/events.jsonl b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/events.jsonl new file mode 100644 index 00000000..c7c318e9 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/events.jsonl @@ -0,0 +1,49 @@ +{"timestamp": "2026-10-18T15:57:24.602+09:00", "message": "[실행] 20261018T155724600405+0900 · 범위 search"} +{"timestamp": "2026-10-18T15:57:24.788+09:00", "message": "[계정] 로그인 완료"} +{"timestamp": "2026-10-18T15:57:25.142+09:00", "message": "[업로드] 1/15 · 문서 3"} +{"timestamp": "2026-10-18T15:57:25.169+09:00", "message": "[업로드] 2/15 · 문서 4"} +{"timestamp": "2026-10-18T15:57:25.192+09:00", "message": "[업로드] 3/15 · 문서 5"} +{"timestamp": "2026-10-18T15:57:25.214+09:00", "message": "[업로드] 4/15 · 문서 6"} +{"timestamp": "2026-10-18T15:57:25.235+09:00", "message": "[업로드] 5/15 · 문서 7"} +{"timestamp": "2026-10-18T15:57:25.255+09:00", "message": "[업로드] 6/15 · 문서 8"} +{"timestamp": "2026-10-18T15:57:25.276+09:00", "message": "[업로드] 7/15 · 문서 9"} +{"timestamp": "2026-10-18T15:57:25.297+09:00", "message": "[업로드] 8/15 · 문서 10"} +{"timestamp": "2026-10-18T15:57:25.318+09:00", "message": "[업로드] 9/15 · 문서 11"} +{"timestamp": "2026-10-18T15:57:25.344+09:00", "message": "[업로드] 10/15 · 문서 12"} +{"timestamp": "2026-10-18T15:57:25.369+09:00", "message": "[업로드] 11/15 · 문서 13"} +{"timestamp": "2026-10-18T15:57:25.389+09:00", "message": "[업로드] 12/15 · 문서 14"} +{"timestamp": "2026-10-18T15:57:25.412+09:00", "message": "[업로드] 13/15 · 문서 15"} +{"timestamp": "2026-10-18T15:57:25.436+09:00", "message": "[업로드] 14/15 · 문서 16"} +{"timestamp": "2026-10-18T15:57:25.457+09:00", "message": "[업로드] 15/15 · 문서 17"} +{"timestamp": "2026-10-18T15:57:25.840+09:00", "message": "[인덱싱] INDEXED 15/15 · 처리 중 0 · 대기 0 · 실패 0 (0.4초)"} +{"timestamp": "2026-10-18T15:57:26.187+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:57:26.187+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:57:26.187+09:00", "message": "[질문 1] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:57:26.406+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:57:26.406+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:57:26.438+09:00", "message": "[질문 2] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:57:26.605+09:00", "message": "[검색] 통과: 결과 3건, 기대 문서 포함 여부 확인"} +{"timestamp": "2026-10-18T15:57:26.605+09:00", "message": "[RAG] 미검증: search 범위에서는 생성 답변 성공을 주장하지 않습니다."} +{"timestamp": "2026-10-18T15:57:26.605+09:00", "message": "[질문 3] 검색 PASS · 생성 답변 NOT_RUN"} +{"timestamp": "2026-10-18T15:57:26.629+09:00", "message": "[원본] 문서 3: PASS"} +{"timestamp": "2026-10-18T15:57:26.667+09:00", "message": "[원본] 문서 4: PASS"} +{"timestamp": "2026-10-18T15:57:26.693+09:00", "message": "[원본] 문서 5: PASS"} +{"timestamp": "2026-10-18T15:57:26.712+09:00", "message": "[원본] 문서 6: PASS"} +{"timestamp": "2026-10-18T15:57:26.729+09:00", "message": "[원본] 문서 7: PASS"} +{"timestamp": "2026-10-18T15:57:26.747+09:00", "message": "[원본] 문서 8: PASS"} +{"timestamp": "2026-10-18T15:57:26.767+09:00", "message": "[원본] 문서 9: PASS"} +{"timestamp": "2026-10-18T15:57:26.786+09:00", "message": "[원본] 문서 10: PASS"} +{"timestamp": "2026-10-18T15:57:26.806+09:00", "message": "[원본] 문서 11: PASS"} +{"timestamp": "2026-10-18T15:57:26.823+09:00", "message": "[원본] 문서 12: PASS"} +{"timestamp": "2026-10-18T15:57:26.841+09:00", "message": "[원본] 문서 13: PASS"} +{"timestamp": "2026-10-18T15:57:26.864+09:00", "message": "[원본] 문서 14: PASS"} +{"timestamp": "2026-10-18T15:57:26.890+09:00", "message": "[원본] 문서 15: PASS"} +{"timestamp": "2026-10-18T15:57:26.911+09:00", "message": "[원본] 문서 16: PASS"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[원본] 문서 17: PASS"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[업로드] PASS · 15/15"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[인덱싱] PASS · 15/15"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[검색] PASS · 3/3"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[원본 해시] PASS · 15/15"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[생성 답변·인용] NOT_RUN · 0/0"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[문서 ID 재사용] PASS · 15/15"} +{"timestamp": "2026-10-18T15:57:26.931+09:00", "message": "[최종] 종료 코드 0"} diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/summary.json b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/summary.json new file mode 100644 index 00000000..3fd3f1aa --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-result/summary.json @@ -0,0 +1,86 @@ +{ + "schemaVersion": 1, + "runId": "20261018T155724600405+0900", + "revision": "a62175ee3e4621c6411feb3af5f4ed3663802b6c", + "scope": "search", + "startedAt": "2026-10-18T15:57:24.601+09:00", + "stages": { + "upload": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "indexing": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "search": { + "status": "PASS", + "passed": 3, + "expected": 3 + }, + "download": { + "status": "PASS", + "passed": 15, + "expected": 15 + }, + "rag": { + "status": "NOT_RUN", + "passed": 0, + "expected": 0 + }, + "replay": { + "status": "PASS", + "passed": 15, + "expected": 15 + } + }, + "documents": { + "b8dae14d4ba98ceda83e672be41d20895a70ee01f4cf128a0431d137ea581304": 3, + "924112041275f193f2296a55ba5ea098e14ff98b8908eff2051e37b8c2848fb3": 4, + "82d7205d795868938f73eb871b0ca29aff632ce5948e0a5c60d7614222265379": 5, + "f0fb63cf9f42118f799082c74d8d1237434313270ff6b9ac12bb05d1d2955d9a": 6, + "6672c9b2faa6d5b1d04bd287d7a7a71746262c6fb126333f217249aacef6caeb": 7, + "3295bab5db9c7ddcd5a6d8e141b25960f167e553b03f80abaaabcc7670cf7760": 8, + "d5e11dad0ac802f01925eaac1c98efff483616ca0bb02f4be098bcbe1e2d315b": 9, + "ece687b9507957c5bc1ba7e0deff426e8803b81332e0cd507b3558974bdd78b0": 10, + "1830ee48e2942f6e80c5d72f26917ea5384e5c6ff2ca10c4b2ff2c2739e61547": 11, + "6d383df3849d304aa941d6733a0e8205c024d9fa2cfb37d21880af32f7c5c43d": 12, + "a5635fe4c4f3f60d0aa52e3cf7e493da741f6e7e8b15adef534f50030cdafa03": 13, + "fab797bb45eef73ace164770c5fc8d47c8e1c9378e87c1aa296b706759b30831": 14, + "c1bc83a520b4b05557ef8cbf48da15b82a16df02c04274c56cf4604ff9ee50b3": 15, + "d1e0658cf5d053175cab29dff6d21667c5e8527def7c6acc6c0efb814baf6285": 16, + "0bebba1fec7239ddd92b23f81b3b35910ae1d031ac02b5432cd460b1d9445244": 17 + }, + "queries": [ + { + "number": 1, + "expectedDocumentId": 3, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 8 + }, + { + "number": 2, + "expectedDocumentId": 8, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 9 + }, + { + "number": 3, + "expectedDocumentId": 13, + "search": "PASS", + "rag": "NOT_RUN", + "queryId": 10 + } + ], + "corpusSha256": "e27ae024506149089279f92b88e13262fa96d651f00e360b2815bc96d648e70d", + "targetFingerprint": "208b7156c72415ab41097dabd67a3b01f0a660d0718d0976f6237eaeb2f6b003", + "topK": 3, + "checksSha256": "103c1585e7dd2b45f03eb9ba61463bb9a8647efa8026b270c41a45c8eb677c6c", + "exitCode": 0, + "finishedAt": "2026-10-18T15:57:26.931+09:00", + "elapsedSeconds": 2.331 +} \ No newline at end of file diff --git a/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-start.log b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-start.log new file mode 100644 index 00000000..de77b126 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/runs/39105569049-1/warm-start.log @@ -0,0 +1,11 @@ +실행 ID: 39105569049-1/warm-start +목적: 보존된 의존성·모델 캐시로 재기동 +시작: 2026-10-18T15:56:57+09:00 +장소: 독립 GitHub hosted 실행기 +기대 종료 코드: 0 +절차: ./scripts/demo.py start +2026-10-18T15:56:58+09:00 [시작] 로컬 시연 세션 0806f0385fd940dc8968a8446fafb9c2 · 범위 search +2026-10-18T15:57:23+09:00 [준비 완료] Web: <설정된 서버> · verify로 예제 시연을 검사하세요. +종료: 2026-10-18T15:57:23+09:00 +실제 종료 코드: 0 +소요 시간: 26.061초 diff --git a/docs/test-results/demo-fresh-20261018/workflow-preparation-01.json b/docs/test-results/demo-fresh-20261018/workflow-preparation-01.json new file mode 100644 index 00000000..a23cdc27 --- /dev/null +++ b/docs/test-results/demo-fresh-20261018/workflow-preparation-01.json @@ -0,0 +1,9 @@ +{ + "runId": 39103167964, + "revision": "5722aa56276a556d2fe591233aef9ebbea6de796", + "observedConclusion": "failure", + "jobCount": 0, + "serviceTestExecuted": false, + "evidenceLimitation": "GitHub reports workflow file issue; no job log exists", + "correction": "Move runner.temp from job env to step env" +} \ No newline at end of file diff --git a/frontend/app/components/AuthPage.tsx b/frontend/app/components/AuthPage.tsx index 41ccc6d5..1251e2fa 100644 --- a/frontend/app/components/AuthPage.tsx +++ b/frontend/app/components/AuthPage.tsx @@ -15,8 +15,15 @@ export function AuthPage({ mode }: { mode: "login" | "signup" }) { const [departmentError, setDepartmentError] = useState(""); const [departmentRequest, setDepartmentRequest] = useState(0); const [submitting, setSubmitting] = useState(false); + const [ready, setReady] = useState(false); const [error, setError] = useState(""); + useEffect(() => { + // 1. SSR 폼이 기본 GET으로 먼저 제출되지 않도록 클라이언트 이벤트 연결 후 활성화한다. + const timer = window.setTimeout(() => setReady(true), 0); + return () => window.clearTimeout(timer); + }, []); + useEffect(() => { if (user) window.location.replace(returnPath()); }, [user]); @@ -94,7 +101,7 @@ export function AuthPage({ mode }: { mode: "login" | "signup" }) {
  • 문서 업로드부터 임베딩·색인까지 자동화
  • 권한 사전 필터와 실시간 접근 검증
  • MCP 토큰으로 AI 클라이언트 연동
-
+
DocGrid
{signup ? "CREATE ACCOUNT" : "WELCOME BACK"}

{signup ? "회원가입" : "로그인"}

@@ -108,7 +115,7 @@ export function AuthPage({ mode }: { mode: "login" | "signup" }) { {departmentsLoading ? "가입 가능한 부서 목록을 불러오는 중입니다." : departmentError ? "목록을 다시 불러온 후 가입할 수 있습니다." : departmentId ? "선택한 부서로 계정이 생성됩니다." : "부서를 선택하면 가입 버튼이 활성화됩니다."} : null} - + {signup ? "이미 계정이 있나요?" : "계정이 없으신가요?"} {signup ? "로그인" : "회원가입"}
diff --git a/frontend/tests/rendered-html.test.mjs b/frontend/tests/rendered-html.test.mjs index 13189120..aa1e33a0 100644 --- a/frontend/tests/rendered-html.test.mjs +++ b/frontend/tests/rendered-html.test.mjs @@ -64,6 +64,10 @@ test("renders DocGrid auth and protected loading boundaries", async () => { assert.match(homeHtml, /DocGrid — 팀의 지식에서 정확한 답을<\/title>/i); assert.match(homeHtml, /세션을 확인하는 중입니다/); assert.match(loginHtml, /DocGrid 이메일과 비밀번호/); + // 클라이언트 이벤트가 연결되기 전 기본 GET 제출로 인증정보가 URL에 붙으면 안 된다. + assert.match(loginHtml, /<form[^>]*method="post"/); + assert.match(signupHtml, /<form[^>]*method="post"/); + assert.match(loginHtml, /<button class="primary-button auth-submit" disabled="">로그인<\/button>/); assert.match(loginHtml, /<a href="\/signup" target="_top">회원가입<\/a>/); assert.match(signupHtml, /가입 가능한 부서 목록을 불러오는 중입니다/); assert.match(signupHtml, /<button class="primary-button auth-submit" disabled="">부서 목록 불러오는 중…<\/button>/); diff --git a/scripts/demo.py b/scripts/demo.py index 87c07f81..9921a91a 100755 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -15,6 +15,7 @@ import socket import subprocess import sys +import threading import time import urllib.error import urllib.request @@ -92,14 +93,43 @@ def port_open(port): return False -def listener_owned(port, record): +def listener_owned(port, record, children=()): """HTTP 성공 외에 실제 수신 프로세스가 소유 그룹에 속하는지도 확인한다.""" result = subprocess.run(["lsof", "-nP", "-a", f"-iTCP:{port}", "-sTCP:LISTEN", "-t"], capture_output=True, text=True) pids = set(result.stdout.split()) if result.returncode or not pids: return False - return all(p.isdigit() and (item := identity(int(p))) and item["pgid"] == record["pgid"] for p in pids) + return all(p.isdigit() and (item := identity(int(p))) and + (item["pgid"] == record["pgid"] or item in children) for p in pids) + + +def children_snapshot(owner, previous): + """확인된 현재 부모에서만 자식을 확장하고 PID 재사용으로 달라진 기록은 버린다.""" + rows = subprocess.run(["ps", "-eo", "pid=,ppid="], capture_output=True, text=True) + if rows.returncode: + raise DemoError("자식 프로세스 계보를 확인할 수 없습니다.") + pairs = [tuple(map(int, line.split())) for line in rows.stdout.splitlines() if len(line.split()) == 2] + live = {item["pid"]: item for item in [owner, *previous] if identity(item["pid"]) == item} + pending = True + while pending: + pending = False + for pid, parent in pairs: + if parent in live and pid not in live: + item = identity(pid) + if item: + live[pid] = item + pending = True + return [item for pid, item in live.items() if pid != owner["pid"]] + + +def track_children(owner, stopped, path): + """Gradle처럼 그룹을 분리하는 자식도 확인한 계보와 식별정보로만 기록한다.""" + known = [] + while not stopped.is_set(): + known = children_snapshot(owner, known) + write_json(path, {"owner": owner, "children": known}) + stopped.wait(0.25) def http_bytes(url): @@ -325,11 +355,12 @@ def backend_ready(self): record = self.state["processes"].get("backend", {}) body = http_json(f"http://127.0.0.1:{self.config.values['MANAGEMENT_PORT']}/actuator/health/readiness") return (body and body.get("status") == "UP" and identity(record.get("pid")) == record and - listener_owned(8080, record) and listener_owned(int(self.config.values["MANAGEMENT_PORT"]), record)) + listener_owned(8080, record, self.owned_children("backend")) and + listener_owned(int(self.config.values["MANAGEMENT_PORT"]), record, self.owned_children("backend"))) def frontend_ready(self): record = self.state["processes"].get("frontend", {}) - if identity(record.get("pid")) != record or not listener_owned(3000, record): + if identity(record.get("pid")) != record or not listener_owned(3000, record, self.owned_children("frontend")): return False direct = http_json("http://127.0.0.1:8080/departments") proxied = http_json("http://127.0.0.1:3000/api/backend/departments") @@ -445,6 +476,20 @@ def verify(self, timeout): self.event(f"[검증 통과] 업로드·인덱싱·검색·원본 검사 완료. 기록: {report}/summary.json") return 0 + def owned_children(self, name): + path = self.component_path(name, ".children.json") + if not path.exists(): + return [] + tree = read_json(path) + if tree.get("owner") != self.state.get("processes", {}).get(name): + raise DemoError("자식 프로세스 기록의 실행 소유자가 다릅니다.") + children = tree.get("children") + if not isinstance(children, list) or any(not isinstance(item, dict) or + type(item.get("pid")) is not int or item["pid"] <= 1 or not item.get("started") or + not item.get("commandHash") for item in children): + raise DemoError("자식 프로세스 식별정보가 잘못됐습니다.") + return children + def stop_process(self, name): record = self.state.get("processes", {}).get(name) if name == "verify" and not self.state.get("verification"): @@ -460,18 +505,28 @@ def stop_process(self, name): record.get("pgid") != record["pid"] or not record.get("started") or not record.get("commandHash")): return False current = identity(record.get("pid")) - if current is None: - handle = self.handles.get(name) - if handle and handle.poll() is not None: - handle.wait() - return not group_members(record.get("pgid")) - if current != record or record["pgid"] != record["pid"]: + if current is not None and (current != record or record["pgid"] != record["pid"]): self.event(f"[조치 필요] 식별정보가 달라 자동 종료하지 않습니다: {name}") return False + children = children_snapshot(record, self.owned_children(name)) + # 3. 분리된 JVM은 계보에서 확인한 PID·시작 시각·명령이 같은 경우에만 개별 종료한다. + for item in reversed(children): + if identity(item["pid"]) == item: + with contextlib.suppress(ProcessLookupError): + os.kill(item["pid"], signal.SIGTERM) members = {pid: identity(pid) for pid in group_members(record["pgid"])} - os.killpg(record["pgid"], signal.SIGTERM) + if identity(record["pid"]) == record: + try: + os.killpg(record["pgid"], signal.SIGTERM) + except ProcessLookupError: + pass + except PermissionError: + # 자식 종료로 부모도 끝나 그룹이 사라진 경우만 이미 정리된 것으로 판단한다. + if group_members(record["pgid"]): + raise deadline = time.monotonic() + 10 - while time.monotonic() < deadline and group_members(record["pgid"]): + while time.monotonic() < deadline and (group_members(record["pgid"]) or + any(identity(item["pid"]) == item for item in children)): time.sleep(0.2) remaining = group_members(record["pgid"]) if remaining: @@ -479,7 +534,11 @@ def stop_process(self, name): return False os.killpg(record["pgid"], signal.SIGKILL) time.sleep(0.2) - released = not group_members(record["pgid"]) + for item in children: + if identity(item["pid"]) == item: + with contextlib.suppress(ProcessLookupError): + os.kill(item["pid"], signal.SIGKILL) + released = not group_members(record["pgid"]) and not any(identity(item["pid"]) == item for item in children) handle = self.handles.get(name) if released and handle: handle.wait(timeout=2) @@ -595,7 +654,11 @@ def supervise(runtime, session_id, component): if (state.get("id") != session_id or state.get("status") not in {"STARTING", "READY"} or component not in {"install", "services", "backend", "frontend", "verify"}): raise DemoError("소유 세션과 실행 구성요소가 일치하지 않습니다.") - write_json(runtime.component_path(component, ".pid.json"), identity(os.getpid())) + owner = identity(os.getpid()) + write_json(runtime.component_path(component, ".pid.json"), owner) + stopped = threading.Event() + tracker = threading.Thread(target=track_children, args=(owner, stopped, runtime.component_path(component, ".children.json")), daemon=True) + tracker.start() code = 2 with runtime.component_path(component, ".log").open("x", encoding="utf-8") as output: try: @@ -608,7 +671,7 @@ def supervise(runtime, session_id, component): "install": ["npm", "--prefix", "frontend", "ci"], "services": ["bash", "scripts/local-services.sh", "start", "--scope", state["scope"]], "backend": [str(runtime.root / "backend/gradlew"), "-p", "backend", "--no-daemon", "bootRun"], - "frontend": ["npm", "--prefix", "frontend", "run", "dev"], + "frontend": ["npm", "--prefix", "frontend", "run", "dev", "--", "--hostname", "127.0.0.1"], } if component == "verify": check = state["verification"] @@ -637,6 +700,8 @@ def supervise(runtime, session_id, component): code = child.wait() except Exception as error: output.write(now() + " 하위 실행 오류: " + type(error).__name__ + "\n") + stopped.set() + tracker.join(timeout=2) write_json(runtime.component_path(component, ".exit.json"), {"code": code, "finishedAt": now()}) return code diff --git a/scripts/demo/browser_smoke.cjs b/scripts/demo/browser_smoke.cjs new file mode 100644 index 00000000..03cf4419 --- /dev/null +++ b/scripts/demo/browser_smoke.cjs @@ -0,0 +1,88 @@ +// 독립 실행기의 실제 Chromium으로 로그인·검색·다운로드를 검증한다. 인증정보·원문 답변은 기록하지 않는다. +const fs = require('node:fs/promises'); +const path = require('node:path'); +const crypto = require('node:crypto'); +const { chromium } = require(process.env.DEMO_BROWSER_MODULE); + +(async () => { + const directory = process.argv[2]; + await fs.mkdir(directory, { recursive: false }); + const query = JSON.parse(await fs.readFile('examples/demo-corpus/checks.json')).queries[0]; + const original = await fs.readFile(path.join('examples/demo-corpus', query.expectedFile)); + const sha = (bytes) => crypto.createHash('sha256').update(bytes).digest('hex'); + const previous = JSON.parse(await fs.readFile('.demo/launcher/last-report.json')); + const report = JSON.parse(await fs.readFile(previous.report)); + const documentId = report.documents[sha(original)]; + const browser = await chromium.launch(); + // SSR 경계는 별도 무스크립트 화면에서 검증하며, 인증정보를 입력하지 않는다. + const noScriptContext = await browser.newContext({ javaScriptEnabled: false }); + const noScriptPage = await noScriptContext.newPage(); + await noScriptPage.goto('http://127.0.0.1:3000/login'); + const postFallback = (await noScriptPage.locator('form').getAttribute('method')) === 'post'; + const initiallyDisabled = !(await noScriptPage.getByRole('button', { name: '로그인', exact: true }).isEnabled()); + await fs.writeFile(path.join(directory, 'ssr-auth.json'), JSON.stringify({ purpose: 'hydration 이전 인증정보 URL 제출 방지', + timestamp: new Date().toISOString(), postFallback, initiallyDisabled, + verdict: postFallback && initiallyDisabled ? 'PASS' : 'FAIL' }, null, 2)); + await noScriptContext.close(); + if (!postFallback || !initiallyDisabled) { await browser.close(); throw new Error('SSR auth boundary'); } + const page = await browser.newPage({ acceptDownloads: true }); + page.setDefaultTimeout(45000); + const clean = value => String(value).replaceAll(process.env.DOCGRID_DEMO_PASSWORD, '<비밀값 생략>') + .replace(/([?&](?:password|token|email)=)[^&#\s"']+/gi, '$1<비밀값 생략>') + .replaceAll(process.cwd(), '<작업공간>') + .replace(/eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g, '<토큰 생략>') + .replace(/[\w.+%-]+@[\w.-]+\.[\w.-]+/g, '<이메일 생략>'); + const pageErrors = []; + const consoleErrors = []; + const failedResources = []; + page.on('pageerror', error => pageErrors.push(clean(error.message))); + page.on('console', message => { if (message.type() === 'error') consoleErrors.push(clean(message.text())); }); + page.on('requestfailed', request => failedResources.push({ path: clean(new URL(request.url()).pathname), + error: clean(request.failure()?.errorText ?? 'unknown') })); + let stage = 'login-page'; + try { + await page.goto('http://127.0.0.1:3000/login?returnTo=%2Fsearch'); + stage = 'login-form'; + await page.getByLabel('이메일', { exact: true }).fill('demo@docgrid.local'); + await page.getByLabel('비밀번호', { exact: true }).fill(process.env.DOCGRID_DEMO_PASSWORD); + stage = 'login-submit'; + await page.getByRole('button', { name: '로그인', exact: true }).click(); + stage = 'login-navigation'; + await page.waitForURL('**/search'); + stage = 'search'; + await page.getByRole('textbox', { name: '문서 검색', exact: true }).fill(query.query); + const response = page.waitForResponse(r => r.request().method() === 'POST' && new URL(r.url()).pathname.endsWith('/search')); + await page.getByRole('button', { name: '검색', exact: true }).click(); + const result = await response; + const body = await result.json(); + if (result.status() !== 200 || !body.data.results.some(item => item.documentId === documentId)) throw new Error('search verdict'); + const link = page.locator(`a.source-card[href="/documents/${documentId}"]`).first(); + await link.waitFor(); + await page.screenshot({ path: path.join(directory, 'search.png'), fullPage: true, + mask: [page.getByText('demo@docgrid.local', { exact: true })] }); + await link.click(); + await page.waitForURL(`**/documents/${documentId}`); + stage = 'download'; + const downloaded = page.waitForEvent('download'); + await page.getByRole('button', { name: '↓ 다운로드', exact: true }).click(); + const download = await downloaded; + const bytes = await fs.readFile(await download.path()); + if (sha(bytes) !== sha(original)) throw new Error('download hash'); + await fs.writeFile(path.join(directory, 'summary.json'), JSON.stringify({ verdict: 'PASS', + timestamp: new Date().toISOString(), browser: browser.version(), login: 'PASS', search: 'PASS', + download: 'PASS', documentId, bytes: bytes.length, sha256: sha(bytes) }, null, 2)); + console.log(JSON.stringify({ login: 'PASS', search: 'PASS', download: 'PASS', downloadedBytes: bytes.length })); + } catch (error) { + // 입력값·토큰을 제거한 뒤에만 실패 원인과 화면을 보존한다. + await fs.writeFile(path.join(directory, 'summary.json'), JSON.stringify({ verdict: 'FAIL', stage, + errorType: error.name, message: clean(error.message), pageErrors, consoleErrors, failedResources, + pagePath: new URL(page.url()).pathname, + alerts: (await page.getByRole('alert').allTextContents()).map(clean) }, null, 2)); + await page.screenshot({ path: path.join(directory, 'failure.png'), fullPage: true, + mask: [page.locator('input'), page.getByText('demo@docgrid.local', { exact: true })] }); + console.log(JSON.stringify({ verdict: 'FAIL', stage, errorType: error.name })); + process.exitCode = 1; + } finally { + await browser.close(); + } +})(); diff --git a/scripts/demo/reproduce_fresh.py b/scripts/demo/reproduce_fresh.py new file mode 100644 index 00000000..d28dc40e --- /dev/null +++ b/scripts/demo/reproduce_fresh.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python3 +"""빈 GitHub hosted 실행기에서 실제 로컬 시연과 생명주기를 재현하고 목적별 근거를 남긴다.""" +from __future__ import annotations + +import hashlib +import importlib.util +import json +import os +import secrets +import shutil +import signal +import socket +import subprocess +import sys +import threading +import time +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +spec = importlib.util.spec_from_file_location("demo_runtime", ROOT / "scripts/demo.py") +demo = importlib.util.module_from_spec(spec) +spec.loader.exec_module(demo) + + +class Reproduction: + """개인 환경에서는 실행을 거부하며 임시 실행기의 자원·정제 근거만 관리한다.""" + + def __init__(self): + self.run_id = os.environ["GITHUB_RUN_ID"] + "-" + os.environ["GITHUB_RUN_ATTEMPT"] + self.directory = ROOT / ".demo/reproduction" / self.run_id + self.directory.mkdir(parents=True, exist_ok=False) + self.password = secrets.token_urlsafe(24) + demo.seed.SECRET_VALUES.append(self.password) + self.environment = {**os.environ, "DOCGRID_DEMO_PASSWORD": self.password} + self.results = [] + self.stage = "preflight" + self.collect_stopped = threading.Event() + self.collector = threading.Thread(target=self.collect_live, daemon=True) + self.collector.start() + + def collect_live(self): + """취소로 최종 정리가 중단돼도 이미 정제된 구성요소 로그의 최근 사본을 보존한다.""" + while not self.collect_stopped.wait(2): + try: + self.collect() + except OSError: + pass + + def save(self): + demo.write_json(self.directory / "summary.json", {"runId": self.run_id, + "revision": subprocess.check_output(["git", "rev-parse", "HEAD"], text=True).strip(), + "environment": "GitHub hosted Ubuntu 24.04 · actual PostgreSQL/Valkey/BGE-M3 · no Ollama", + "results": self.results}) + + def record(self, name, purpose, verdict, **values): + item = {"id": name, "purpose": purpose, "timestamp": demo.now(), "verdict": verdict, **values} + self.results.append(item) + self.save() + print(json.dumps(item, ensure_ascii=False), flush=True) + + def execute(self, name, purpose, command, expected=0, timeout=1200, probe=None, extra_env=None): + self.stage = name + started = time.monotonic() + path = self.directory / (name + ".log") + with path.open("x", encoding="utf-8") as output: + output.write(f"실행 ID: {self.run_id}/{name}\n목적: {purpose}\n시작: {demo.now()}\n") + output.write(f"장소: 독립 GitHub hosted 실행기\n기대 종료 코드: {expected}\n") + output.write("절차: " + " ".join(command) + "\n") + proc = subprocess.Popen(command, cwd=ROOT, env={**self.environment, **(extra_env or {})}, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, errors="replace", start_new_session=True) + def collect(): + for line in proc.stdout: + safe = demo.seed.safe_text(line.replace(str(ROOT), "<작업공간>").replace(str(Path.home()), "<사용자 홈>")) + output.write(demo.now() + " " + safe) + output.flush() + reader = threading.Thread(target=collect) + reader.start() + try: + if probe: + probe(proc) + code = proc.wait(timeout=timeout) + except BaseException: + self.collect() + if proc.poll() is None: + proc.terminate() + try: + proc.wait(timeout=90) + except subprocess.TimeoutExpired: + os.killpg(proc.pid, signal.SIGKILL) + proc.wait(timeout=10) + raise + finally: + reader.join(timeout=5) + elapsed = round(time.monotonic() - started, 3) + output.write(f"종료: {demo.now()}\n실제 종료 코드: {code}\n소요 시간: {elapsed}초\n") + self.record(name, purpose, "PASS" if code == expected else "FAIL", exitCode=code, + expectedExitCode=expected, elapsedSeconds=elapsed, log=path.name) + if code != expected: + raise RuntimeError("expected exit code mismatch") + + def state(self): + runtime = demo.DemoRuntime(ROOT) + return runtime.load() + + def wait_state(self, predicate, timeout=60): + deadline = time.monotonic() + timeout + while time.monotonic() < deadline: + state = self.state() + if state and predicate(state): + return state + time.sleep(0.1) + raise RuntimeError("state wait timeout") + + def concurrent_probe(self, proc): + self.wait_state(lambda state: state["status"] == "STARTING") + self.execute("concurrent-start", "진행 중 start의 잠금으로 두 번째 start 거부", ["./scripts/demo.py", "start"], expected=1, timeout=30) + + def interruption_probe(self, proc): + self.wait_state(lambda state: state["status"] == "STARTING" and "backend" in state["processes"]) + proc.send_signal(signal.SIGTERM) + + def assert_stopped(self, name): + state = self.state() + passed = bool(state and state["status"] == "STOPPED" and + not any(demo.port_open(port) for port in [8080, 8081, 3000, 8000, 6379, 55432])) + owned = 0 + if state: + for service, item in state["containers"].items(): + raw = subprocess.check_output(["docker", "inspect", "--format", "{{.State.Running}}", item["id"]], text=True) + passed = passed and raw.strip() == "false" + owned += int(item["owned"]) + self.record(name, "종료 뒤 실제 서버 포트·컨테이너 실행 상태 확인", "PASS" if passed else "FAIL", ownedContainers=owned) + if not passed: + raise RuntimeError("cleanup incomplete") + + def report(self, name, replay=False): + current = demo.read_json(ROOT / ".demo/launcher/last-report.json") + summary_path = ROOT / current["report"] + value = demo.read_json(summary_path) + required = {"upload": 15, "indexing": 15, "search": 3, "download": 15} + if replay: + required["replay"] = 15 + passed = value["exitCode"] == 0 and all(value["stages"][stage] == + {"status": "PASS", "passed": count, "expected": count} for stage, count in required.items()) + target = self.directory / name + target.mkdir() + for path in summary_path.parent.iterdir(): + if path.name in {"summary.json", "events.jsonl"}: + shutil.copyfile(path, target / path.name) + self.record(name, "예제 필수 단계 수와 이전 원장 문서 ID 검사", "PASS" if passed else "FAIL", + counts=required, rag=value["stages"]["rag"]["status"]) + if not passed: + raise RuntimeError("demo verdict incomplete") + + def run(self): + if (ROOT / ".env").exists() or (ROOT / "frontend/.env.local").exists(): + raise RuntimeError("fresh environment files already exist") + existing = subprocess.check_output(["docker", "ps", "-aq"], text=True).strip() + images = subprocess.check_output(["docker", "image", "ls", "-q"], text=True).split() + volumes = subprocess.check_output(["docker", "volume", "ls", "-q"], text=True).split() + if existing or volumes: + raise RuntimeError("fresh Docker environment required") + self.record("preflight", "독립 실행기의 새 환경 확인", "PASS", existingContainers=0, + existingImageCount=len(set(images)), existingVolumes=0, environmentFilesInitiallyPresent=0, + workload={"documents": 15, "searchQuestions": 3, "interactiveBrowserSessions": 1, + "noScriptBoundarySessions": 1}) + command = ["./scripts/demo.py"] + self.execute("cold-start", "모델·의존성 최초 준비를 포함한 전체 기동", command + ["start", "--timeout", "1200"], probe=self.concurrent_probe, timeout=1800) + paths = [ROOT / ".env", ROOT / "frontend/.env.local"] + before = [(hashlib.sha256(p.read_bytes()).digest(), p.stat().st_mtime_ns) for p in paths] + self.execute("verify-first", "실제 모델 인덱싱·검색·프록시·원본 대조", command + ["verify", "--timeout", "900"]) + self.report("first-result") + self.execute("verify-replay", "같은 계정 재실행과 문서 ID 재사용", command + ["verify", "--timeout", "900"]) + self.report("replay-result", replay=True) + self.execute("browser", "실제 Chromium 로그인·질문 전송·원본 다운로드 해시", ["node", "scripts/demo/browser_smoke.cjs", str(self.directory / "browser")], timeout=180) + self.execute("ready-status", "기록이 아닌 실제 서버·프록시·DB 준비 재확인", command + ["status"], timeout=60) + self.execute("reuse-start", "동일 활성 세션 중복 기동 없이 재사용", command + ["start"], timeout=60) + self.execute("stop-first", "소유 자원 종료와 데이터·캐시 보존", command + ["stop"], timeout=120) + self.assert_stopped("stop-observation") + self.execute("stop-replay", "이미 종료된 세션 재종료", command + ["stop"], timeout=30) + self.execute("missing-provider", "잘못 지정된 임베딩 주소는 준비 실패로 판정", command + ["start", "--timeout", "5"], expected=1, timeout=120, + extra_env={"EMBEDDING_SERVER_URL": "http://127.0.0.1:17999"}) + self.assert_stopped("missing-provider-cleanup") + self.execute("interrupted-start", "실제 백엔드 기동 중 부모 SIGTERM 뒤 소유 자원 정리", command + ["start"], expected=130, timeout=180, probe=self.interruption_probe) + self.assert_stopped("interrupted-cleanup") + self.execute("warm-start", "보존된 의존성·모델 캐시로 재기동", command + ["start"], timeout=240) + self.execute("verify-warm", "재기동 뒤 데이터 보존과 문서 ID 재확인", command + ["verify"], timeout=240) + self.report("warm-result", replay=True) + self.execute("stop-final", "최종 소유 자원 정리", command + ["stop"], timeout=120) + self.assert_stopped("final-cleanup") + unchanged = before == [(hashlib.sha256(p.read_bytes()).digest(), p.stat().st_mtime_ns) for p in paths] + self.record("environment-preserved", "생성 이후 환경 파일 bytes·mtime 보존", "PASS" if unchanged else "FAIL", unchangedFiles=2 if unchanged else 0) + if not unchanged: + raise RuntimeError("environment file changed") + + def collect(self): + source = ROOT / ".demo/launcher/sessions" + if source.exists(): + for directory in source.iterdir(): + target = self.directory / "runtime" / directory.name + target.mkdir(parents=True, exist_ok=True) + for path in directory.iterdir(): + if path.suffix == ".log" or path.name == "events.jsonl": + shutil.copyfile(path, target / path.name) + + +def main(): + # 개인 컴퓨터나 자체 운영 runner에서는 기존 자원 보호를 위해 실행 자체를 거부한다. + if os.environ.get("GITHUB_ACTIONS") != "true" or os.environ.get("RUNNER_ENVIRONMENT") != "github-hosted": + print("이 시험은 별도 GitHub hosted 임시 실행기 전용입니다.") + return 2 + run = Reproduction() + code = 0 + try: + run.run() + except Exception as error: + run.record("incomplete", "현재 회차의 완료 여부", "FAIL", at=run.stage, errorType=type(error).__name__) + code = 1 + finally: + try: + run.execute("always-cleanup", "시험 중단·완료 후 소유 자원 종료", ["./scripts/demo.py", "stop"], timeout=120) + except Exception: + code = 1 + run.collect_stopped.set() + run.collector.join(timeout=5) + run.collect() + return code + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/demo/seed_demo_corpus.py b/scripts/demo/seed_demo_corpus.py index a373c4b7..24d4b177 100644 --- a/scripts/demo/seed_demo_corpus.py +++ b/scripts/demo/seed_demo_corpus.py @@ -61,6 +61,8 @@ def redirect_request(self, request, fp, code, message, headers, new_url): def safe_text(message: str) -> str: """터미널·파일에 기록하기 전에 자격증명·이메일·서버 주소를 제거한다.""" + message = re.sub(r"(?i)([?&](?:password|passwordConfirmation|token|access_token|accessToken|refresh_token|secret|email)=)[^&#\s\"']+", + r"\1<비밀값 생략>", message) for value in SECRET_VALUES: if value: message = message.replace(value, "<비밀값 생략>") diff --git a/scripts/demo/test_demo_runtime.py b/scripts/demo/test_demo_runtime.py index 7cf225d2..89e22fa2 100644 --- a/scripts/demo/test_demo_runtime.py +++ b/scripts/demo/test_demo_runtime.py @@ -54,12 +54,13 @@ def setUp(self): 'engineHash': demo.digest('controlled-engine')} self.runtime.save() - def start_controlled_backend(self): + def start_controlled_backend(self, detached=False): script = self.root / 'backend/gradlew' script.write_text('''#!/usr/bin/env python3 import os, subprocess, sys, time from http.server import HTTPServer, BaseHTTPRequestHandler from pathlib import Path +if os.environ.get('CONTROLLED_DETACH') == 'true': os.setsid() child = subprocess.Popen([sys.executable, '-c', 'import time; time.sleep(120)']) server = HTTPServer(('127.0.0.1', 0), BaseHTTPRequestHandler) Path(os.environ['CONTROLLED_PORT_FILE']).write_text(str(server.server_port)) @@ -67,6 +68,8 @@ def start_controlled_backend(self): server.serve_forever() ''') script.chmod(0o755) + if detached: + self.runtime.config.values['CONTROLLED_DETACH'] = 'true' record = self.runtime.spawn('backend') def cleanup(): if demo.identity(record['pid']) == record: @@ -94,6 +97,27 @@ def test_stop_releases_children_and_actual_server_port(self): self.assertFalse(demo.port_open(port)) self.assertEqual([], demo.group_members(record['pgid'])) + def test_detached_child_is_identified_and_stopped_by_registered_identity(self): + record, port = self.start_controlled_backend(detached=True) + deadline = time.monotonic() + 5 + children = [] + while time.monotonic() < deadline: + children = self.runtime.owned_children('backend') + if demo.listener_owned(port, record, children): + break + time.sleep(0.05) + self.assertFalse(demo.listener_owned(port, record)) + self.assertTrue(demo.listener_owned(port, record, children)) + self.assertTrue(self.runtime.stop_process('backend')) + self.assertFalse(demo.port_open(port)) + self.assertFalse(any(demo.identity(item['pid']) == item for item in children)) + + def test_child_record_from_another_owner_is_refused(self): + self.start_controlled_backend() + self.runtime.stop_process('backend') + demo.write_json(self.runtime.component_path('backend', '.children.json'), {'owner': {}, 'children': []}) + with self.assertRaises(demo.DemoError): self.runtime.owned_children('backend') + def test_changed_identity_never_kills_live_process(self): record, port = self.start_controlled_backend() changed = {**record, 'started': 'controlled-stale-start'} diff --git a/scripts/demo/test_demo_verdict.py b/scripts/demo/test_demo_verdict.py index e511dd2a..1db64276 100644 --- a/scripts/demo/test_demo_verdict.py +++ b/scripts/demo/test_demo_verdict.py @@ -196,6 +196,12 @@ def test_event_redaction_happens_before_storage(self): self.assertNotIn("user@example.invalid", events) self.assertNotIn("server.invalid", events) + def test_query_credentials_are_redacted_without_knowing_the_password(self): + text = seed.safe_text('/login?email=fixture%40example.invalid&password=synthetic-unregistered-password&token=opaque-fixture-token') + self.assertNotIn('fixture%40example.invalid', text) + self.assertNotIn('synthetic-unregistered-password', text) + self.assertNotIn('opaque-fixture-token', text) + class HttpBoundaryTest(unittest.TestCase): """HTTP 오류 코드 해석과 원본 응답 크기 제한의 실제 클라이언트 경계를 확인한다."""