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
Outcome: Web·contenteditable·React를 조합해도 입력은 올바른 editing host에서 한 번만 처리되고, IME 중 DOM 소유권과 종료 뒤 최신 model의 일치를 보존합니다.
Done:
Rich Text 안의 input·textarea·select 및 별도 editable host의 keyboard/beforeinput/clipboard가 바깥 문서와 history를 변경하지 않습니다. 정상 root 입력은 유지합니다.
React Rich Text surface는 composition 중 model ingestion을 계속하면서 composing DOM의 render를 유예하고, 종료·취소·target 삭제 뒤에는 최신 model로 복구합니다. 정상 typing locality를 보존합니다.
같은 editor/root에서 onAction·createId callback만 바뀌어도 진행 중 composition을 보존하고 최신 callback을 사용합니다. 실제 editor/root 변경과 unmount는 수명을 해제합니다.
Rich Text replacement 입력은 data와 dataTransfer/target-range 형태를 모두 canonical semantic intent로 처리합니다. 기존 replacement/yank/transpose 처리 범위의 같은 payload 누락을 함께 닫습니다.
local contenteditable은 composition tail을 timer 또는 trailing input으로 끝낼 때 지연한 최신 model과 selection을 publish하여 다음 입력이 stale DOM을 덮어쓰지 않게 합니다.
RichTextEditorSurface의 public as 변경 시 제거된 root의 listener를 해제하고 새 root에 다시 연결합니다.
local compositionend 뒤 외부 latest commit → tail 종료 뒤에도 DOM은 이전 값입니다.
as article→section 교체 → 새 root 입력 listener가 없습니다.
기존 관련 20 files / 133 tests는 통과했으나 위 6건의 synthetic 회귀 9개는 실패했습니다. 이는 native IME·system clipboard·spellchecker 지원 증거가 아닙니다.
정본 경계와 검증
Web: editing-host target/event 소유권 판별. 세 native binding의 동등한 판별을 한 정본 API로 소비하되 model reconciliation 자체는 합치지 않습니다.
Rich Text Web: input payload 번역, composition 시작/종료와 failure recovery.
Contenteditable: local native lease/tail release와 latest render.
Rich Text React: callback freshness, 실제 root 수명, composition 동안 render 유예와 catch-up.
Site: 기존 API의 Usage·source 등록과 실제 소비 검증만 담당합니다.
관련 정상 입력·nested control·composition 두 event 순서·외부 변경/삭제·callback/root 변경·unbind·history·typing locality를 검증합니다. 브라우저는 기존 Chrome 연결을 우선하며 native와 synthetic 증거를 구분합니다. 제품 시각/정책을 새로 설계하는 작업은 없습니다.
Goal Anchor
승인 근거와 현상
사용자는 위 6건의 후속 리뷰와 “기존 정본 모듈에서 이 6건을 닫는다”는 개선 제안에 “진행해”로 실행을 승인했습니다.
기준은 #710 병합 후
facc55d1418b179cbf121bcf5210623b54dbf39d입니다.abc가ab로 변경됩니다.abcㅎ중 외부 model 갱신 → React가 composing DOM을 덮어씁니다.X로abc의b교체 → model이abc그대로입니다.latestcommit → tail 종료 뒤에도 DOM은 이전 값입니다.기존 관련 20 files / 133 tests는 통과했으나 위 6건의 synthetic 회귀 9개는 실패했습니다. 이는 native IME·system clipboard·spellchecker 지원 증거가 아닙니다.
정본 경계와 검증
관련 정상 입력·nested control·composition 두 event 순서·외부 변경/삭제·callback/root 변경·unbind·history·typing locality를 검증합니다. 브라우저는 기존 Chrome 연결을 우선하며 native와 synthetic 증거를 구분합니다. 제품 시각/정책을 새로 설계하는 작업은 없습니다.