Skip to content

HWPX 직렬화 무손실 개선 + opengov 회귀 말뭉치 + 페이지붕괴 군집 해소 (#1586 통합 squash)#1597

Merged
edwardkim merged 1 commit into
edwardkim:develfrom
planet6897:pr/devel-1586-squash
Jun 27, 2026
Merged

HWPX 직렬화 무손실 개선 + opengov 회귀 말뭉치 + 페이지붕괴 군집 해소 (#1586 통합 squash)#1597
edwardkim merged 1 commit into
edwardkim:develfrom
planet6897:pr/devel-1586-squash

Conversation

@planet6897

@planet6897 planet6897 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

개요

활성 devel 통합 브랜치의 누적 작업을 upstream/devel 기준 단일 squash 커밋으로 정리합니다. PR #1586을 대체합니다.

closes #1586

포함 작업

직렬화/렌더 무손실

회귀 게이트/말뭉치

조사/도구

#1589 페이지 붕괴 군집 — IR-invisible 직렬화 결함 4종 누적 해소

IR diff=0(게이트 PASS)인데 한글에서만 페이지가 붕괴(예 3→2, 29→3)하는 군집(~16%)을 단락 이진탐색 + 한글 오라클(PageCount)로 분해:

  1. HWPX 직렬화 시 ClickHere 필드 타입 CLICKHERE(틀림)→CLICK_HERE → 페이지 붕괴 (IR-invisible) #1595 ClickHere CLICKHERECLICK_HERE (지배, 오라클 37/40 해소)
  2. HWPX 직렬화 시 holdAnchorAndSO 드롭(1→0) → 페이지 붕괴 (IR-invisible) #1594 holdAnchorAndSO 하드코딩 "0"→IR 값 방출 (하단 앵커 개체)
  3. HWPX generic-shape(polygon/ellipse/arc/curve) 지오메트리 직렬화 미완 → 페이지 붕괴 #1596 generic-shape 지오메트리 lineShape/shadow/꼭짓점 드롭 복원
  4. HWPX ellipse/arc 전용 지오메트리(center/축/시작끝점) 직렬화 완성 #1598 ellipse/arc 전용 지오메트리 center/축/시작끝점 파서 미적재+직렬화 드롭 복원
    → 통제 비교 각 단계 악화 0, 잔여 표본 붕괴 미관측.

검증 (로컬, upstream/devel 기준)

비고

  • 단일 squash라 task 단위 히스토리는 원본 devel 브랜치에 보존됨.

@planet6897 planet6897 force-pushed the pr/devel-1586-squash branch from 58d755a to 8f4e529 Compare June 27, 2026 11:22
@planet6897 planet6897 changed the title HWPX 직렬화 무손실 개선 + opengov 회귀 말뭉치 + 페이지붕괴 조사 (#1586 통합 squash) HWPX 직렬화 무손실 개선 + opengov 회귀 말뭉치 + 페이지붕괴 군집 해소 (#1586 통합 squash) Jun 27, 2026
…ash)

활성 devel 통합 브랜치의 누적 작업을 upstream/devel 기준 단일 squash 커밋으로 정리.

포함 (직렬화/렌더 무손실):
- edwardkim#1584 본문 인라인 ColumnDef 드롭 / edwardkim#1587 Ruby(덧말) / edwardkim#1588 선 도형 shapeComment
- edwardkim#1592 빈 문단 spurious (0,0) / edwardkim#1594 holdAnchorAndSO + diff_documents 게이트
- edwardkim#1595 ClickHere CLICK_HERE (붕괴 지배원인) / edwardkim#1596 generic-shape 지오메트리
- edwardkim#1598 ellipse/arc 전용 지오메트리 파서+직렬화

회귀 게이트: edwardkim#1564 opengov 말뭉치/스냅샷, serializer/hwpx rustfmt 정리
조사: edwardkim#1589 페이지 붕괴 군집/오라클, edwardkim#1591 북마크 hoist(롤백)

edwardkim#1589 누적 4종(holdAnchorAndSO/ClickHere/generic-shape/ellipse-arc) IR-invisible
직렬화 결함 해소. 검증: cargo test --lib 1970 passed 0 failed, fmt --all clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@planet6897 planet6897 force-pushed the pr/devel-1586-squash branch from 8f4e529 to e8718d5 Compare June 27, 2026 11:28
@edwardkim edwardkim self-requested a review June 27, 2026 11:54
@edwardkim edwardkim added the hwpx HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선 label Jun 27, 2026
@edwardkim edwardkim added this to the v1.0.0 milestone Jun 27, 2026
@edwardkim

Copy link
Copy Markdown
Owner

이 PR 처리 후, #1533 PR 처리를 진행하겠습니다. @planet6897 님 작업으로 0.8 버전으로 올려야 하겠습니다.
더불어 #858 에 게시된 단톡방 참여를 기대하겠습니다. 카톡을 사용하지 않으신다면 어쩔 수 없지만 말이죠!

edwardkim added a commit that referenced this pull request Jun 27, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@edwardkim edwardkim merged commit 138ebf8 into edwardkim:devel Jun 27, 2026
8 checks passed
@edwardkim

Copy link
Copy Markdown
Owner

merge 완료했습니다 (merge commit 138ebf8, origin/devel 포함 검증). 감사합니다, @planet6897!

8개 직렬화 무손실 작업을 단일 squash로 잘 정리해 주셨고, 무엇보다 'IR diff=0(게이트 PASS)인데 한글에서만 페이지 붕괴'하던 IR-invisible 결함 군집(~16%)을 한글 오라클로 분해한 접근이 인상적입니다.

검증:

  • 신규 issue_1598(ellipse 지오메트리) 통과, opengov 말뭉치 스냅샷 2/2, hwpx roundtrip baseline 4/4, visual roundtrip baseline 3/3
  • 전체 cargo test --tests FAILED 0건(lib 1970), fmt/clippy clean, 충돌 0건(CLEAN)

특히 #1594에서 결함을 고치는 데 그치지 않고 diff_documents에 diff_hold_anchor(prevent_page_break) 검사를 추가해 IR-invisible 갭을 게이트가 검출하도록 강화한 점이 좋습니다 — 동종 회귀 재발을 구조적으로 막습니다.

페이지 붕괴 해소(오라클 92.5%)는 한글 환경 측정이라 로컬에서는 게이트/baseline으로 간접 검증했고, 한글 오라클 권위는 작업지시자 환경에 둡니다. 좋은 작업 감사합니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hwpx HWPX 포맷 처리: 파싱, 직렬화, roundtrip, XML/ZIP 패키지 보존, 호환성 개선

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants