Task #1557: HWPX 저장본 한글 페이지 붕괴 해소 (secCnt) [#1558 위 스택]#1559
Merged
Conversation
serialize_hwpx 가 header.xml <hh:head secCnt> 를 stale 한 doc_properties.section_count(=1)에서 가져와, 섹션 파일은 3개 쓰면서 secCnt=1 기록 → 한글이 뒤 구역 미로드 → 다중 페이지 문서가 1쪽으로 붕괴(IR diff 무관, PASS 파일 포함). header.rs:37 을 doc.sections.len() 으로 교정. 검증: 36382669 한글 8→8 완전 복원(IR diff=0 불변), 36388145 5→5. 회귀 가드 단위 테스트 + hwpx_roundtrip_baseline 4 passed. 실문서 표본 붕괴율 10%→5%. closes edwardkim#1557 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
08e1970 to
b8fa020
Compare
Collaborator
|
@planet6897 감사합니다. #1558 위 스택 PR로 확인했고, 최신 검증 결과:
merge commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
HWPX 저장(
serialize_hwpx)본을 한글 2024 가 열 때 다중 페이지 문서가 1쪽으로 붕괴하는 결함을 해소합니다 (closes #1557).근본원인
src/serializer/hwpx/header.rs:37가<hh:head secCnt>를 stale 가능한doc.doc_properties.section_count(=1)에서 가져옴. 섹션 파일은doc.sections(=3) 기준으로 방출되어 secCnt(1) < 실제 섹션 수(3) 불일치 → 한글이 구역 1·2 를 로드하지 않고 1쪽으로 붕괴.격리 실험으로 확정: 저장본의
secCnt="1"→"3"치환만으로 한글 8→8 완전 복원.수정
실제 직렬화 섹션 수와 항상 일치. IR 의미 변경 없음(메타데이터 교정).
검증
write_header_seccnt_matches_section_count(한글 미접근 환경 감지).cargo test --test hwpx_roundtrip_baseline4 passed(회귀 없음), 결합 빌드 성공.발견 경위
fidelity v2(fresh 바이너리, hwpdocs 실문서 1135건) 4단계 오라클 검증에서 발견. IR diff 게이트도 rhwp 페이지수도 검출 불가, 한글 오라클 전용(PASS 파일도 붕괴). 근거:
output/poc/fidelity2/report.md.범위 외 (후속)
표 셀 pic 드롭(545건), char_shape 8유닛 시프트(#1556), 잔여 2→1 단일구역 붕괴, header.xml 기타 차이(imgBrush/strikeout/shadow/tabDef switch).
🤖 Generated with Claude Code