Skip to content

Comments

confluence-mdx: reverse_sync 블록 경계에서 insert가 다음 리스트 항목으로 넘치는 오류 수정#851

Merged
jk-kim0 merged 1 commit intomainfrom
fix/reverse-sync-text-append-overflow
Feb 25, 2026
Merged

confluence-mdx: reverse_sync 블록 경계에서 insert가 다음 리스트 항목으로 넘치는 오류 수정#851
jk-kim0 merged 1 commit intomainfrom
fix/reverse-sync-text-append-overflow

Conversation

@jk-kim0
Copy link
Contributor

@jk-kim0 jk-kim0 commented Feb 25, 2026

Summary

  • _apply_text_changes에서 <ul> 내 서로 다른 <li> 항목의 텍스트 노드 경계에서 insert opcode가 잘못된 항목에 할당되는 문제를 수정합니다.
  • _find_block_ancestor 헬퍼와 _map_text_range의 boundary insert 제어 파라미터를 추가하여 블록 경계에서의 insert 할당을 올바르게 처리합니다.
  • 수정 대상 문서: 11.1.0-11.1.2.mdx, 9.10.0-9.10.4.mdx

Test plan

  • test_flat_list_append_text_stays_in_same_item — 항목 끝 텍스트 추가 시 같은 항목에 유지 확인
  • test_flat_list_append_text_multiple_items — 다수 항목 동시 추가 검증
  • test_flat_list_prepend_bracket_stays_in_correct_item — bracket 삽입이 right에 유지 (회귀 방지)
  • 기존 22개 xhtml_patcher 테스트 + 102개 patch_builder 테스트 모두 통과
  • bin/reverse_sync_cli.py verify — 11.1.0-11.1.2.mdx, 9.10.0-9.10.4.mdx PASS 확인

🤖 Generated with Claude Code

@vercel
Copy link

vercel bot commented Feb 25, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
querypie-docs Ready Ready Preview, Comment Feb 25, 2026 4:44pm

Request Review

## Description
- `_apply_text_changes`에서 `<ul>` 내 서로 다른 `<li>` 항목의 텍스트 노드 경계에서 insert opcode가
  잘못된 항목에 할당되는 문제를 수정합니다.
- `_map_text_range`에 `include_insert_at_end`, `exclude_insert_at_start` 파라미터를 추가하여
  블록 경계에서의 insert 할당을 제어합니다.
- `_find_block_ancestor` 헬퍼를 추가하여 텍스트 노드의 블록 레벨 부모를 감지합니다.
- right 노드 내부에 자체 변경이 있으면 boundary insert를 right에 유지하고,
  없으면 left 노드에 할당하는 휴리스틱을 적용합니다.

### Background
flat list의 containing block 전략에서 `<ul>` xpath로 전체 리스트의 텍스트를 패치할 때,
항목 끝에 추가된 텍스트(예: "이슈 해결")가 `SequenceMatcher`의 insert opcode로 생성되는데,
half-open range `[start, end)` 조건 때문에 경계 위치의 insert가 다음 `<li>`의 텍스트 노드에
할당되어 "해결[Privilege Type]..."과 같이 항목이 뒤섞이는 문제가 있었습니다.

## Added/updated tests?
- [x] Yes
  - `test_flat_list_append_text_stays_in_same_item` — 항목 끝 텍스트 추가 시 같은 항목에 유지
  - `test_flat_list_append_text_multiple_items` — 다수 항목 동시 추가 검증
  - `test_flat_list_prepend_bracket_stays_in_correct_item` — bracket 삽입이 right에 유지 (회귀 방지)
  - `test_flat_list_append_text_at_end_of_item` — patch_builder 레벨 검증

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jk-kim0 jk-kim0 force-pushed the fix/reverse-sync-text-append-overflow branch from 0252e4f to f682aa1 Compare February 25, 2026 16:40
@jk-kim0 jk-kim0 self-assigned this Feb 25, 2026
@jk-kim0 jk-kim0 merged commit 0281245 into main Feb 25, 2026
7 checks passed
@jk-kim0 jk-kim0 deleted the fix/reverse-sync-text-append-overflow branch February 25, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant