Skip to content

v5.2.0

Choose a tag to compare

@JinHo-von-Choi JinHo-von-Choi released this 15 Jul 22:12

Added

  • recall·contextincludeKeyName 파라미터: true 시 각 파편에 key_id·key_name(액세스 키 라벨)을 포함한다. 같은 키 그룹 스코프의 정보만 노출되며 기본 false. recallfields sparse 목록에도 key_id/key_name을 지정할 수 있다.
  • 임베딩 API 호출에 per-call 절대 타임아웃(EMBEDDING_TIMEOUT_MS, 기본 8000ms)과 프로세스 전역 동시성 세마포어(EMBEDDING_CONCURRENCY/EMBEDDING_SEM_WAIT_MS)를 적용해 임베딩 서비스 지연이 전체 요청 큐로 전파되는 것을 차단. 세마포어 대기 초과는 mcp_embedding_semaphore_wait_exceeded_total로 관측 가능.
  • initialize(무세션) 요청에 인증·DB 조회 이전 IP rate limit 선차단 추가. 차단 시 429 응답과 함께 mcp_initialize_ip_rate_limited_total 카운터가 증가한다.
  • batch_remember에 배열 전체 content 총 문자수 게이트(BATCH_REMEMBER_MAX_TOTAL_CHARS, 기본 200,000자) 추가. 항목별 4000자 상한과 별개로 요청 전체를 사전에 거부한다.
  • QuotaChecker.check()에 캐시 우선 판정 경로 추가: 잔여 할당량이 QUOTA_NEAR_LIMIT_MARGIN(기본 10)보다 크면 FOR UPDATE 트랜잭션 없이 통과하며, 이 경로는 mcp_quota_cache_pass_total로 관측된다. 한도 임박 시에만 기존 정밀 검사로 전환된다.
  • EmbeddingWorker가 remember() 동기 경로에서 이미 생성된 임베딩 벡터를 캐시로 재사용하여 동일 파편에 대한 중복 임베딩 API 호출을 제거.
  • 관리자 REST에 키 스코프 파편 조회·검색·통계·내보내기 엔드포인트 추가(key_id/group_id 스코프 적용).

Changed

  • 외부 reranker 3연속 실패 시 기본 정책을 in-process 전환에서 쿨다운 스킵으로 변경(RERANKER_EXTERNAL_FALLBACK=skip, 기본값). 쿨다운(RERANKER_EXTERNAL_COOLDOWN_MS, 기본 60초) 동안 external 호출을 생략하고 원점수(RRF 순서)를 유지하며, 만료 후 1건 재시도한다. RERANKER_EXTERNAL_FALLBACK=inprocess로 이전 동작(ONNX in-process 전환) 유지 가능.
  • 관리 콘솔 메모리 뷰: 1024px 미만 화면에서 Fragment Detail이 하단 고정 시트로 표시된다. 닫기 버튼과 ESC로 닫을 수 있으며 데스크톱 레이아웃은 동일하다.
  • admin API의 CORS 허용 origin을 화이트리스트 반사 방식으로 처리하고 인증 실패를 로깅한다(ADMIN_ALLOWED_ORIGINS).

Fixed

  • 외부 reranker의 TEI(text-embeddings-inference) 호환: 요청에 texts 필드를 documents와 함께 전송하고, [{ index, score }] 배열 응답을 매핑하며, 빈 바디 /health를 허용한다 (#22, @itismyfield 기여).
  • 외부 rerank 배열 응답 처리: 빈 배열은 실패로 간주해 폴백 경로를 타고, index 범위와 score 타입이 유효한 항목만 반영한다.