Skip to content

공통 편집 계약과 구현 정책을 분리하고 History 관찰 의존성을 제거한다 - #736

Merged
developer-1px merged 3 commits into
mainfrom
issue-735-stable-editing-contract
Sep 8, 2026
Merged

공통 편집 계약과 구현 정책을 분리하고 History 관찰 의존성을 제거한다#736
developer-1px merged 3 commits into
mainfrom
issue-735-stable-editing-contract

Conversation

@developer-1px

@developer-1px developer-1px commented Sep 8, 2026

Copy link
Copy Markdown
Owner

EditingSession의 공통 의미와 현재 구현 정책이 섞여 있었고, n=0 → 로컬 n=1 → 외부 n=2 → 외부 n=1에서 UI 구독자가 없으면 Undo 기록이 남았다. 공통 계약과 binding 정책을 분리하고, 같은 변경 이력에서는 UI 구독 유무와 관계없이 local Undo/Redo가 무효화되도록 수정한다.

계약과 동작

  • standards/editing-session.md의 12개 ES 규칙은 값·선택·원자성·일관된 관찰·결과 귀속·안전한 복구·책임 경계의 공통 의미를 규정한다.
  • callback 형태, 읽기/명령에서 재시도하는 방식, local inverse 삭제 정책, 외부 History의 ignore 미지원, result 표현, 내부 관찰 전략은 현재 binding 정책 표로 구별한다. 기존 소비자의 호환성 기준은 유지하며 다른 구현의 유일한 방식으로 동결하지 않는다.
  • local History 생성 뒤 일회성 변경 표시로 실제 외부 변경을 감지한다. 표시 listener는 Session·History stack·UI callback을 캡처하지 않고 후속 변경에서 해제된다. 자기 commit의 지연 알림은 외부 변경으로 오인하지 않는다.
  • 구독 없음·해제·재구독, Undo/Redo, 외부 값 왕복, 새 reference·no-op, 재진입·연결 종료를 검증한다. 주입한 History owner는 기존 의미를 유지한다.
  • package 문서·공개 History/Intent 가이드·책임 배치 정본에서 계약을 연결한다. docs:evaluate는 규칙별 행동 증거와 owner 링크를 검사하고, 기존 Usage에서 History 무효화 owner source를 발견할 수 있다.

원래 문서 한정 범위에서 History 결함 수정까지 포함한 것은 사용자 승인 contract delta에 따른다. public API·Core 여섯 member·wire·package 배치는 변경하지 않는다. Hands 정책, 독립 Session 구현 인증, 구독하지 않은 기간의 모든 selection 경로·revision 재생은 확정 범위 밖이다.

검증

  • Editing verify: typecheck·290 tests·build 통과
  • 전체 library TypeScript build 통과
  • Collaboration 전체 170, Rich Text 전체 109, React 전체 28 tests 통과
  • Site 공개 계약 15, Demo workbench/source discovery 17 tests 통과
  • 위 표적 검증 합계: 59 files / 629 tests 통과
  • 병합 전 npm run verify:libraries: 전체 30개 library typecheck·build 및 130 files / 1,351 tests 통과. Rich Text React unmount 뒤 일회성 표시 해제와 외부 값 왕복 이후 History 무효화 회귀 포함
  • 이전 CI Site: 단위·빌드·페이지 및 브라우저 236 tests 통과. 최신 커밋 CI는 별도 확인
  • Rich Text 및 Site typecheck, Site 선행 가드, docs:evaluate, git diff --check 통과
  • 수정 전 구독 없음·해제·재구독·재진입 외부 왕복의 4개 실패를 확인한 뒤 회귀 해결
  • 이전 문서 커밋에서 Core conformance 347 passed / 4 skipped 및 정본 검사 통과. 위 현재 합계에는 중복 합산하지 않음

회귀 테스트 통과는 영구성이나 독립 Editing 구현 간 상호운용의 증명이 아니다. UI 화면을 새로 구현한 변경이 없어 show-me는 해당하지 않는다.

Closes #735

@developer-1px developer-1px changed the title 검증된 EditingSession 공통 계약과 책임 경계를 확정한다 공통 편집 계약과 구현 정책을 분리하고 History 관찰 의존성을 제거한다 Sep 8, 2026
@developer-1px
developer-1px merged commit 847e24b into main Sep 8, 2026
4 checks passed
@developer-1px
developer-1px deleted the issue-735-stable-editing-contract branch September 8, 2026 14:44
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