You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
사용자는 위 4건의 리뷰와 “이 4건의 회귀 테스트와 정본 구현·계약 보완” 제안 뒤 “응 진행해”라고 실행을 승인했습니다. 기준 main은 08de2da6f45dd42714c89046b95e18963763a62f입니다.
먼저 등록된 document 구독자가 session.snapshot을 읽으면 상태·revision은 바뀌지만 Editing 구독자 알림이 누락됩니다. Core와 Collaboration 문서 모두 재현했습니다.
로컬 n: 0 → 1, 외부 1 → 2에서 reconcileSelection 예외를 주입하면 관측값만 갱신되고 local inverse history가 남습니다. 뒤따르는 undo가 외부 값 2를 0으로 덮어씁니다. 관찰 중이면 document의 observer 격리가 예외를 삼킵니다.
문서 값이 바뀌지 않는 인과적 undo 도중 replica 구독자가 /other = 99를 기록하면 undo 결과의 change와 snapshot이 그 별도 쓰기를 자기 작업으로 흡수합니다. 세션이 첫 document 알림을 자기 변경이라고 추정합니다.
같은 콜백으로 구독 → 해제 → 재구독 → 이전 해제 함수 재호출을 하면 새 구독까지 제거됩니다. Core의 해제 함수는 재호출을 방어하지만 Editing은 방어하지 않습니다.
완료 조건
다른 구독자의 snapshot 읽기 순서가 Editing 알림을 누락시키지 않으며 재진입 알림의 revision 순서와 자기 작업 결과를 보존합니다.
선택 mapping/reconciliation 실패가 부분 상태나 안전하지 않은 local undo를 남기지 않습니다. 실패 후 읽기·편집·undo/redo 및 복구 의미를 정본 계약으로 설명하고 관찰/비관찰 경로에서 검증합니다.
협업 undo/redo 결과는 자기 작업의 변경만 나타내며, 값이 바뀌지 않는 history 작업과 재진입 외부 쓰기를 구분합니다. 필요한 계약 보완은 기존 Editing/Collaboration owner와 공개 연결부에 둡니다.
구독 해제는 반복 호출해도 새 구독을 끊지 않으며 마지막 observer 해제, 재구독, editor 재생성의 정상 수명을 보존합니다.
관련 package 회귀, React 소비자, typecheck/build, 문서/API reference 및 기존 Usage/Source 연결을 검증합니다. 기존의 잘못된 patch·test·validator 거절 원자성과 선택적 undo의 원격 변경 보존도 유지합니다.
범위
주요 owner는 packages/json-document-editing의 session/history와 packages/json-document-collaboration의 history/runtime 공개 연결부입니다. 소비 검증은 기존 React 연결 및 협업 Rich Text Usage를 사용합니다. 수정 책임을 Demo나 Host로 이동하지 않습니다. 전체 저장소의 별도 Host 우회 감사나 새로운 기능은 이 이슈의 완료 조건이 아닙니다.
Goal Anchor
승인과 근거
사용자는 위 4건의 리뷰와 “이 4건의 회귀 테스트와 정본 구현·계약 보완” 제안 뒤 “응 진행해”라고 실행을 승인했습니다. 기준 main은
08de2da6f45dd42714c89046b95e18963763a62f입니다.session.snapshot을 읽으면 상태·revision은 바뀌지만 Editing 구독자 알림이 누락됩니다. Core와 Collaboration 문서 모두 재현했습니다.n: 0 → 1, 외부1 → 2에서reconcileSelection예외를 주입하면 관측값만 갱신되고 local inverse history가 남습니다. 뒤따르는 undo가 외부 값2를0으로 덮어씁니다. 관찰 중이면 document의 observer 격리가 예외를 삼킵니다./other = 99를 기록하면 undo 결과의change와 snapshot이 그 별도 쓰기를 자기 작업으로 흡수합니다. 세션이 첫 document 알림을 자기 변경이라고 추정합니다.완료 조건
범위
주요 owner는
packages/json-document-editing의 session/history와packages/json-document-collaboration의 history/runtime 공개 연결부입니다. 소비 검증은 기존 React 연결 및 협업 Rich Text Usage를 사용합니다. 수정 책임을 Demo나 Host로 이동하지 않습니다. 전체 저장소의 별도 Host 우회 감사나 새로운 기능은 이 이슈의 완료 조건이 아닙니다.