fix(reverse_sync): containing 전략에 inline_fixups 지원을 추가합니다#968
Merged
Conversation
callout 등 containing 전략 블록에서 bold 경계 변경(**text:** → **text**:)이 XHTML에 반영되지 않는 문제를 수정합니다. - containing 전략에 _build_inline_fixups 호출 및 patch entry 누적 추가 - _is_content_line에 JSX 컴포넌트 태그(<Callout> 등) 필터 추가 - 단위 테스트 추가 (test_containing_bold_colon_inline_fixup) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- isu_002 (confluence-mdx/bin/reverse_sync/patch_builder.py:943): containing 경로에서 _build_inline_fixups()를 각 child change마다 따로 호출해 그대로 누적하면 동일한 new_plain을 가진 형제 문단들이 모두 match_index: 0으로 저장됩니다. 이후 patch_xhtml()가 new_plain + match_index로 <p>를 찾기 때문에, 같은 callout 안에서 **Name:** -> **Name**: 같은 변경이 두 번 나오면 첫 번째 문단만 수정되고 두 번째 문단은 그대로 남습니다.
- isu_003 (confluence-mdx/bin/reverse_sync/patch_builder.py:977): offset 계산이 이미 수정된 fixup 수만 보고 match_index를 밀기 때문에, 같은 callout 안에 동일한 plain text 문단이 여러 개 있고 그중 뒤쪽 문단만 경계가 바뀌는 경우를 여전히 잘못 처리합니다. 재현: <p><strong>Name:</strong></p><p><strong>Name:</strong></p>에서 두 번째 문단만 변경 시 match_index가 0으로 남아 첫 번째 <p>가 수정됨.
- isu_002 (confluence-mdx/bin/reverse_sync/patch_builder.py:943): containing 경로에서 모든 자식 블록에 대해 inline_fixups를 누적하지만, 실제 적용기인 xhtml_patcher._apply_inline_fixups()는 <p> 태그만 순회합니다. callout 내부 heading처럼 문단이 아닌 자식에서 bold 경계 변경이 들어오면 패치는 생성되어도 XHTML은 그대로 남습니다.
Contributor
Author
|
[debate-review][sha:bdb5a2001f7018e8cab4c77489d703809eeafb75] Consensus reached after 9 rounds. Debate Summary
Applied Fixes
Withdrawn Findings
|
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
**text:**→**text**:)이 XHTML에 반영되지 않는 문제를 수정합니다_is_content_line에 JSX 컴포넌트 태그(<Callout>등) 필터를 추가하여 inline fixup 생성 시 wrapper 태그 오염을 방지합니다_offset_inline_fixup_match_indexes함수를 추가합니다_apply_inline_fixups가<p>외에 heading 태그(<h1>~<h6>)도 순회하도록 확장합니다integrating-with-secret-store.mdx,integrating-with-ldap.mdx등 callout 내부 bold-colon 변경이 있는 모든 페이지원인 분석
containing전략(callout child → parent 매핑)은normalize_mdx_to_plain()으로 plain text를 비교하여 텍스트 변경을 감지합니다. Bold 마커가 제거되므로**text:**와**text**:가 동일한text:로 정규화되어 변경이 감지되지 않았습니다.list전략에는 이미_build_inline_fixups를 통한 bold 경계 변경 감지가 있었으나,containing전략에는 이 메커니즘이 누락되어 있었습니다.Test plan
test_containing_bold_colon_inline_fixup외 4건 추가 및 통과pytest test_reverse_sync_patch_builder.py통과make test-reverse-sync통과integrating-with-secret-storePASS,integrating-with-ldapbold-colon PASS🤖 Generated with Claude Code