@01.works/visual-review 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,6 +44,10 @@ npm exec --package=@01.works/visual-review -- visual-review configure --email <o
44
44
  npm exec --package=@01.works/visual-review -- visual-review configure --email <owner-email> --project <project-id>
45
45
  npm exec --package=@01.works/visual-review -- visual-review list
46
46
  npm exec --package=@01.works/visual-review -- visual-review get <comment-id>
47
+ npm exec --package=@01.works/visual-review -- visual-review reply <comment-id> --body "수정했습니다."
48
+ npm exec --package=@01.works/visual-review -- visual-review export --format json --output feedback.json
49
+ npm exec --package=@01.works/visual-review -- visual-review webhook set --url https://hooks.example/review --secret "$WEBHOOK_SECRET"
50
+ npm exec --package=@01.works/visual-review -- visual-review webhook get
47
51
  ```
48
52
 
49
53
  프로젝트에 이미 설치되어 있으면 package script 별칭도 사용할 수 있습니다.
@@ -62,6 +66,26 @@ npm run review -- logout
62
66
  JWT와 인증 코드는 출력하거나 저장하지 않습니다. 성공 결과는 JSON stdout, 진단은
63
67
  stderr로 나갑니다. 만료되면 자동 재인증하지 않으며 `configure`를 다시 실행합니다.
64
68
  `logout`은 서버에서 session을 폐기한 다음 로컬 설정을 제거합니다.
69
+ `export --output`은 기존 파일을 덮어쓰지 않고 mode 0600의 새 파일만 만듭니다. webhook
70
+ secret은 32~256자이며 CLI가 결과에 되돌려 출력하지 않습니다. 수신자는
71
+ `X-Visual-Review-Timestamp`와 raw body를 점(`.`)으로 연결해 HMAC-SHA256을 계산하고
72
+ `X-Visual-Review-Signature: v1=<hex>`와 constant-time 비교해야 합니다.
73
+
74
+ 브라우저 자동화는 인증된 staging widget에서만 다음 공개 API를 사용합니다.
75
+
76
+ ```js
77
+ const widget = document.querySelector('agency-review-widget')
78
+ await widget.createFeedbackAtPoint({ body: '간격 불일치', clientX: 420, clientY: 180 })
79
+ widget.setMode('review') // 'view' | 'comment' | 'review'
80
+ const archive = widget.exportPageFeedback('json')
81
+ await widget.importPageFeedback(archive)
82
+ ```
83
+
84
+ `ReviewWidgetOptions.repository`는 custom backend seam입니다. 구현체가
85
+ `ReviewRepository`의 snapshot/subscription/entity mutation 계약과 fail-closed 권한을
86
+ 지키면 hosted Convex 대신 사용할 수 있습니다. `moveCommentPin`은 선택 capability입니다.
87
+ `reply`는 기존 피드백 thread에 owner 답글을 추가합니다. 네트워크 결과가 불명확한
88
+ 호출을 재시도할 때는 같은 `--reply-id <uuid>`를 넘기면 중복 생성되지 않습니다.
65
89
  Windows에서는 ACL 검증을 아직 제공하지 않으므로 저장형 `configure`를 거부합니다.
66
90
  그 환경에서는 사전 발급한 `VISUAL_REVIEW_TOKEN`, `VISUAL_REVIEW_PROJECT_ID`,
67
91
  `VISUAL_REVIEW_SERVICE_URL` 환경변수를 사용해야 합니다.