Repository navigation
docs(studio-app): the Reference read is paid by Pro or a saved HeyGen API key - #7440
Conversation
… API key ReferenceAnalysis readGate: a saved usable key pays the read; without one the plan gate opens the plans page (feature video_analysis). The page said only the API key paid.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
There was a problem hiding this comment.
Checked against hyperframes-internal ReferenceAnalysis.tsx readGate and billing/planPays.ts planGate on main. Not approving yet: waiting on Rames.
Correct
- A saved, usable key pays for the read. With no saved key, the gate is
planGate(false, "referenceRead")on route/v3/video-analyses, so Pro pays. A missing plan opensopenPlan({ feature: "video_analysis" }), andonPlanChangedasks again once the plan pays. - The pricing page lists Reference Videos under Pro.
Should tighten (not a blocker)
- A saved key always comes first, even on Pro. If the saved key can't pay (no API balance),
readGatereturnsneed: "key", so the app asks for a key and doesn't fall back to Pro. A Pro user with an empty-balance key will hit the key prompt. Suggested addition: "A saved key is always used first. If its balance is empty, the app asks for a key; remove the key in Settings to use Pro instead." - "With neither, it opens the plans page" isn't always true.
planGatereturnsneed: "key"(the key prompt, not the plans page) when plan payment is off (!pays.on) or plans aren't on sale (hf_plan && !onSale). A Pro account that has used up its allowance getshf_usage, which opens Plan & usage. That probably matches production today, but "opens the plans page, or Plan & usage if Pro's allowance is used up" would be more accurate.
…e opens plan and usage
jrusso1020
left a comment
There was a problem hiding this comment.
COMMENT-only review: please correct the billing priority before merging. Reviewed at 6da9308f2b2f924a9671f5437a90ae027640c293.
Important — docs/studio-app/reference-video.mdx:26–28: a saved key does not always pay first. A Pro account with available credits and a valid saved key passes readGate, but the actual read still chooses the plan. readGate is an admission check, not the payer selection. Following that call into Desktop's reference analysis shows planLine() calling payer.choose(); choosePayer() returns the plan for a covered, funded feature even when a key is saved. heygenKeyAccess explicitly preserves this plan-first priority. Source checked at hyperframes-internal d0edcb44e9e7b4843df630f5573cf442e257d363, referenceAnalysis.mjs:153–161,252 and heygenPayerChoice.mjs:39–44.
Please replace “the app uses that key's API balance instead” / “A saved key always comes first” with: “Pro credits pay for the read when available. A usable saved HeyGen API key can pay when the plan cannot.” Keep the distinct UI caveat: a saved empty/rejected key can cause the key prompt before the read starts; removing it lets an eligible Pro plan proceed. This corrects the claim without changing application behavior. It also corrects the payer inference in the earlier review: successful admission with a key is not evidence the key was charged.
Nit: :29–30 still promises the plans page with neither payer. planGate can instead ask for a key when plan payment is unavailable or plans are not on sale. Say “The app asks you to get Pro or add a usable key; when your plan can pay, it retries the selected video.” Used-up Pro usage and resuming only the current selection are source-confirmed.
Source-traced renderer admission → native host → reference read → payer, including funded Pro with/without a key, key without Pro, empty key and missing/exhausted plan cases. Public pricing lists Reference Videos under Pro; all four local links resolve. No live billing/account walkthrough or charges performed.
Need: yes · Size: ok · Reuse: actual read payer rather than admission gate · Simpler: describe plan-first payment and key fallback · Structure: fine (checked shared payer and existing plan gate; no split)
Risk: low — docs only; payment guidance needs the correction above.
Verdict: COMMENT
Reasoning: Please correct the billing priority before merging; the key can admit the read while Pro still pays.
— Rames / hf-review
…ed key when the plan can't
There was a problem hiding this comment.
Re-checked at a7674892 against hyperframes-internal main. The new wording is correct:
- Plan first:
choosePayer(heygenPayerChoice.mjs) returnspayer: "plan"for a covered, funded feature even with a key saved./v3/video-analysesisn't markedkeyFirst, so Pro pays when it can, and the key pays only for thekeyOr(...)cases (not covered, used up, no plan). This corrects my earlier review, which tookreadGateadmission as the payer. - Empty saved key:
readGatestill returnsneed: "key"before the read, so "remove it to let Pro pay" holds. - Neither: "asks you to get Pro or add a key" covers
planGate'sneed: "key"cases.hf_usageopens Plan & usage, andonPlanChangedretries only the selection on screen.
I'll approve once Rames has reviewed this head and found no blocker.
jrusso1020
left a comment
There was a problem hiding this comment.
Reviewed at a76748924dc51ca9888bab67c74f84c0a435b495; delta from 6da9308f2b2f924a9671f5437a90ae027640c293. No remaining blocker.
docs/studio-app/reference-video.mdx:25–31 fixes the previous Important finding: funded Pro credits pay first, and a usable saved key pays when the plan cannot. The empty-balance saved-key prompt is correctly described as occurring before the read. The broader “get Pro or add a key” wording also resolves the earlier prompt caveat; Plan & usage and retrying the selected video agree with the existing plan gate and listener.
Evidence: git diff 6da9308f a7674892 changes only this paragraph; read the full page and rechecked the previously pinned application source at d0edcb44e9e7b4843df630f5573cf442e257d363: actual planLine → choosePayer, renderer admission, plan prompt, and selected-video resume. This is a source review; no live billing/account walkthrough, charges, or application tests performed for this text-only delta.
Need: yes · Size: ok · Reuse: existing payer and plan-gate behavior · Simpler: already minimal · Structure: fine (checked shared payer and existing plan gate; no split)
Risk: low — documentation correction only.
Verdict: COMMENT
Reasoning: The billing priority and prompt caveats now match the implementation; my prior correction request is resolved.
— Rames / hf-review
There was a problem hiding this comment.
Approving at a7674892. The wording matches choosePayer: Pro pays first, and a usable saved key pays when the plan cannot. The empty-key prompt and the "get Pro or add a key" ask with Plan & usage also match. Rames found no remaining blocker at this head.
…n (upstream heygen-com#7441, heygen-com#7440) Applies upstream 756bd6b (heygen-com#7441) and b12365d (heygen-com#7440), both by Ular Kimsanov, unchanged: the Export page now says cloud exports are included in the plan (5 a month on Free, unlimited on Pro) and a saved HeyGen API key pays when billed per minute, and the Reference page says Pro credits pay for the read with a saved key as the fallback. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nce watermark Seventeen commits, PRs 7469-7493, issues 7473 and 7486 and twelve pin moves are recorded with their evidence in the continued ledger, DECISIONS, UPSTREAM and ROADMAP. Adopted: heygen-com#7466, heygen-com#7479, heygen-com#7482, heygen-com#7490 and the heygen-com#7441 and heygen-com#7440 docs. Deferred: heygen-com#7469, heygen-com#7471, heygen-com#7476, heygen-com#7480, heygen-com#7468, heygen-com#7487, heygen-com#7491. Not applicable: heygen-com#7470, heygen-com#7351, heygen-com#7475, heygen-com#7483. The watermark moves to 61e720b, PR heygen-com#7493, issue heygen-com#7486; thirteen new PRs are pinned. FORK.md records the subComposition test differences. The core packed-size roadmap row trigger is not met. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
What
One paragraph on the Reference video page (/studio-app/reference-video): Reference is part of HyperFrames Pro, and Pro credits pay for the video read when available. A usable saved HeyGen API key pays when the plan can't. A saved key with an empty balance makes the app ask for a key before the read; removing it lets Pro pay. With neither able to pay, the app asks for Pro or a key (Plan & usage when Pro's allowance is used up) and picks the selected video up again once the plan can pay.
Why
The page said Reference always uses your HeyGen API key. Pro users without a key were told to add one they don't need, and the pricing page (Reference Videos under Pro) disagreed with the docs.
Related work
The new "Reverse any video" docs page (local branch docs/reverse-any-video) links here.
How
Docs text only, one paragraph.
Test plan
What I measured (6 Nov 2026):
What I did NOT exercise: the flow in the app on a Free account and on a Pro account with no key.
How we'll know it worked: no more "Reference asks for an API key but I'm on Pro" questions in the docs assistant logs.