Task #724: hwp3-sample5-hwp5.hwp paragraph 441 wrap zone + HWP3 파서 IR 정합 (closes #724)#732
Closed
jangster77 wants to merge 8 commits into
Closed
Task #724: hwp3-sample5-hwp5.hwp paragraph 441 wrap zone + HWP3 파서 IR 정합 (closes #724)#732jangster77 wants to merge 8 commits into
jangster77 wants to merge 8 commits into
Conversation
…loses edwardkim#722) 페이지 8/27/48 의 wrap=Square 그림 paragraph 한컴 PDF 권위 자료 정합 회복. 본질 정정 영역: - typeset.rs: anchor 다음 paragraph register + anchor host self register (image margin_right 추출, LINE_SEG 갯수 + caption_room 가드) - pagination.rs: WrapAnchorRef.anchor_image_margin_right 필드 추가 - paragraph_layout.rs: wrap_anchor 처리 cs/sw 보정 (inter-image-text gap 3mm) 3 paragraph 정합: - 페이지 8 paragraph 175 (LINE_SEG 2): image 우측 wrap zone + gap 3mm - 페이지 27 paragraph 779 (LINE_SEG 1, caption_room>line_height): image 위 caption - 페이지 48 paragraph 1394 (LINE_SEG 1, caption_room≤line_height): image 우측 wrap zone 검증: 1165 lib + clippy clean + 광범위 sweep 209 fixture DIFF 0 + rsvg-convert PNG 시각 판정 PDF 권위 정합 ★ 통과. HWP5 변환본 결함 (hwp3-sample5-hwp5.hwp paragraph 441) 은 별도 issue 분리. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…+ HWP3 파서 IR 정합 (closes edwardkim#724) PR edwardkim#723 (Task edwardkim#722) 후속. HWP5 변환본 paragraph 441 wrap zone 매칭 실패 + HWP3 파서 sw=0 인코딩 결함 (한컴 HWP5 변환본 IR 정합 sw=51024 위반). 본질 정정: - typeset.rs: anchor host cs=0 caption-style 매칭 가드 (anchor_image_match) + Task edwardkim#321 vpos-reset 가드의 wrap_around 강제 종료 (anchor cs=0 한정) - parser/hwp3/mod.rs: 빈 paragraph + page break flag 가드 (column_type=Normal + force_vpos_reset) + wrap_zone 영역 끝 sw=col_area_width 정합화 + wrap_zone 비활성 cs=0/sw=0 정합화 작업지시자 핵심 지적: "HWP3 파서가 잘못해석해서 IR 로 잘못 전달, composer.rs 에서 처리하면 너무 예외" — HWP3 파서 ↔ Document IR 표준 정합 영역 본질 식별. CLAUDE.md HWP3 파서 규칙 정합 (composer/layout 미수정). 3 paragraph 정합 회복 (HWP3 native): - 페이지 4 paragraph 75: image 우측 wrap zone 21 lines - 페이지 9 paragraph 191/192: "루트 파일시스템" 등 표시 회복 - 페이지 16 paragraph 435/441/443: 본문 + image wrap zone HWP5 변환본: - 페이지 16 paragraph 441/442/443: image 우측 wrap zone (anchor_image_match) - 페이지 22 paragraph 599: 페이지 분할 정합 검증: 1166 lib + clippy clean + 광범위 sweep 209 fixture DIFF 0 시각 판정 PDF 권위 정합 ★ 통과. PR edwardkim#723 (Task edwardkim#722) 머지 후 적용 요청. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced May 9, 2026
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…시각 정합 PR #723 (@jangster77) 옵션 A 처리 — 1 commit cherry-pick + no-ff merge. 본질 정정 (3 영역): - src/renderer/pagination.rs (+6 LOC): WrapAnchorRef 영역 anchor_image_margin_right 필드 추가 - src/renderer/typeset.rs (+56 LOC): anchor 다음 paragraph + anchor host self-register, caption_room 가드 (LINE_SEG ≥ 2 / LINE_SEG 1 + caption_room ≤ line_height → wrap zone, LINE_SEG 1 + caption_room > line_height → caption-style) - src/renderer/layout/paragraph_layout.rs (+10/-3): wrap_anchor 영역 cs/sw 영역 inter-image-text gap (3mm = 852 HU) 보정 대상 영역: - 페이지 8 paragraph 175 (디렉토리 트리 설명) - 페이지 27 paragraph 779 (Figure 4-4 caption — caption-style 보존) - 페이지 48 paragraph 1394 (접근 제어) 자기 검증: - cargo build --release ✅ - cargo test --release: lib 1173 + 통합 ALL GREEN - cargo clippy --release: 신규 경고 0 - 광범위 sweep: 7 fixture / 170 페이지 / 168 same / 2 diff (exam_science_001/002.svg) → text 좌표 시프트 영역, exam_science 영역 wrap=Square 그림 부재 영역 → 작업지시자 시각 판정 게이트 영역 시각 판정 게이트: - 페이지 8/27/48 PDF 권위본 (pdf/hwp3-sample5-2022.pdf) 정합 점검 - exam_science p1 회귀 점검 (text 좌표 시프트 의도성) 분리된 후속: - Issue #732 (Task #724): HWP5 변환본 paragraph 441 영역 별도 처리 closes #722
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…#732 통합 결정 - mydocs/pr/archives/pr_723_review.md: 검토 문서 archives 이동 - mydocs/pr/archives/pr_723_report.md: 처리 보고서 작성 · PR 본질 (페이지 8/27/48 PDF 정합) ✅ 시각 판정 통과 · exam_science p1/p2/p8 5번/8번/12번 문항 지문 왼쪽 경계 클립핑⚠️ 회귀 판정 · 처리 결정: 머지 유지 + PR #732 (Task #724, 동일 컨트리뷰터) 후속 통합 - mydocs/plans/archives/task_m100_722.md(_impl).md: plans archives 이동 - mydocs/orders/20260510.md: PR #723 항목 추가 + 후속 영역 PR #732 영역 통합 명시 `feedback_pr_supersede_chain` 신규 패턴 (c) 등록 — 머지+회귀 정정 후속 PR 통합 영역
This was referenced May 9, 2026
…am_science 5번/8번/12번 클립핑 정정 본질 - PR edwardkim#723 (Task edwardkim#722) 머지 후 메인테이너 광범위 sweep 에서 발견 (PR edwardkim#723 보고서): exam_science.hwp 1, 2, 8 페이지 — 5번/8번/12번 문항 지문과 그림 배치 영역 에서 지문 왼쪽 끝 경계 글자 클립핑 회귀 (HWP3 native sweep diff 2건). - 진단 영역 — Task edwardkim#722 typeset.rs Block 2 (host_self register, 786~) 가 exam_science p.21 (5번)/p.37 (8번)/p.60 (12번) 의 Square wrap picture (image_voff=0, image_mr=0) 에서 fire → wrap_anchor 등록 후 paragraph_layout 의 wrap_anchor 분기에서 line cs/sw 본 sample line_seg 인코딩 (sw=19592 등) 으로 layout → text justification 영향 → 글자 위치 ±2~13px 시프트 + 좌측 경계 클립핑. 가드 영역 - Task edwardkim#722 의 본질 (sample5 page 8/27/48) 영역 image_mr > 0 (image margin 부재 아님) → 가드 통과, host_self register 정합 보존. - exam_science 의 회귀 영역 image_mr = 0 (image margin 없음, line_seg 가 이미 wrap zone 정합) → 가드 차단, OLD 의 col_area-full-width layout 정합 복원. 검증 - exam_science 1, 2 페이지: feb11e7 baseline 정합 회복 (diff 0) - sample5 page 8/27/48: ab910d6 (Task edwardkim#722 본질) 정합 보존 (diff 0) - exam_eng/aift/synam-001 등 다른 sample: 본 가드 영향 없음 (HEAD 의 다른 PR merge 영역 기존 diff 와 동일) - cargo test --lib --release: 1173 passed - cargo clippy --release --lib: 신규 경고 0 후속 - 메인테이너 광범위 sweep 에서 exam_eng/aift/synam-001 영역의 다른 diff (HEAD 의 multiple devel merge 영역 기존) 확인 필요 시 별도 task.
edwardkim
pushed a commit
that referenced
this pull request
May 9, 2026
…2번 클립핑 정정 본질 - PR #723 (Task #722) 머지 후 메인테이너 광범위 sweep 에서 발견 (PR #723 보고서): exam_science.hwp 1, 2, 8 페이지 — 5번/8번/12번 문항 지문과 그림 배치 영역 에서 지문 왼쪽 끝 경계 글자 클립핑 회귀 (HWP3 native sweep diff 2건). - 진단 영역 — Task #722 typeset.rs Block 2 (host_self register, 786~) 가 exam_science p.21 (5번)/p.37 (8번)/p.60 (12번) 의 Square wrap picture (image_voff=0, image_mr=0) 에서 fire → wrap_anchor 등록 후 paragraph_layout 의 wrap_anchor 분기에서 line cs/sw 본 sample line_seg 인코딩 (sw=19592 등) 으로 layout → text justification 영향 → 글자 위치 ±2~13px 시프트 + 좌측 경계 클립핑. 가드 영역 - Task #722 의 본질 (sample5 page 8/27/48) 영역 image_mr > 0 (image margin 부재 아님) → 가드 통과, host_self register 정합 보존. - exam_science 의 회귀 영역 image_mr = 0 (image margin 없음, line_seg 가 이미 wrap zone 정합) → 가드 차단, OLD 의 col_area-full-width layout 정합 복원. 검증 - exam_science 1, 2 페이지: feb11e7 baseline 정합 회복 (diff 0) - sample5 page 8/27/48: ab910d6 (Task #722 본질) 정합 보존 (diff 0) - exam_eng/aift/synam-001 등 다른 sample: 본 가드 영향 없음 (HEAD 의 다른 PR merge 영역 기존 diff 와 동일) - cargo test --lib --release: 1173 passed - cargo clippy --release --lib: 신규 경고 0 후속 - 메인테이너 광범위 sweep 에서 exam_eng/aift/synam-001 영역의 다른 diff (HEAD 의 multiple devel merge 영역 기존) 확인 필요 시 별도 task.
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…one + HWP3 파서 IR 정합 + exam_science 회귀 정정 PR #732 (@jangster77) 옵션 A 처리 — 2 commits cherry-pick (ab910d6 skip — PR #723 영역 영역 적용 영역) + no-ff merge. 본질 정정: 1. Task #724 본질 (commit a8b8eff) — HWP5 변환본 paragraph 441 wrap zone + HWP3 파서 IR 정합 - typeset.rs (+49): anchor host cs=0 caption-style 매칭 가드 (anchor_image_match) + Task #321 vpos-reset 가드 영역 wrap_around 강제 종료 (anchor cs=0 한정) - parser/hwp3/mod.rs (+37/-5): 빈 paragraph + page break flag 가드 + wrap_zone 영역 끝 sw=col_area_width 정합화 + wrap_zone 비활성 cs=0/sw=0 정합화 - CLAUDE.md HWP3 파서 규칙 정합 (composer/layout 미수정) 2. PR #732 후속 (commit ab2fa52) — exam_science 회귀 정정 (PR #723 영역 영역 host_self register 영역 영역) - typeset.rs (+9/-1): image_margin_right_hu > 0 가드 추가 - exam_science p.21 (5번) / p.37 (8번) / p.60 (12번) 영역 image_mr=0 → 가드 차단 → OLD 의 col_area-full-width layout 정합 복원 - hwp3-sample5.hwp 페이지 8/27/48 (Task #722 본질) 영역 image_mr > 0 → 가드 통과 → 정합 유지 PR supersede 체인 (c) 패턴 권위 사례: - PR #723 (Task #722, 16번째) 머지 commit 6ced74b + 시각 판정 영역 exam_science 회귀 발견 - PR #732 (Task #724, 17번째) 영역 컨트리뷰터 자발 영역 영역 회귀 정정 통합 - feedback_pr_supersede_chain (c) 패턴 정합 자기 검증: - cherry-pick a8b8eff + ab2fa52 충돌 0건 (ab910d6 영역 영역 PR #723 머지 영역 영역 skip) - cargo build/test --release ✅ ALL GREEN - 광범위 sweep 7 fixture / 170 페이지: exam_science 2 diff — **회귀 정정 입증** (좌측 시프트 영역 영역 정상 복원, BEFORE 우측 시프트 회귀 → AFTER 정상) · "후" 585.34 → 583.18 / "시" 608.23 → 603.93 / "간" 620.80 → 616.50 / 그림 655.87 → 649.87 - WASM 빌드 4.65 MB - 작업지시자 시각 판정 ✅ 통과 (HWP3 sample5 8/27/48 정합 보존 + HWP5 변환본 16/22 본질 + exam_science p1/p2 회귀 정정 입증) IR 정합 검증 (HWP3 native vs HWP5 변환본): - 171 column_type: Page → Normal (HWP5 변환본 정합) - 189 ls[3~6] sw: 0 → 51024 (col_area 전체 폭) - 191 ls[0] sw: 0 → 51024 - 435 ls[0~2] vpos: 221760 (절대) → 1440 (페이지 안) - 443 ls[2~6] sw: 0 → 51024 closes #724 관련: PR #723 영역 영역 회귀 정정 통합 (Issue #762 영역 영역 별 영역 — exam_math `inf` 회귀 영역 영역 별건)
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
- mydocs/pr/archives/pr_732_review.md: 검토 문서 archives 이동 - mydocs/pr/archives/pr_732_report.md: 처리 보고서 작성 · Task #724 본질 (HWP5 변환본 paragraph 441 wrap zone + HWP3 파서 IR 정합) · PR #732 후속 (PR #723 영역 영역 exam_science 회귀 정정 — image_mr > 0 가드) · feedback_pr_supersede_chain (c) 패턴 권위 사례 · 작업지시자 시각 판정 ✅ 통과 - mydocs/plans/archives/task_m100_724.md(_impl).md: plans archives 이동 - mydocs/orders/20260510.md: PR #732 항목 추가 (5/10 사이클 영역 영역 7건 처리)
Owner
|
@jangster77 님, 검토 + 머지 완료했습니다. 처리 결과옵션 A (2 commits cherry-pick + no-ff merge `0e419fb8`) 로 처리. 본 환경 영역 영역 영역 8 commits 영역 영역 영역 cherry-pick 영역:
cherry-pick 충돌 0건. 자기 검증
작업지시자 시각 판정 ✅ 통과
PR supersede 체인 (c) 패턴 권위 사례본 PR 영역 영역 영역 `feedback_pr_supersede_chain` (c) 패턴 영역 영역 명확 영역 영역 권위 사례 영역:
본질 정합작업지시자 핵심 지적: "HWP3 파서가 잘못해석해서 IR 로 잘못 전달, composer.rs 에서 처리하면 너무 예외 — HWP3 파서 ↔ Document IR 표준 정합 영역 본질" 본 PR 영역 영역 CLAUDE.md HWP3 파서 규칙 정합 영역 영역 — composer/layout 미수정, HWP3 파서 영역 영역 IR 정합화 영역 본질 도달. `feedback_hancom_compat_specific_over_general` 영역 정합 — `image_margin_right_hu > 0` 가드 영역 영역 case 가드 좁힘 (일반화 host_self register 영역 영역 회귀 본질). 처리 보고서: `mydocs/pr/archives/pr_732_report.md`. IR 정합 검증 (HWP3 native vs HWP5 변환본)
@jangster77 님 17번째 사이클 (HWP 3.0 파서 영역 핵심) 컨트리뷰션 영역 — 5/10 사이클 영역 영역 PR #720/#723/#725/#728/#729/#730/#732 영역 7건 처리 완료 영역. |
This was referenced May 9, 2026
Closed
This was referenced May 10, 2026
edwardkim
pushed a commit
that referenced
this pull request
May 10, 2026
…eset 후속 가드
진행 단계:
- Stage 1: 본질 진단 (Document IR Picture + HWP3 파서 그림 + 폰트)
- Stage 2: image placeholder Document IR 확장
- Stage 3: TAC 그림 paragraph line_spacing=600 정합
- Stage 4: 매칭 실패 후 vpos-reset 후속 가드 (HWP5 변환본 paragraph 26)
본질 정정:
- model/image.rs: ImageAttr.external_path 필드 추가
- parser/hwp3/mod.rs: pic_name → external_path 전달, TAC ls=600
- renderer/render_tree.rs: ImageNode.external_path 필드
- renderer/layout/{picture_footnote,table_cell_content}.rs: external_path 전달
- renderer/svg.rs: 빈 binary + external_path placeholder
- renderer/typeset.rs: 매칭 실패 후 vpos-reset 후속 가드
- main.rs: dump 출력 external_path
- paint/json.rs, serializer/hwpx/picture.rs, document_core/commands/object_ops.rs: ImageAttr 구성 정합
검증:
- cargo test --lib --release: 1166 passed
- cargo clippy --release: 신규 경고 0
- 광범위 sweep: DIFF 0 (kps-ai 등 회귀 0)
시각 판정 (한컴 viewer ★):
- HWP3 native + HWP5 변환본 페이지 1 image placeholder 정합
- HWP5 변환본 페이지 2 paragraph 26 (제목차례) 시작 정합
PR #732 (Task #724) 머지 후 적용 요청.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.
본 PR 은 PR #723 (Task #722) 머지 후 적용 요청합니다. 본 PR 은 PR #723 위 분기되어 있으며, PR #723 머지 시 자동으로 base 갱신되어 본 task #724 의 commit (
a8b8eff) 만 남습니다.요약
hwp3-sample5-hwp5.hwp(HWP3→HWP5 한컴 변환본) paragraph 441 wrap zone 매칭 실패 + 본 환경 HWP3 파서의 sw=0 인코딩 결함 (한컴 HWP5 변환본 IR 정합 sw=51024 위반) 본질 정정.본질
작업지시자 핵심 지적: "HWP3 파서가 잘못해석해서 IR 로 잘못 전달, composer.rs 에서 처리하면 너무 예외 — HWP3 파서 ↔ Document IR 표준 정합 영역 본질"
본 환경 HWP3 파서가 wrap_zone 영역 끝 / 페이지 break 후 paragraph 의 LINE_SEG.sw 를 0 으로 인코딩. 한컴 HWP5 변환본 IR 정합은 sw=51024 (col_area 전체 폭). 본 환경 composer/layout 의 sw=0 fallback 결함으로 좁은 폭 분산 layout 발생.
CLAUDE.md "HWP3 파서 규칙" 정합 — composer/layout 정정 영역 회피, HWP3 파서 영역 정합화로 본질 도달.
정정 영역
src/renderer/typeset.rsanchor_image_matchimage expected_cs 정확 일치) (2) Task #321 vpos-reset 가드의 wrap_around 강제 종료 (anchor cs=0 한정)src/parser/hwp3/mod.rsCase 가드 정합
typeset.rs:
anchor_image_match(anchor cs=0 한정): expected_cs = (image_x_offset + width + 2*margin) - body_left + tolerance 200 HU + para_cs+sw <= body_wparser/hwp3/mod.rs:
IR 정합 검증 (HWP3 native vs HWP5 변환본)
시각 판정 (PDF 권위 자료 정합)
검증
cargo test --lib --release: 1166 passed (회귀 0)cargo clippy --release: 신규 경고 0Test plan
cargo test --lib --release회귀 0 (1166 passed)cargo clippy --release신규 경고 0🤖 Generated with Claude Code