Repository navigation
docs: an FAQ, a free-agents page, and 30 Days as a numbered list - #6382
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
1615747 to
8ea7676
Compare
jrusso1020
left a comment
There was a problem hiding this comment.
We reviewed only this PR's last commit and checked sampled FAQ and provider claims against source. The new lesson list loses the old reduced-motion and accessible playback behavior. Please fix the inline finding before merging. Broken links pass; we did not rerun provider flows or Mint validation.
| const play = (event, on) => { | ||
| const video = event.currentTarget.querySelector("video"); | ||
| if (!video) return; | ||
| if (on) video.play().catch(() => {}); |
There was a problem hiding this comment.
[P2] Preserve reduced motion and an explicit playback control. This unconditionally starts a looping film when the pointer crosses a lesson row. In the preview with prefers-reduced-motion enabled, hovering day 1 still calls play(). The old HoverVideo guarded incidental playback and provided a keyboard-accessible play button; this video has no controls and the only handlers are mouse enter/leave. Keep reduced-motion autoplay suppression and provide an intentional play/pause route for keyboard and touch users. HoverVideo already demonstrates the policy, though Mintlify's snippet-import restriction may require a self-contained control.
jrusso1020
left a comment
There was a problem hiding this comment.
We checked the follow-up. Reduced-motion hover protection and keyboard/touch playback now work. One new control-state bug remains when two lesson films are started in sequence; please fix the inline finding. The replay used the actual snippet with fixture media, not production film acceptance.
| const toggle = (event, n) => { | ||
| const video = event.currentTarget.querySelector("video"); | ||
| if (!video) return; | ||
| if (chosen === n && !video.paused) { |
There was a problem hiding this comment.
[P2] Keep each film's playback state and button in agreement. A single chosen ID cannot describe multiple videos that remain playing. Keyboard Enter on day 1, then Space on day 2 leaves both native videos playing, but day 1 now says Play with aria-pressed=false. Activating day 1 again does not pause it because chosen !== n. We reproduced this in Chromium with the actual snippet. Either pause the previous chosen film when selecting another or track playback per film, and derive the labels and pause action from the actual state.
2779385 to
3f40b2a
Compare
jrusso1020
left a comment
There was a problem hiding this comment.
We checked the follow-up. Choosing another lesson now pauses the previous film, keeps the labels accurate and prevents other rows from previewing while one is chosen. Keyboard, touch and reduced-motion controls pass in the snippet fixture harness. Our prior finding is resolved; no new blocker found.
miguel-heygen
left a comment
There was a problem hiding this comment.
Independent review at 3f40b2acaeac9b2b0e53681b139cb26bdaa92bef, scoped to this PR's own changes above d33083bd0. Rames's within-list switching, reduced-motion and keyboard repairs work; one page-level playback boundary remains.
Blocker (P2), docs/snippets/day-list.jsx:81: each of the three mounted DayLists pauses only its own videos. On the actual hosted /thirty-days preview, keyboard-start day 1 then day 2: one plays, as intended. Now keyboard-start day 10: day 2 and day 10 both remain playing, each button pressed. thirty-days.mdx mounts parts 0/1/2 independently, so a chosen film in another section also does not suppress this section's hover previews. Coordinate selection/pause at page scope and cover a cross-section keyboard/hover sequence, retaining accurate labels.
Audited: own six-file diff and cumulative stack boundaries, FAQ/free-agent guidance and consumers, the three DayList mounts and source cleanup. Executed: actual public hosted-preview media and keyboard controls, reduced-motion hover suppression and deliberate Space playback; FAQ mobile route has no horizontal overflow. The 14 snippet-motion tests pass on the Inspiration snapshot (supporting shared coverage, not a witness for this missing case). Existing peer reviews read in full; this is additive to their within-list control.
CI: 57 success / 54 skipped, no failed checks. Browser evidence is public Mintlify preview, not native/provider acceptance; no installation, paid call, production write, merge or FPS claim.
Verdict: REQUEST CHANGES
Reasoning: The single-film repair is confined to one list instance; the real page mounts three instances and still permits simultaneous playback across them.
— Magi
| return; | ||
| } | ||
| // Choosing a film stops the one chosen before, so each button always matches its film. | ||
| for (const v of listRef.current?.querySelectorAll("video") ?? []) if (v !== video) v.pause(); |
There was a problem hiding this comment.
[P2] Coordinate selection across all three lesson lists. The actual /thirty-days page mounts DayList parts 0, 1 and 2. Keyboard Enter on day 1, Enter on day 2 correctly pauses day 1; Enter on day 10 then leaves day 2 and day 10 both playing with aria-pressed=true. This loop only reaches listRef, and each instance owns its own chosen state. A chosen film in one section likewise does not suppress hover previews in another. Use a page-wide playback owner (or equivalent coordination), keeping labels in sync, and test day 2 → day 10 plus cross-section hover.
miguel-heygen
left a comment
There was a problem hiding this comment.
Independent repair review at fe6c350805c7ccfe347e4272bbe027c8aeed67b2; replaces my cross-section playback hold.
docs/snippets/day-list.jsx:61-83 now coordinates the independently mounted lists via document capture, clears another list's selection and suppresses hover while sound plays. In the newly deployed public /thirty-days Mintlify preview, keyboard/click day 1 → 2 → 10 leaves only day 10 playing and pressed. Day 21 hover is suppressed during sound; after pausing and re-entering, it previews muted. Mobile 390px dark/reduced-motion deliberate playback passes without horizontal overflow. The isolated exact-source browser control agrees.
Audited: the repair diff, all three DayList mounts, listener cleanup and previous full peer review texts. Prior FAQ/provider guidance audit is unchanged. Executed: hosted public CDN media controls and 14/14 snippet-motion tests. No uncaught page errors; the known GitHub repository/star widget XHR 403 is unrelated to playback. No native/provider/FPS acceptance claim.
CI snapshot: 39 success, 19 skipped, 1 neutral, 5 running; docs validation, lint and Mintlify deployment succeeded, no failing checks. Remaining Windows/analysis checks are pending, not claimed green.
Verdict: APPROVE
Reasoning: The original page-level failure and its hover boundary now pass on the deployed repair, with accurate selection state and cleanup.
— Magi
fe6c350 to
b1c11ce
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Successor review at b1c11cedebd6564232845aade3491056be6522eb. docs/custom.css:1675-1683 replaces the fixed tints with the merged palette tokens; DayList playback source is byte-identical to the independently approved repair. The actual public hosted /thirty-days preview still leaves only day 10 playing/pressed after choosing days 1, 2 and 10 across separate lists.
Audited: restacked layer and palette delta, token definitions/consumers, three DayList mounts and all current peer review text. Trusting: prior FAQ/free-agent source audit for unchanged prose. Executed: hosted public preview light/dark and 390px checks, computed token styles and screenshots; no horizontal overflow or uncaught page errors. 14 snippet-motion tests and prior-repair byte-equivalence controls pass. No native/provider/FPS acceptance claim.
Current-head CI snapshot: {'skipped': 50, 'success': 52, 'in_progress': 2, 'neutral': 1}. Docs validation, lint and Mintlify deployment passed; remaining checks are pending, not claimed green.
Verdict: APPROVE
Reasoning: The reviewed content/repairs survive the restack, and the new palette integration has no blocking defect in the affected rendered routes. Approval covers this exact head only.
— Magi
The FAQ answers the questions people ask the docs assistant most, each linking to its page. Make videos with a free agent shows OpenCode's free models in the Studio app, local models through Ollama, and how open models scored in Code2Video. 30 Days of HyperFrames becomes one numbered row per lesson with its film on hover, and drops a link to a section that no longer exists.
Hovering a lesson started its film even with reduced motion on, and keyboard and touch visitors had no way to play it. Hover previews now follow the setting (read on the first render, and stopped if it turns on), and each film is a button that plays and pauses on purpose.
Choosing a lesson film pauses the one chosen before, so every button matches its film, and other rows do not preview while a film plays.
The page mounts three lesson lists, and each only paused its own films. A chosen film now plays with sound, and any unmuted start on the page makes every list stop its own films and drop its choice; previews stay muted and wait while a film with sound plays.
The lesson list used fixed black and white tints; its rules, numbers, lines and film backgrounds now use the palette tokens, so they match the beige ground and the Night theme.
b1c11ce to
bda4ab4
Compare
miguel-heygen
left a comment
There was a problem hiding this comment.
Fresh restack review at bda4ab457151b4acf59d823d45809033135c19b0, based on landed a988afa00bc5dd391dbabb82adebc795ece8d730.
All five own commits pair unchanged in git range-diff against 1a4b9e0b..b1c11ced; the normalized full patch matches. All six affected files and the entire docs tree are byte-identical to the approved b1c11ced snapshot, including page-wide playback and token-based styling. API/git file censuses agree.
Audited: exact five-commit layer, base integration, nav/FAQ/free-agent/three-DayList consumers and all current peer review/comment text. Trusting: the prior independent factual-source, light/dark/mobile and palette audits for this identical content. No new native/provider/FPS acceptance claim. Executed: exact-source motion guard and 12 applicable snippet-motion tests pass. Prior Inspiration-only assertions are outside this layer's test file.
Rames's earlier within-list/reduced-motion findings and my cross-section finding remain repaired in the unchanged source. The browser evidence below is public hosted Mintlify, not production or signed-in Studio.
Fresh hosted replay after hydration: day 2 → day 10 leaves only day 10 playing/pressed; no horizontal overflow or uncaught page errors. The known preview-widget Axios403 remains. This reuses the prior full light/dark/mobile evidence for byte-identical source rather than claiming a new full matrix.
Current-head CI: {'skipped': 37, 'neutral': 1, 'success': 23, 'in_progress': 1}. Docs validation and lint passed; any remaining running checks are unconfirmed.
Verdict: APPROVE
Reasoning: The actual restack preserves every reviewed patch and affected file, including the playback repair and palette. Current focused evidence and docs gates show no blocker. This covers only this exact head.
— Magi
What
/faq, in "Start here"). 17 short answers to the questions people ask the docs assistant most: is it free, can I use it commercially, which agent, the Claude or ChatGPT chat apps, install, accounts and API keys, Windows, the Studio app vs the browser editor, Remotion, preview and render, render time, voice and music, captions, fonts, cloud rendering, what is sent to HeyGen, what to check when something fails. Each answer links to the page with the details./guides/free-agents, in "Use it with your agent"). HyperFrames is free, so the agent is the only cost. The page covers:Why
In one month the docs assistant got 5,541 questions (Mintlify analytics, 18 Sep – 17 Oct). The most common:
Today no page answers these in one place, so the assistant answers them again each time. Some people leave instead, because they think they have to pay for a top model.
How we'll know: fewer of those questions to the assistant; FAQ and free-agents pages get visits from search and AI answers (PostHog docs pageviews).
Related work
Docs PR 7b, stacked on #6380 (#6378, #6379 and #6393 merged): until it merges, this diff also shows its commits. Review only this PR's own commits. The Inspiration page (old "Examples") is its own PR, stacked on this one. "Is HyperFrames free?" as its own page waits until pricing is announced, so the FAQ links the free and HeyGen table instead.
How
Built from the reviewed drafts (
docs/content-samples, 22–23 Oct). Every claim was checked against today'smainof both repos before it went in:harnessCatalog.mjs,harnessProbe.mjs,FullAccessCard.tsx);LICENSE); the supported agents (README, skills guide); the plugin andnpx skills addcommands;auth login; the Mac and Linux app with Windows coming (the app install page);--quality draft(render.ts);telemetry.ts,events.ts);cloud render(cloud.ts).Test plan
mint broken-links --check-redirects: no broken links;mint validatepasses;bun run lintpasses