Task #656: typeset/layout 모델 통일 — 분할 표 셀 마지막 visible 줄 클립 본질 정정 (closes #656)#662
Closed
planet6897 wants to merge 5 commits into
Closed
Task #656: typeset/layout 모델 통일 — 분할 표 셀 마지막 visible 줄 클립 본질 정정 (closes #656)#662planet6897 wants to merge 5 commits into
planet6897 wants to merge 5 commits into
Conversation
- 수행계획서 + 구현계획서 + Stage 1 보고서 - typeset/layout drift 정량 (k-water-rfp p3 +9.6px/item, synam-001 p15 5.8px overflow) - 회귀 베이스 SVG/log 수집 (synam-001, kps-ai, k-water-rfp p3, exam_eng p8) - 자동 회귀 베이스: 1141+ test pass, 0 fail Refs edwardkim#656
- typeset/layout 양쪽 변경 (단단/다단 통일 + 본문 마지막 줄 trail_ls 제외) 시도 - 결과: - 개선: synam-001 p15 (OVERFLOW 1→0), exam_eng p8 (1→0) - 회귀: kps-ai (12→62), k-water-rfp (3→44), 페이지 수 감소 - 회귀 본질: 본문 advance 외 영역 (표/PartialTable/atomic_tac/partial/vpos correction) 비대칭 - 후퇴 결정 + 다음 진입 영역 (후보 A/B/C) 결정 요청 Refs edwardkim#656
본질 영역: - break 비교 시 마지막 visible 줄의 trail_ls 제외 - 셀 마지막 줄 미렌더 모델 (is_cell_last_line) 과 일관 - typeset 의 split_end_limit = avail_content 추정 영역과 정합 진단 측정 (synam-001 p15): - delta = +6.83px = ls(8.80) - 여유(1.97) - cum + h = 2244.00 ≤ abs_limit (2245.97) → 들어감 - cum + h + ls = 2252.80 > abs_limit → trail_ls 까지 포함 시 초과 회귀 검증: - synam-001 p15 PartialTable OVERFLOW 1→0 (자연 해소) - form-002 page-0 분할 표 마지막 visible 줄 1줄 (26 글자) 추가 (의도된 효과) - 광범위 회귀 0 (synam-001 25, kps-ai 12, k-water-rfp 3, exam_eng 1, aift 13, biz_plan 1, exam_science 1, hwp-multi-001 1 — 베이스 동일) - cargo test 1141 pass (svg_snapshot form-002/page-0 골든 갱신 영역 별도 시각 판정 후 진행) 본질 정정 영역이 Task edwardkim#485 의 epsilon (2.0px) 영역을 자연 대체. Refs edwardkim#656
회귀 검증: - 8 핵심 샘플 영역 베이스 동일 (synam-001/aift/biz_plan/exam_science/exam_eng/kps-ai/k-water-rfp/hwp-multi-001) - 본질 영역 자연 해소: synam-001 p15 PartialTable OVERFLOW 1→0 + form-002 page-0 분할 표 마지막 visible 줄 26 글자 클립 해소 - 자동 회귀 0: cargo test 1141 pass, svg_snapshot 6/6 영역: - tests/golden_svg/form-002/page-0.svg 갱신 (840→866 <text> 요소, +26 글자 의도된 효과) - mydocs/report/task_m100_656_report.md 최종 보고서 - mydocs/orders/20260507.md Task edwardkim#656 완료 영역 추가 Task edwardkim#485 vs Task edwardkim#656 본질: - Task edwardkim#485: epsilon = 2.0px 휴리스틱 마진 (임시방편) - Task edwardkim#656: trail_ls 제외 일관 모델 (셀 마지막 줄 미렌더 정합, 폰트 무관) → Task edwardkim#485 의 epsilon 영역을 본질적으로 대체 closes edwardkim#656
4 tasks
orders 일일 할일은 작업지시자 거버넌스 영역으로 PR 에 포함되지 않아야 함. upstream/devel 버전으로 복원. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
May 8, 2026
본 commit 영역은 PR #662 영역의 Stage 3 (commit 7a8ce60) 영역의 본질 정정 영역을 PR #657 (Task #485) 영역의 limit_reached 플래그 영역과 통합 영역의 충돌 해결 영역. 본질 정정 (Task #656): - abs_limit 그대로 사용 (Task #485 영역의 SPLIT_LIMIT_EPSILON = 2.0px 휴리스틱 제거) - break 비교 시 마지막 visible 줄의 trail_ls 제외 (line_break_pos = cum + h) - cum 누적은 line_h (h+ls) 그대로 (이전 줄들의 ls 는 다음 줄 직전 spacing) - break 비교는 line_break_pos = cum + h (이 줄의 ls 제외) 로 비교 - 이 줄이 visible 시 마지막 줄이면 trail_ls 미렌더 영역, abs_limit 안에 fit - typeset 의 split_end_limit = avail_content 추정과 정합 - 셀 is_cell_last_line 분기 의 trail_ls 미렌더 모델과 동일 본질 - 폰트 무관 영역 (Task #485 의 epsilon 영역의 휴리스틱 마진 영역의 본질 대체) 보존 (Task #485 Bug-1): - limit_reached 플래그 영역 (out-of-order 차단) - atomic 단락 영역의 abs_limit 비교 (epsilon 제거 후) 본 정정 영역의 본질: synam-001 p15 측정 영역: cum + h = 2244.00 ≤ abs_limit (2245.97) → 줄 fit cum + h + ls = 2252.80 > abs_limit → trail_ls 포함 시 6.83px 초과 → epsilon 휴리스틱 영역 없이 line_break_pos 영역의 본질 비교 영역으로 정정. 원 commit: 7a8ce60 (Task #656 Stage 3 — base=devel 영역 분기 영역 충돌) 메인테이너 충돌 해결: PR #657 limit_reached 플래그 보존 + PR #662 본질 정정 통합 Refs #656
edwardkim
added a commit
that referenced
this pull request
May 8, 2026
…줄 클립 본질 정정 closes #656 4 commits 통합 (메인테이너 충돌 해결): - 867abd3 Stage 1: 본질 정밀 측정 + 회귀 베이스 영역 구축 - 0b3f521 Stage 2: 단일 모델 통합 시도 — 회귀 발생, 후퇴 보고서 - 8555609 Stage 3: compute_cell_line_ranges break 조건 본질 정정 (메인테이너 충돌 해결) - 30021e5 Stage 4: 광범위 회귀 검증 + 골든 갱신 + 최종 보고서 본질 정정 (Task #656): - abs_limit 그대로 사용 (Task #485 영역의 SPLIT_LIMIT_EPSILON 2.0px 휴리스틱 제거) - break 비교 시 마지막 visible 줄의 trail_ls 제외 (line_break_pos = cum + h) - cum 누적은 line_h (h+ls) 그대로 - break 비교만 line_break_pos = cum + h 영역으로 정정 - typeset 의 split_end_limit = avail_content 추정과 정합 - 폰트 무관 영역 (epsilon 휴리스틱 본질 대체) 보존 (Task #485 Bug-1): - limit_reached 플래그 영역 (out-of-order 차단) 본 환경 검증: - cherry-pick: Stage 1+2 깨끗, Stage 3 충돌 → 메인테이너 통합 정정, Stage 4 orders 영역 ours - cargo test --release ALL PASS (1165 lib + svg_snapshot 7/7) - clippy clean - 광범위 sweep 7 샘플 170 페이지: same=166 / diff=4 (synam-001 p5/p15/p20/p21) - synam-001 p15 영역 본질 정정 영역의 영향 영역 본 환경 직접 재현 (md5 다름) PR: #662 컨트리뷰터: @planet6897 (16번째 사이클) 선행 PR: #657 (Task #485) 영역의 epsilon 영역 본질 대체 영역
edwardkim
added a commit
that referenced
this pull request
May 8, 2026
PR #662 (Task #656): typeset/layout 모델 통일 — 분할 표 셀 마지막 visible 줄 클립 본질 정정 - merge commit: 93ddeca (옵션 1 — 메인테이너 충돌 해결 통합 머지) - PR #657 (Task #485) epsilon 휴리스틱 영역 supersede 영역 - 통합 정정: epsilon 제거 + line_break_pos = cum + h (trail_ls 제외) + limit_reached 보존 - 본 환경 결정적 검증 1165 lib + svg_snapshot 7/7 + clippy clean - 광범위 sweep 7 샘플 170 페이지: same=166 / diff=4 (synam-001 영향만) - WASM 빌드 4,573,882 bytes - 작업지시자 시각 판정 ★ 통과 closes #656 산출물: - mydocs/pr/archives/pr_662_review.md - mydocs/pr/archives/pr_662_report.md - mydocs/orders/20260508.md 갱신 - 메모리 룰 갱신: feedback_pr_supersede_chain (머지+머지 패턴 신규 사례)
Owner
|
@planet6897 님 16번째 사이클 PR 처리 완료입니다. 본 환경 검증 결과: 메인테이너 충돌 해결 통합 머지 (옵션 1 — 작업지시자 직접 결정):
결정적 검증 통과:
광범위 회귀 sweep (7 샘플 170 페이지): 본질 정정 영역의 본 환경 직접 재현:
작업지시자 시각 판정 ★ 통과 ("통과입니다") — synam-001 p15 PartialTable OVERFLOW 해소 + form-002 page 0 분할 표 마지막 visible 줄 26 글자 클립 해소. 처리 보고서: `mydocs/pr/archives/pr_662_report.md` closes #656 |
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
작업지시자 시각 판정 (2026-05-09): PR #706 의 compute_cell_line_ranges cum 절대 동기화 정정이 한컴 PDF 권위본 (pdf/hwpx/form-002-2022.pdf page 1) 과 정합. 기존 golden SVG (md5 12a6cbcc) 는 PR #662 (Task #656) 의 잘못된 정정 영역으로 form-002 page 0 분할 표 셀 마지막 visible 줄 26 글자 ("ㅇPFC 나노산소운반체의 최적제조공정개발 및 GMP실증") 가 한컴 권위와 부정합으로 표시되던 영역. PR #706 의 정정 결과 (md5 672c78c6) 가 정답지 정합 — 26 글자가 한컴 PDF page 1 의 본문 영역 외부 영역에 위치하므로 표시되지 않는 영역이 정합. golden SVG 를 PR #706 출력으로 갱신. 부수 사실: PR #662 (Task #656) 의 form-002 정정 본질이 잘못된 영역. 후속 별도 영역 분석 필요 가능성 (작업지시자 결정). 검증: cargo test --release --test svg_snapshot form_002_page_0 통과. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
…ine_ranges cum 절대 동기화) 본질: samples/inner-table-01.hwp cell[11] (사업개요, 26 paras) cell-internal split 시 cum 누적 metric (line_height + line_spacing + spacing) 이 한컴 LINE_SEG.vpos 누적과 ~50px 어긋남 → abs_limit (한컴 vpos 단위) 와 비교 시 paragraph cut 위치 부정합 → p[17] '- 전사 데이터 수집/유통체계 구축' 누락. 정정 (compute_cell_line_ranges): - Task #697 영역: vpos 리셋 검출 (cell_first_vpos == 0 + cur_first_vpos < prev_end_vpos 시 cum = abs_limit, page-break 신호) - Task #700 영역: 정상 누적 시 vpos 절대 동기화 (target_cum > cum 일 때만 cum = target_cum, 전진 보장) - 가드: cell_first_vpos == 0 (한컴 정상 인코딩 케이스만), target_cum > cum (감소 금지) 부수 정정 (Task #697 후속, table_partial.rs): - split row 미분할 cell 의 valign 보존 — is_in_split_row && cell_was_split 영역 가드 좁힘. inner-table-01 cell[10] '사업개요' 라벨 중앙 정렬 정합. PR supersede 영역: PR #701 (Task #697) close → PR #706 (Task #697 + #700 통합) supersede 영역. 컨트리뷰터 자체 결정. 작업지시자 시각 판정 (2026-05-09): - BEFORE (devel, PR #662 본질 정정 영역) — form-002 page 0 마지막 visible 줄 26 글자 ('ㅇPFC 나노산소운반체의 최적제조공정개발 및 GMP실증') 표시 - AFTER (PR #706 적용) — 26 글자 누락 - PDF 권위본 (pdf/hwpx/form-002-2022.pdf page 1) 비교 결과 AFTER 가 한컴 정답지 정합 ★ — 26 글자가 본문 영역 외부 영역에 위치 (한컴 권위) → PR #706 이 한컴 권위 정합. golden SVG (tests/golden_svg/form-002/page-0.svg) 를 PR #706 출력으로 갱신 (md5 12a6cbcc → 672c78c6). PR #662 (Task #656) 의 form-002 정정 본질 영역이 잘못된 영역 — 후속 별도 분석 가능성. 검증: - cargo test --release: lib 1166 + 통합 ALL GREEN, failed 0 - svg_snapshot 8/8 (form-002 갱신 후 통과) - cargo clippy --release: 신규 경고 0 - WASM 빌드 4,596,712 bytes - 작업지시자 시각 판정 ★ 통과 Closes #700 Closes #697 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim
added a commit
that referenced
this pull request
May 9, 2026
- mydocs/pr/archives/pr_706_review.md (검토 문서, 옵션 A 결정 반영)
- mydocs/pr/archives/pr_706_report.md (처리 보고서, golden 갱신 명시)
- mydocs/plans/archives/task_m100_700{,_impl}.md
- mydocs/orders/20260509.md: PR #706 행 + 본 사이클 패턴 라인 추가
처리 결과:
- 옵션 A — 5 commits cherry-pick + golden SVG 갱신 + no-ff merge (fce2d87)
- 작업지시자 시각 판정 ★ 통과 — 정답지 정합 확정
- golden SVG 갱신 (md5 12a6cbcc → 672c78c6, 메인테이너 commit 78e38e5)
- PR supersede: PR #701 close → PR #706 (Task #697 + #700 통합)
- Issue #700 / #697 close 자동 정합
부수 사실:
- PR #662 (Task #656) 의 form-002 정정 본질 영역 부정확 — 후속 별도 분석 가능성
- `feedback_visual_judgment_authority` 권위 사례 신규 (CI 결정적 검증 vs 시각 판정 충돌)
Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
compute_cell_line_ranges(src/renderer/layout/table_layout.rs:2355-2371) 의 break 비교 시 마지막 visible 줄의 trail_ls 제외 — 셀 마지막 줄 미렌더 모델 (is_cell_last_line) 과 일관 영역본질
진단 측정 (synam-001 p15):
cum + h = 2244.00 ≤ abs_limit (2245.97)→ 줄 자체는 들어감cum + h + ls = 2252.80 > abs_limit→ trail_ls 까지 포함 시 6.83px 초과→ break 비교 시 trail_ls 가 포함되어 그 줄이 미렌더 처리. 셀 마지막 줄 trail_ls 는 다음 줄 직전 spacing 이므로 페이지 끝에서는 미렌더 — 비교에서도 제외해야 일관.
본질 영역 자연 해소
Task #485 vs Task #656 본질
→ Task #485 의 epsilon 영역을 본질적으로 대체. 본 PR 머지 후 origin/pr/task-485 의 epsilon 영역 자연 해소.
진행 단계 영역
Stage 2 시도 (광범위 단일 모델 통합) 의 후퇴 결과로 본 영역의 본질이 광범위함 입증. 분할 표 영역 만 정정하는 후보 B 진입이 적정 영역으로 검증.
Test plan
변경 영역
src/renderer/layout/table_layout.rs:2355-2371(break 조건)tests/golden_svg/form-002/page-0.svg(840→866<text>요소, +26 글자 의도된 효과)보고서
mydocs/plans/task_m100_656.mdmydocs/plans/task_m100_656_impl.mdmydocs/working/task_m100_656_stage1.mdmydocs/working/task_m100_656_stage2.mdmydocs/working/task_m100_656_stage3.mdmydocs/report/task_m100_656_report.mdTask #485 PR (origin/pr/task-485) 처리 권유 영역
본 PR 머지 후 Task #485 의 epsilon 영역 자연 해소 → close 권유. 단 Task #485 의 out-of-order 정정 영역 (5f56c66 의 limit_reached 플래그) 은 별도 영역. 본 PR 머지 후 회귀 점검 후 별도 이슈 영역 결정 권유.
closes #656