Skip to content

기본 단축키 해석을 정본 키맵과 chord로 통일한다 - #734

Merged
developer-1px merged 25 commits into
mainfrom
issue-733-canonical-keyboard
Sep 10, 2026
Merged

기본 단축키 해석을 정본 키맵과 chord로 통일한다#734
developer-1px merged 25 commits into
mainfrom
issue-733-canonical-keyboard

Conversation

@developer-1px

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

Copy link
Copy Markdown
Owner

같은 입력이 Web에서는 미처리인데 Affordance에서는 삭제, Composer에서는 Undo로 처리되는 차이가 있었습니다. 수정키를 보존하고 기존 Web chord/resolver를 소비하도록 연결했습니다.

  • deleteAffordance는 기본 구조적 삭제 키맵을, selectAllAffordance는 정본 chord 해석을 사용합니다. 실제 KeyboardEvent의 프로토타입 속성도 직접 읽습니다.
  • Composer의 별도 Mod+Z 판정을 제거하고 React에서 Alt를 전달합니다. 기존 부분 입력, 전체 선택 preserve/toggle, Composer 제출·줄바꿈 정책, Web 사용자 키맵은 유지합니다.
  • 새 public 함수·명령·Core 멤버는 없습니다. 공개 Composer 키 입력 API를 보존하는 비용으로 Composer → Web peer dependency를 추가했으며 소비는 interaction.ts에 한정합니다.
  • owner README/API reference, 기존 Usage, source registration, 의미·이벤트 경로 검증을 함께 반영했습니다.

검증:

  • Web 63 / Affordance 95 / Composer 17 / Composer React 4 tests와 각 typecheck/build 통과.
  • Site 변경 경로, 전체 typecheck 및 canonical/UI guard, root build, workspace graph, docs/API 검사, site build·static·HTTP 검사 통과.
  • CI Verify site(전체 site typecheck/tests/build·static·HTTP)와 External kit 통과. 로컬 전체 실행에서는 문서·App shell·A2UI 시간 제한/비동기 화면 대기 실패가 있었으며, CI의 전체 사이트 검사는 통과했습니다.
  • 현재 head의 Package 전체 검사와 browser behavior 검증은 진행 중입니다.

기존 Chrome에 미리보기 열기를 요청했으나 검증 탭을 제어 연결에서 찾지 못해 실제 Chrome 조작은 미확인입니다. Canvas·Document·Composer의 변경 동작과 native KeyboardEvent 입력은 jsdom으로 검증했습니다.

Annotation은 #589의 소유권에 남아 있습니다. 전체 Profile 동결이나 하이라키 정리가 완료되었다는 의미는 아닙니다.

Closes #733

developer-1px and others added 5 commits September 8, 2026 18:22
Annotation의 선택·gesture·geometry·출력 책임을 정본 모듈로 연결합니다. 기존 선택 순서와 Undo/Redo 복원, 도구·댓글·raster 동작을 유지하고 Host에는 정책과 화면 조합을 남깁니다.

최신 HEAD ba163a3f의 Plan, Package, Site, External kit 검증이 모두 통과했습니다.

Closes #588
EditingSession의 공통 계약과 현재 binding 정책을 분리하고, UI 구독 유무에 따른 local History 무효화 차이를 수정한다.

전체 30개 library typecheck·build 및 1,351개 테스트 통과. unmount 이후 외부 값 왕복 회귀를 포함한다.

Closes #735
* fix: JSON 주소와 값 검증을 Core 정본으로 통일한다

* test(site): include canonical JSON validator in source tabs

---------

Co-authored-by: 유용태 <teo.v@navercorp.com>
* Core의 중복 patch 경로와 배열 fast path를 축소한다

* 편집 주변의 중복 복사와 배치 재탐색을 줄인다

---------

Co-authored-by: 유용태 <teo.v@navercorp.com>
Co-authored-by: 유용태 <teo.v@navercorp.com>
Co-authored-by: 유용태 <teo.v@navercorp.com>
developer-1px and others added 18 commits September 9, 2026 15:18
Calendar 문서 모델·검증·의미 연산·projection을 독립 정본으로 옮기고 선택 회차·붙여넣기·입력 검증을 보강한다. 기존 Editing API 호환 경로, 공통 Editing Grammar, 소유자 문서와 Usage/Source를 연결한다.

관련 테스트 796개와 타입·빌드·외부 tarball 소비·기존 Chrome 검증을 확인했다. Core와 자동 PR CI 정책은 변경하지 않는다.

Closes #745
한 장의 Canvas를 Object Document Type, 기존 Editing, Canvas Hand로 구성하고 두 Host를 정본 소비로 통일한다. 공통 아이콘·툴팁 툴바와 문서·Usage·Source 등록 및 회귀 검증을 포함한다. Closes #747.
선택 박스의 모양을 유지하면서 네 변·네 모서리 resize, 반대편 고정, Shift 비율 유지, Alt 중심 기준과 최소 크기 고정을 정본 Affordance에 연결한다.

Canvas의 modifier·취소·no-op·Undo 연결과 owner 문서, Usage/Source, 회귀 검증을 포함한다. Closes #757.
재사용 가능한 평면 Select와 복제·외부 Clipboard 기본기를 연결한다
Paste·Image 기본기 TBD 계약과 Composer 이미지 첨부를 연결한다
feat(clipboard): HTML 이미지와 순서 있는 혼합 입력을 연결한다
fix(canvas): 생성 기본 크기가 드래그 전에 노출되는 문제를 고친다
feat(canvas): 선택 스타일 편집을 정본 Object 계약으로 연결한다
@developer-1px

Copy link
Copy Markdown
Owner Author

최신 main의 Canvas·첨부 준비 경로와 통합했습니다. Escape 첨부 취소와 Alt 수정키 전달을 함께 보존하고, 교체 전 Canvas DOM을 참조하던 회귀 검사를 현재 CanvasHand 공개 API에 맞췄습니다. 통합 상태에서 관련 7개 package 884 tests, 사이트 관련 32 tests, root build·pre-push build, site typecheck/guard, docs:api:check, docs:evaluate, canonical module closure가 통과했습니다.

@developer-1px
developer-1px merged commit 75a1f6d into main Sep 10, 2026
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.

기본 단축키 해석을 정본 키맵과 chord로 통일한다

1 participant