Skip to content

refactor(annotation): 선택·gesture·출력의 정본 경계 통합 - #589

Merged
developer-1px merged 5 commits into
mainfrom
issue-588-annotation-canonical-hand
Sep 8, 2026
Merged

refactor(annotation): 선택·gesture·출력의 정본 경계 통합#589
developer-1px merged 5 commits into
mainfrom
issue-588-annotation-canonical-hand

Conversation

@developer-1px

@developer-1px developer-1px commented Aug 26, 2026

Copy link
Copy Markdown
Owner

변경

Annotation Demo가 선택·gesture·SVG·댓글·출력 동작을 직접 구현하던 경계를 정리합니다. 공통 선택과 편집 동작은 기존 정본 엔진에 연결하고, 도메인 UI는 단일 @interactive-os/json-document-annotation 패키지로 제공합니다.

  • Editing의 Annotation selection은 Key Selection을 소비합니다. 공개 AnnotationSelection 형태, 선택한 순서, primary, Undo/Redo 복원을 보존합니다.
  • transformAnnotationSelector, annotationSelectorBounds, annotationResizeHandle을 preview와 commit의 정본으로 제공합니다.
  • AnnotationHand는 공통 useInteractionHandle, Web pointer session과 keyboard resolver를 소비합니다. 활성 tool, ID 생성, 스타일 값은 Host가 주입합니다.
  • useAnnotationOutput이 직렬화·저장/복원·raster lifecycle을 소유합니다. Host는 기존 출력 탭·CodeBlock·다운로드 링크를 조합하며 JSON은 정확한 AnnotationDocument입니다.
  • 최신 main의 ProductShell, UI primitives, 댓글·reaction 표현과 복사 가능한 출력 패널을 보존했습니다.
  • 공개 export, 소유 패키지 README/API reference, site Usage/source registration, 배포·CI 등록과 우회 방지 guard를 연결했습니다.

검증

  • Selection 24, Editing 282, Annotation 7 tests 통과
  • 편집 동작 커밋 37f6702c: site unit 138 tests 및 전체 원격 CI 통과
  • source 연결 보완 ba163a3f: 영향 workbench unit 17 tests, site typecheck·구조 guard·Pages 검증 통과
  • Annotation·출력 복사 browser 14/14, site shell browser 19/19 통과(각 setup 1 포함)
  • Pages build·static/HTTP 검사, API reference·docs·workspace 검사 통과
  • CI/release/external-kit plan tests 17/17 통과
  • 외부 소비자 설치·실행 검증: 원격 External kit CI 통과. 로컬 실행은 ENOSPC로 중단됐습니다.
  • 영향 범위 production source 710 LOC: Annotation package src, Editing annotation*, Annotation Demo 파일 전체. 기존 이슈의 상한 1,168 LOC 미만입니다.

브라우저 검사는 저장소 Playwright로 수행했습니다. 기존 Chrome profile의 자동 제어 연결은 사용할 수 없어 사용자 세션에서의 직접 상호작용 검증은 별도로 완료하지 못했습니다. 최초 합동 browser 실행은 중도 종료되어, 위 결과는 분리한 재실행의 완료 결과입니다.

source 연결 보완 후 로컬 전체 unit 재실행에서는 기존 app-shell/docs-route의 대기 시간 초과가 발생했습니다. 해당 테스트의 대기 한도는 변경하지 않았으며 최신 커밋 ba163a3f의 전체 CI(Plan, Package, Site, External kit)는 모두 통과했습니다: 검증 실행. 추가된 source 탐색 unit과 실제 source 탭 browser 검사는 통과했습니다.

새 Selection family나 편집 명령을 추가하지 않았습니다. 저장 상태 복원은 기존 Core commit에 의한 외부 문서 교체이므로 Editing의 외부 변경 history 정책이 적용됩니다.

Closes #588

@developer-1px developer-1px changed the title Annotation Hand 책임을 정본 모듈로 수렴한다 refactor(annotation): 선택·gesture·출력의 정본 경계 통합 Sep 8, 2026
@developer-1px
developer-1px merged commit 02741ec into main Sep 8, 2026
4 checks passed
@developer-1px
developer-1px deleted the issue-588-annotation-canonical-hand branch September 8, 2026 09:23
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.

Annotation Hand 책임을 정본 모듈로 수렴한다

1 participant