Repository navigation
fix(table-patch): keep the saved height of a table split across pages - #672
Merged
Merged
Conversation
A table Hancom split across pages saves the height of its part on the first page, not its rows' height (tables 19-21 of the evaluation-plan form have the same 15 rows and save 30463, 17551 and 5865). Moving that height by the rows' delta has no basis and took table 8 of the form (rows 28762, saved 13222) to 0 when the evaluation-plan fill deleted nine of its rows. Structural edits now leave such a table's height as it was, as they already do for rows the estimate does not follow; a table saved as tall as its rows still moves by their delta. Follow-up to #539 (fe546d1). This is what broke the frozen evalplan byte parity in python-hwpx-automation since 2026-10-30. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 of 3 tasks
airmang
commented
Nov 6, 2026
airmang
left a comment
Owner
Author
There was a problem hiding this comment.
검토 완료: _grow_height의 기존 측정 실패 처리와 객체/바이트 편집 호출 경로를 함께 확인했습니다. 저장 높이가 편집 전 행 높이보다 작을 때만 기존 높이를 보존하므로, 전체 행 증감으로 첫 조각 높이가 0이 되던 경로를 막습니다. 독립적으로 표8의 일부 행 삭제/추가에서 13222 보존, 표9 삭제에서 25961→24212 및 객체/바이트 경로 일치를 확인했습니다. 관련 구조 편집 로컬 151개 통과. 정확한 head의 CI 13개 성공: Python3.12 로그 7667 passed,18 skipped,1 xfailed 및 Ruff/mypy/Pyright 통과. 최신 main 40a04fe6와 통합 tree c6555beb도 head와 동일함을 확인했습니다. 변경 범위에서 추가 결함을 발견하지 못했습니다. 데스크톱 한/글 시각 검증을 주장하지 않습니다. 자기 PR이므로 COMMENT로 기록합니다.
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.
요약
#539(fe546d1)의 표 높이 보정이, 쪽을 넘어 나뉜 표의 저장 높이(
hp:sz@height)를 0으로 만듭니다. 이번 PR은 그런 표의 높이를 그대로 둡니다.tests/fixtures/m105_evalplan/blank_form_3hak.hwpx(한/글 저장본)를 보면, 15행이 같은 표 19·20·21이 각각 30463·17551·5865로 저장돼 있습니다.13222 + (9001 − 28762)= 음수가 되고, 0으로 잘립니다._grow_height에서 저장 높이가 측정한 행 높이보다 작으면 높이를 바꾸지 않습니다. #539가 정한 "모델이 따라가지 못하는 표는 추측으로 고치지 않는다"는 정책과 같습니다. 객체 경로와apply_table_ops가 같은 함수를 쓰므로 둘 다 적용됩니다.python-hwpx-automation의 evalplan 바이트 parity 테스트 4개가 10-30부터 모든 PR에서 실패한 원인 중 하나가 이것입니다. core 커밋을 하나씩 바꿔 가며 확인했고, fe546d1^1에서 통과, fe546d1c에서 실패합니다. automation 쪽 갱신은 airmang/python-hwpx-automation 쪽 PR에서 다룹니다.
관련 이슈
Refs #539 (fe546d1 후속)
변경 종류
체크리스트
0 == 13222로 실패), 한 쪽 표는 계속 증감.test_table_structure_edits·test_insert_row_sides·test_split_cell·test_insert_column_by_clone) 122개 통과.CHANGELOG.md[Unreleased] 고침 항목 추가.🤖 Generated with Claude Code