Skip to content

feat(cli): beats analyses an audio or video file given directly - #6812

Merged
miguel-heygen merged 2 commits into
mainfrom
feat/beats-audio-file
Oct 30, 2026
Merged

miguel-heygen merged 2 commits into
mainfrom
feat/beats-audio-file

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

What

hyperframes beats <file> now analyses an audio or video file given directly and prints the result (--json adds beatTimes). It writes nothing. hyperframes beats <folder> is unchanged and still writes beats/<audio>.json; an .html argument still points to its folder.

Why

Agents keep running hyperframes beats song.mp3 and were refused with "beats takes a project folder", then sent to hyperframes audio. Three feedback reports in one night hit this. Accepting the file is what they reach for, and the project form keeps working.

Related work

#6544 made the refusal point at hyperframes audio; this replaces that refusal with the analysis itself.

How

The file form decodes with the same decode and runs the same analyzeMusicFromSignal as the project form, so both give the same beats for the same track. It writes no beat file because there is no project to put one in.

Size

79 changed lines (60 added, 19 removed) in 5 files: beats.ts (the file branch), its test, the CLI docs entry, the hyperframes-cli beats skill reference and the regenerated skills manifest.

Test plan

  • beats.test.ts: a wav given directly exits 0, reports bpm within 1 of 120 and 18+ beatTimes, and creates no beats/ folder
  • beats.test.ts 24/24 on three runs in a row
  • oxfmt and oxlint clean on the changed files
  • CLI docs entry for beats updated

fails without the fix: AssertionError: expected 1 to be +0 // Object.is equality (the file argument was refused with exit 1)

What I measured

Red and green of the new test on Linux with ffmpeg.

What I did NOT execute

The built dist/cli.js by hand, a video file with a music track, and Windows or macOS.

@mintlify

mintlify Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
hyperframes 🟢 Ready View Preview Oct 30, 2026, 9:14 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE · 0 blocker · 1 important · 0 nits · head 49730369

  • important: skills/hyperframes-cli/references/beats.md:11 still says beats takes "the project folder, never a media file" and sends agents to hyperframes audio <file> --only beats --json. That is the refusal this PR removes, and agents read that skill, so they will keep avoiding the new file form. It needs a one-line follow-up (plus a skills-manifest.json refresh for the Skills: manifest in sync check).
What I checked
  • beats.test.ts: 24/24 at head. With base beats.ts restored, the new test fails with expected 1 to be +0, which matches the body's fails-without-the-fix line.
  • The file form reuses decode and analyzeMusicFromSignal, fails on 0 beats the same way the project form does, and writes nothing. .html arguments still point to their folder.
  • CI is green at this head, including Windows render verification.

@heygengenesis heygengenesis Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE — 1 resolved, 0 open, 0 new · 4973036 → 9ac35e8 (skill text now matches the CLI; gen-skills-manifest.ts --check passes locally; CI green)

@miguel-heygen
miguel-heygen added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit a373071 Oct 30, 2026
118 checks passed
@miguel-heygen
miguel-heygen deleted the feat/beats-audio-file branch October 30, 2026 10:22
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.

1 participant