Skip to content

fix: 누락되던 컨트롤 텍스트를 보존하고 손실 보고 보강 - #1

Merged
myeolinmalchi merged 1 commit into
mainfrom
fix/lossy-control-and-audit-gaps
Jun 14, 2026
Merged

myeolinmalchi merged 1 commit into
mainfrom
fix/lossy-control-and-audit-gaps

Conversation

@myeolinmalchi

@myeolinmalchi myeolinmalchi commented Jun 14, 2026 •

Copy link
Copy Markdown
Owner

변경 요약

위험도 높은 변환 누락 항목 중 구조 변경 없이 안전하게 고칠 수 있는 것을 수정하고, 큰 항목(인라인 <href>, 인텍스트 객체 위치 등)은 문서화했습니다. 모든 손실은 기존처럼 LossReport로 기록됩니다.

무손실 보강 (텍스트 구제)

DocLang 대응 요소가 없어 손실만 기록하고 텍스트를 통째로 버리던 컨트롤을 평문 블록으로 구제합니다.

  • Hyperlink — HWP3 경로 전용(표시 텍스트가 본문 런이 아닌 컨트롤에 있고 URL은 rhwp가 아직 추출하지 않음). 표시 텍스트를 평문 블록으로 구제하고 링크 의미는 LossEntry 유지.
  • Ruby(덧말) — 덧말 텍스트를 구제.
  • CharOverlap(글자겹침) — 겹침 글자를 구제.

감사(audit) 누락 보완 (출력 불변, 손실 기록만 추가)

  • 개요 수준 7+ 클램프 — 6으로 평탄화될 때 LossEntry를 남김(기존엔 조용히 평탄화되어 추적 불가).
  • 폰트 손실 보고 — 7개 언어 슬롯(한글/영문/한자/일어/기타/기호/사용자) 전체를 검사(기존엔 한글 슬롯만 확인 → 영문/CJK/기호 전용 폰트가 보고되지 않던 문제).

문서화 (v2로 이연)

  • docs/v2-known-limitations.md 신규: 인라인 <href>(field-range splicing 필요), 인텍스트 객체 위치, 미주 별도 표현, 좌표 미부착 영역.
  • README 손실 보고 절에 구제 동작과 v2 문서 링크 추가.

관련 이슈

closes #

테스트 (이 레포 ci.yml 매트릭스 그대로 실행, 모두 통과)

  • cargo clippy --all-targets --no-default-features -- -D warnings — 경고 0
  • cargo test --no-default-features — 217 passed / 0 failed
  • cargo test --features serde — 217 passed / 0 failed

신규 테스트: hyperlink_rescues_text_and_records_loss, hyperlink_empty_text_emits_no_block, ruby_rescues_annotation_and_records_loss, char_overlap_rescues_glyphs_and_records_loss.

참고: cargo fmt --check는 이 레포 CI 게이트가 아닙니다. 레포에 rustfmt.toml/toolchain 핀이 없어 rustfmt 버전 차이로 기존부터 21개 파일에 차이가 있으며, 본 변경이 추가한 새 포맷 편차는 0건(main과 동일 집합)입니다. 포맷 정규화는 별도 작업으로 분리.

🤖 Generated with Claude Code

DocLang 대응 요소가 없어 손실 기록만 남기고 버리던 컨트롤의 텍스트를
평문 블록으로 구제하고, 감사 추적이 빠져 있던 손실 경로를 보완한다.

- Hyperlink(HWP3 표시 텍스트)/Ruby(덧말)/CharOverlap(글자겹침):
  텍스트를 평문 블록으로 구제하고 의미 손실은 LossEntry로 유지
- 개요 수준 7+ 클램프 시 LossEntry 기록 추가(기존엔 조용히 평탄화)
- 폰트 손실 보고를 7개 언어 슬롯 전체 검사로 수정(기존 한글 슬롯만)
- 인라인 href·인텍스트 객체 위치 등 v2 한계를 docs/v2-known-limitations.md에 정리

테스트: cargo test 202 passed; cargo clippy --all-targets 경고 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@myeolinmalchi myeolinmalchi changed the title fix: 조용히 버려지던 컨트롤 텍스트 구제 및 손실 보고 누락 보완 fix: 누락되던 컨트롤 텍스트를 보존하고 손실 보고 보강 Jun 14, 2026
@myeolinmalchi myeolinmalchi self-assigned this Jun 14, 2026
@myeolinmalchi myeolinmalchi added bug Something isn't working enhancement New feature or request labels Jun 14, 2026
@myeolinmalchi
myeolinmalchi merged commit 3fecf14 into main Jun 14, 2026
1 check passed
@myeolinmalchi
myeolinmalchi deleted the fix/lossy-control-and-audit-gaps branch June 14, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant