Skip to content

Task #571: 문서 비교·이력(compare + history) 및 diff-engine 정합 (closes #571) #799

Closed
xogh3198 wants to merge 5 commits into
edwardkim:develfrom
xogh3198:local/task571-rhwp-studio
Closed

Task #571: 문서 비교·이력(compare + history) 및 diff-engine 정합 (closes #571) #799
xogh3198 wants to merge 5 commits into
edwardkim:develfrom
xogh3198:local/task571-rhwp-studio

Conversation

@xogh3198

@xogh3198 xogh3198 commented May 11, 2026

Copy link
Copy Markdown
Contributor

변경 요약

Base Skew 해결: upstream/devel 최신 커밋으로 fast-forward 동기화 후 분기하여, 이전 PR에서 우려되었던 본질 정정(revert) 충돌 문제를 해결했습니다.
분리 PR (1/3 - 프론트엔드 TS/UI 본질): 메인테이너님의 권장 가이드에 따라, 시각 판정 게이트가 필요한 Rust 렌더링 변경 및 파서 stable_id 연동 작업은 2, 3번 PR로 완전히 분리하고 본 PR에는 순수 프론트엔드 로직만 담았습니다.

[주요 구현 내용]

비교/이력 UI 및 엔진: rhwp-studio에 문서 비교 및 이력 관리 다이얼로그를 추가하고, diff-engine 기반의 정렬/비교 로직을 반영했습니다.
진입점 연결: 메뉴, 툴바, 단축키(Alt+Shift+V 문서 비교, Ctrl+Shift+H 이력) 및 edit.ts 커맨드 등록을 통해 UI 진입 경로를 연결했습니다.
WasmBridge API 명세 추가: 프론트엔드 비교 로직에서 요구하는 보조 API(hasLoadedDocument, refreshLayout, getParagraphStableId, getTableSignature 등) 인터페이스를 정의하고 PageInfo.pageNumber 타입을 동기화했습니다.
보조 모듈 통합: 업스트림 devel에 존재하지 않던 compare/session, compare-debug, history(IndexedDB 연동) 등의 모듈을 본 PR 범위에 포함했습니다.

관련 이슈

closes #571

테스트

cargo test 통과
cargo clippy -- -D warnings 통과
관련 샘플 파일로 SVG 내보내기 확인
웹(WASM) 렌더링 확인 (해당하는 경우)

thlee2 and others added 5 commits May 6, 2026 08:29
- Global anchors, relative isNearStructure base, norm-hash pins
- rightToLeftPara from alignment into buildControlDiffs slot matching

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
… 반영)

- upstream devel 기준에서 삭제됐던 compare/history UI 파일 복원 + main 기준 session/compare-debug/history 모듈 추가
- diff-engine stash 변경과 WasmBridge 비교용 API(hasLoadedDocument, refreshLayout, getDocumentInfo, stable_id, 표/도형 서명) 정합
- PageInfo.pageNumber 선택 필드 추가

Co-authored-by: Cursor <cursoragent@cursor.com>
- edit:compare-documents / edit:document-history 등록 (CompareSessionStore 공유)
- index.html 편집 메뉴·찾기 스플릿·툴바 버튼 반영
- shortcut-map: Alt+Shift+V, Ctrl+Shift+H

Co-authored-by: Cursor <cursoragent@cursor.com>
@xogh3198 xogh3198 changed the title Local/task571 rhwp studio Task #571: 문서 비교·이력(compare + history) 및 diff-engine 정합 (closes #571) May 11, 2026
@edwardkim edwardkim added the enhancement New feature or request label May 11, 2026
@edwardkim edwardkim added this to the v1.0.0 milestone May 11, 2026
edwardkim added a commit that referenced this pull request May 11, 2026
PR #799 의 5번째 commit 에 잘못 staging 된 *.actual.svg 5 파일 제거:
- tests/golden_svg/form-002/page-0.actual.svg
- tests/golden_svg/issue-147/aift-page3.actual.svg
- tests/golden_svg/issue-157/page-1.actual.svg
- tests/golden_svg/issue-267/ktx-toc-page.actual.svg
- tests/golden_svg/table-text/page-0.actual.svg

*.actual.svg 는 테스트 실행 시 생성되는 임시 출력 파일로,
golden (*.svg) 와 비교만을 위한 산출물이다. 저장소에 포함되지 않아야 한다.
edwardkim added a commit that referenced this pull request May 11, 2026
…ine 정합

@xogh3198 — Task #571 분리 PR 1/3 (TypeScript/UI 본질).
PR #571#623#799 점진적 정합 (base skew 해결 + 분리 PR 가이드 정합).

본질:
- diff-engine (정렬/비교 로직, +3105)
- Compare dialog + result window + CSS
- History dialog + IndexedDB store
- WasmBridge 신규 API (hasLoadedDocument / releaseDocument / getTableSignature / getParagraphStableId, graceful fallback)
- 메뉴 + 단축키 (Alt+Shift+V / Ctrl+Shift+H)

후속 분리 PR:
- 2/3 — Rust pagination/typeset (PR #571 페이지네이션 본질)
- 3/3 — paragraph.rs::stable_id parser+WASM 노출 (identity 전략)

메인테이너 정정:
- actual.svg 5 파일 제거 (PR 영역 영역 잘못 staging 된 테스트 임시 출력)
- package-lock.json 영역 devel 측 보존

자기 검증: tsc + cargo test ALL GREEN + WASM 빌드 (4.5 MB)
시각 판정: 작업지시자 웹 에디터 인터랙션 검증 ✅ 통과
@edwardkim

Copy link
Copy Markdown
Owner

@xogh3198 Task #571 분리 PR 1/3 (TypeScript/UI 본질) 머지했습니다 (commit 6b9ad9e0).

검토 + 자기 검증 + 시각 판정 통과:

  • diff-engine + Compare/History 다이얼로그 + WasmBridge 신규 API (graceful fallback)
  • Alt+Shift+V (문서 비교), Ctrl+Shift+H (문서 이력) 단축키
  • 기존 기능 회귀 부재

머지 시 메인테이너 정정 두 가지 적용:

  1. tests/golden_svg/**/*.actual.svg 5 파일 제거 — 테스트 실행 시 생성되는 임시 출력 파일은 golden 비교 산출물이므로 저장소에 포함되지 않아야 합니다. 로컬 .gitignore 영역 영역 추가 권장.
  2. rhwp-studio/package-lock.json 영역 devel 측 보존 — npm 의존성 sync 시 자연 갱신.

후속 분리 PR (PR 본문 명시 영역 정합):

  • 2/3 — Rust pagination/typeset (PR DIFF update #571 의 페이지네이션 본질)
  • 3/3 — paragraph.rs::stable_id parser + WASM 노출 (identity 전략 완성)

수고하셨습니다.

@edwardkim edwardkim closed this May 11, 2026
@edwardkim edwardkim mentioned this pull request May 11, 2026
4 tasks
edwardkim added a commit that referenced this pull request May 11, 2026
- mydocs/pr/archives/pr_799_review.md (3rd attempt history, .actual.svg, conflict analysis, 3 options)
- mydocs/pr/archives/pr_799_report.md (option A 처리 결과)
- mydocs/orders/20260511.md PR #799 행 추가 + 작업 메모 (분리 PR 가이드 + .actual.svg 케이스)
jangster77 added a commit to jangster77/rhwp that referenced this pull request May 11, 2026
…1 orders 갱신)

# Conflicts:
#	mydocs/orders/20260511.md
jangster77 added a commit to jangster77/rhwp that referenced this pull request May 11, 2026
…ders 갱신)

# Conflicts:
#	mydocs/orders/20260511.md
@edwardkim edwardkim mentioned this pull request May 17, 2026
edwardkim added a commit that referenced this pull request May 29, 2026
PR #571/#799 (rhwp-studio 문서 비교·이력) 커밋 4개가 GitHub 계정과
연결되지 않는 "thlee2 <thlee2>" author 로 기록되어 기여 집계에서
누락됨. .mailmap 으로 올바른 계정(taeho <…xogh3198…>)에 매핑한다.
히스토리는 재작성하지 않으며 git log/shortlog/blame/소스뷰 표시만 통합.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants