Repository navigation
feat(share): measure local sharing outcomes and document rollout - #7138
Conversation
05b822b to
e21f751
Compare
e772bed to
9c106b8
Compare
e21f751 to
109c0a0
Compare
9c106b8 to
0b3b185
Compare
109c0a0 to
e295ce2
Compare
0b3b185 to
570d844
Compare
e295ce2 to
3694130
Compare
93d025d to
734e2f3
Compare
6ec6d5a to
95e550d
Compare
734e2f3 to
154d9a8
Compare
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
jrusso1020
left a comment
There was a problem hiding this comment.
Reviewed at 154d9a8eb1ca9d9cf2e41b6fa1f48a21412dbd0c, the six-file increment over #7135 at ce7aabdcdf5e47805a9699482179570abd2e6637 (verified ancestor and tree-identical to the previously reviewed #7137 head 8a3a0cc3a1d7e3207f734ea66016e98c92fee419).
No blocking findings. service.ts:45 captures recovery before reconciliation clears pending state; telemetry.ts:65 deduplicates admission per attempt, and complete counts a ready video from the kernel's onAdded callback even when its link is disabled. Status polling and existing-link retrieval do not count new videos. New payloads contain surface/action enums, a random attempt UUID, a recovery boolean, fixed failure categories, or the declared interaction enum fields; no path, title, link, token or raw error is forwarded. Emission refreshes the existing persisted/privacy-env opt-out controls. Its config-read, posture-reset and trackEvent calls are inside the fail-silent boundary; mutation failures are rethrown unchanged.
Read all six changed files, the CLI consumer, and kernel upload/completion/reconciliation boundaries; independently adversarially checked retry, disabled-link and failure scenarios. Validation: full bun run build passed; Node 22 vitest run src/share src/commands/share.test.ts passed 51 tests across 7 files, including actual telemetry-client opt-out tests; node --test tests/*.test.mjs in packages/share passed 87 tests. Service tests mock render/upload execution; kernel tests exercise their own boundary fakes. Studio interaction helpers are scaffolding for the next slice, not wired UI instrumentation. No signed-in end-to-end sharing or production telemetry delivery exercised; standard client identity enrichment remains existing behavior.
Need: yes · Size: ok · Reuse: existing telemetry client/config and share kernel callbacks · Simpler: already minimal · Structure: fine
Risk: low — bounded observability increment with existing consent and sharing guards preserved.
— hf-review
Verdict: APPROVE
Reasoning: The increment separates attempts, upload admission, completed videos and link retrieval without introducing private share data or altering upload outcomes.
…7135) * feat(cli): share rendered videos through unified reviews (heygen-com#7135) * feat(share): attach editable project sources to reviews (heygen-com#7137) * feat(share): measure local sharing outcomes (heygen-com#7138) * feat(cli): stage the sixty-day publish transition (heygen-com#7136) * feat(studio): share review pages from local preview (heygen-com#7140) Advertise the CLI sharing bridge before bootstrapping it so standalone Studio does not request unsupported routes. Preserve origin and session checks. Budget the intended sharing artifact: clean main packs at 8,060,519 bytes versus 8,162,979 with sharing (8,169,168 in CI). Required policy and Unicode tables, bundled sharing code, and Studio controls account for the growth. Set the packed-only budget to 8,577,627, following the 5% headroom convention; retain the unpacked cap and all package checks. * fix(share): persist refusals and improve CLI retry feedback * fix(ci): restore render diagnostics and include sharing workspace * fix(cli): keep sharing owner error codes stable * fix(share): clarify update feedback and align audience changes * fix(share): clarify updates and avoid scratch-file rerenders * fix(cli): report active shares and preserve update channels * fix(cli): resolve update channel when checking registry * fix(ci): refresh sharing package budgets after rebase * fix(share): require consent before uploading project files

Record CLI sharing attempts, authentication, accepted uploads, completed videos, processing, recovery, and existing-link retrieval through the existing telemetry controls. Provide interaction helpers for the local Studio follow-up. Payloads use fixed fields and allowlisted failure categories; they exclude project paths, titles, links, credentials, and raw errors.
Restacked only the telemetry commit onto #7135 after #7137 merged. The source-capture, target-identity, upload-recovery, and explicit video-only safeguards remain inherited from that parent. Recovery is counted before status reconciliation clears saved state, and a completed video is counted even when its review link is disabled. Link reactivation cannot create a first share outside the audience/rollout checks.
Validation at
154d9a8eb:Local Studio interaction wiring belongs to the subsequent Studio slice. Signed-in end-to-end sharing and production telemetry delivery remain unverified. #7135 stays draft; this PR is ready for review, not queued to merge.