목적
캘린더가 기존 정본 모듈을 소비하면서 입력·편집·선택·gesture·clipboard·조회·문서 계약을 일관되게 지키도록 한다. 앞선 구조 감사와 프로토콜 안정성 감사의 발견을 이 이슈의 실행 범위로 보존한다.
Outcome
동일한 Calendar 편집은 입력 경로와 preview/commit에 관계없이 같은 의미를 갖고, 잘못되거나 오래된 요청은 해당 요청의 문서·선택·History·성공 후처리를 남기지 않는다. Host에는 조합·제품 정책·fixture·표현만 남긴다.
Done / 수용 기준
원인과 정본 위치
- Editing/Calendar: 도메인 유효성, 반복 의미와 순수 계획, source 재검증, clipboard, projection, 공통 ID 할당기 소비.
- Calendar Hands: 성공 후처리, 캡처한 Cut 대상 연결, scoped Web binding, 제품 표면의 실패·미지원 전달.
- Web / Affordance / Selection / EditingSession / Core: 기존 정본과 공통 보장을 재사용한다.
Don't / 제외
Core API·계층, 전역 command bus/registry, 공통 version envelope를 새로 만들지 않는다. AI·협업 wire protocol·영속화·외부 캘린더 연동을 추가하지 않는다. 자동 전체 CI를 되살리거나 수동 CI를 관례적으로 실행하지 않는다. 기존 사용자 checkout의 수정과 별도 PR #740, #734, #730, #726, #587을 보존하며 임의로 병합하지 않는다. 이번 인계의 종료점은 PR 생성이며 merge는 별도 요청에 따른다.
기준과 검증 증거
감사 기준 main: dabbe80.
기존 관련 59개 파일 886건 통과·4건 skip, Calendar React 9개 파일 40건 소스 진입점으로 통과. 통과 여부와 별개로 공개 API 메모리 fixture에서 unknown Intent 삭제, stale drag 길이 덮어쓰기/발생분 재생성, Cut 대상 불일치, 잘못된 clipboard 구간, 반복 간격 1.5, 400회 이후 조회 누락을 재현했다.
구현에서는 이 반례를 owner 회귀 테스트로 남기고 실제 consumer 경로와 함께 검증한다. 외부 History 및 브라우저 증거의 범위를 과장하지 않는다.
목적
캘린더가 기존 정본 모듈을 소비하면서 입력·편집·선택·gesture·clipboard·조회·문서 계약을 일관되게 지키도록 한다. 앞선 구조 감사와 프로토콜 안정성 감사의 발견을 이 이슈의 실행 범위로 보존한다.
Outcome
동일한 Calendar 편집은 입력 경로와 preview/commit에 관계없이 같은 의미를 갖고, 잘못되거나 오래된 요청은 해당 요청의 문서·선택·History·성공 후처리를 남기지 않는다. Host에는 조합·제품 정책·fixture·표현만 남긴다.
Done / 수용 기준
원인과 정본 위치
Don't / 제외
Core API·계층, 전역 command bus/registry, 공통 version envelope를 새로 만들지 않는다. AI·협업 wire protocol·영속화·외부 캘린더 연동을 추가하지 않는다. 자동 전체 CI를 되살리거나 수동 CI를 관례적으로 실행하지 않는다. 기존 사용자 checkout의 수정과 별도 PR #740, #734, #730, #726, #587을 보존하며 임의로 병합하지 않는다. 이번 인계의 종료점은 PR 생성이며 merge는 별도 요청에 따른다.
기준과 검증 증거
감사 기준 main: dabbe80.
기존 관련 59개 파일 886건 통과·4건 skip, Calendar React 9개 파일 40건 소스 진입점으로 통과. 통과 여부와 별개로 공개 API 메모리 fixture에서 unknown Intent 삭제, stale drag 길이 덮어쓰기/발생분 재생성, Cut 대상 불일치, 잘못된 clipboard 구간, 반복 간격 1.5, 400회 이후 조회 누락을 재현했다.
구현에서는 이 반례를 owner 회귀 테스트로 남기고 실제 consumer 경로와 함께 검증한다. 외부 History 및 브라우저 증거의 범위를 과장하지 않는다.