feat(chunk): pdf-page-v1.2 — PDF 페이지 oversize 분할 + 공유 oversize 모듈 #212
Reference in New Issue
Block a user
Delete Branch "feat/pdf-oversize-split"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
요약
md-heading-v2(PR #209)의 예산 초과 청크 분할을 PDF 청커에도 적용한다.
pdf-page-v1.1의chunk_page는 문장/문단 경계로만 잘라서, 경계 없는 거대 페이지(빽빽한 scanned page 가 한 줄로 OCR 된 경우)가 통째로 한 청크가 되어 strict 임베더(AMD Lemonade)에서 임베드 실패하는 hole 이 PDF 에 잔존했다.pdf-page-v1.2는 2-tier 로 닫는다: tier-1(문장/문단 greedy + overlap) 후, segment 가max_chunk_tokens(공유 config, default 4000) 초과면 tier-2 가 공유text_pieces로 재분할 → 모든 PDF 청크 ≤ 예산.설계: docs/superpowers/plans/2026-06-24-pdf-page-v1.2-oversize-split.md
변경
crate::oversize(text_pieces/char_pieces/BYTES_PER_TOKEN) — md 와 PDF 가 공유(단일 진실 공급원). md-heading-v2 는 호출만 하고 출력 byte-identical(md 라벨·동작 불변, parity 테스트 전부 통과 → md 버전 bump 없음).PdfPageV1Chunker { max_chunk_tokens }(이전 unit struct) +policy_hashbudget fold(md 동형) +pdf_chunker_from_config(kebab-app). 신규 config 키 없음(max_chunk_tokens공유).#c{segment_start}s{i}(미분할 단일 segment 는 bare#c{segment_start}→ 공통 경우 hash 컴포넌트 v1.1 동일).pdf-page-v1.1→pdf-page-v1.2→ 다음 plain ingest 에서 PDF 1회 자동 재청크(markdown/code 무영향).비범위 / known
text_pieces의 줄 구분자 소실로 drift 하는 버그라 코드 리뷰 후 제거(회귀 테스트로 잠금). citation 은 페이지 영역 단위(절대 drift 없음).검증
oversize_pdf_page_splits,oversize_pdf_page_with_newlines_splits_without_span_drift(span drift 회귀),non_oversize_pdf_unchanged,policy_hash_matches_md_heading_v2_for_identical_policy_and_budget,budget_in_policy_hash,crate::oversizeroundtrip 2종 + 기존 md parity 전부). kebab-app green. clippy-D warnings0.pdf-page-v1.2스탬프. 전 코퍼스 10215 청크 전부 ≤200, 초과 0.069c1ae69etoed8ab7cdbe