Skip to content

fix(ci): unbreak changelog prose pipeline and add beta.25 prose - #1810

Merged
decepulis merged 5 commits into
mainfrom
claude/beta-25-changelog-publish-avbaw9
Jul 15, 2026
Merged

fix(ci): unbreak changelog prose pipeline and add beta.25 prose#1810
decepulis merged 5 commits into
mainfrom
claude/beta-25-changelog-publish-avbaw9

Conversation

@decepulis

@decepulis decepulis commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

The prose-ified changelog for @videojs/core@10.0.0-beta.25 never got published today. Two independent bugs in .github/workflows/changelog-prose.yml were responsible; this PR fixes both and includes the beta.25 prose itself.

Bug 1 — the release relay never fired. The dispatch job (added in #1792) runs gh workflow run --field tag_name="$TAG_NAME", but release tags start with @ (@videojs/core@10.0.0-beta.25), which --field interprets as a read-from-file reference:

error parsing "tag_name" value: open videojs/core@10.0.0-beta.25: no such file or directory

Fixed by switching to --raw-field, which passes the value literally.

Bug 2 — the prose job can't finish even when dispatched. A manual workflow_dispatch for beta.25 (run 28894382161) failed with error_max_turns: 11 of its 20 turns were permission denials, because piped commands like gh api graphql | jq don't match the gh/git-only Bash allowlist. Fixed by allowing common read-only text utilities (jq, cat, head, grep, sed, …) and raising --max-turns to 50.

Beta.25 prose. Since the pipeline couldn't produce it, this PR also adds the prose for site/src/content/changelog/10.0.0-beta.25.md, written per the workflow prompt and writing-style.md: leads with quality selection, calls out the three breaking changes (#1661, #1753, #1705) with migration guidance, and skips internal-only and net-reverted changes (the i18n stack, #1707).

Changes

  • .github/workflows/changelog-prose.yml: --field--raw-field in the dispatch relay; widen --allowedTools and raise --max-turns for the prose job.
  • site/src/content/changelog/10.0.0-beta.25.md: replace raw git-cliff bullets with narrative prose and fill in the frontmatter description.

Testing

  • Reproduced the relay failure from the beta.23–25 run logs; verified --raw-field is the documented gh flag for literal string inputs.
  • Verified the entry renders correctly on the Netlify deploy preview: changelog/10.0.0-beta.25.

Release: https://github.com/videojs/v10/releases/tag/%40videojs%2Fcore%4010.0.0-beta.25

🤖 Generated with Claude Code

https://claude.ai/code/session_018H1XZpVx3z9n6rCWyxGbeN


Note

Low Risk
Changes are limited to GitHub Actions dispatch inputs, automation settings, and site changelog content—no player runtime or auth paths.

Overview
CI: The release relay in changelog-prose.yml now passes tag_name and release_url with gh workflow run --raw-field instead of --field, with a comment explaining that @-prefixed tags were being misread as file paths.

Prose automation: The Claude Code step raises --max-turns to 50 and widens allowedTools (extra Bash utilities) so the agent can gather PR context and rewrite changelogs more reliably.

Docs: site/src/content/changelog/10.0.0-beta.25.md drops the long categorized bullet list in favor of narrative paragraphs (quality/settings menus, breaking Cast/hlsjs/capability moves, AirPlay/Vimeo/SPF, fixes/docs), sets frontmatter description, and ends with a first-time contributor thank-you.

Reviewed by Cursor Bugbot for commit 8d34884. Bugbot is set up for automated code reviews on this repo. Configure here.


Note

Low Risk
Touches GitHub Actions inputs, automation config, and changelog markdown only—no player runtime, auth, or data paths.

Overview
CI: The release relay in changelog-prose.yml now passes tag_name and release_url with gh workflow run --raw-field instead of --field, so @videojs/core@… tags are not treated as file paths.

Prose automation: The Claude step switches to opus, raises --max-turns to 50, and widens Bash allowedTools (e.g. jq, grep, sed) so PR context gathering can finish. The rewrite prompt is expanded: themed ## sections, doc links for HTML/React, a dedicated Breaking changes block, and rules to drop reverted work (e.g. i18n).

Site: site/src/content/changelog/10.0.0-beta.25.md replaces the raw git-cliff bullets with narrative prose (menus/quality, Cast/AirPlay/Vimeo, polish, SPF), fills frontmatter description, and documents the three breaking migrations.

Reviewed by Cursor Bugbot for commit 45f2bd8. Bugbot is set up for automated code reviews on this repo. Configure here.

Tag names start with "@", which gh's --field flag expands as a
read-from-file reference and fails. --raw-field passes the value
verbatim.

Claude-Session: https://claude.ai/code/session_018H1XZpVx3z9n6rCWyxGbeN
@netlify

netlify Bot commented Jul 7, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 45f2bd8
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a57c341369e0e0008c5e728
😎 Deploy Preview https://deploy-preview-1810--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview, Comment Jul 15, 2026 5:28pm

Request Review

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html — no changes
Presets (7)
Entry Initial Lazy
/video (default) 50.85 kB 54.24 kB
/video (default + hls) 190.10 kB 54.24 kB
/video (minimal) 50.83 kB 54.24 kB
/video (minimal + hls) 190.17 kB 54.24 kB
/audio (default) 44.12 kB 54.24 kB
/audio (minimal) 41.37 kB 54.24 kB
/background 4.20 kB
Media (10)
Entry Initial
/media/background-video 1.14 kB
/media/container 1.71 kB
/media/dash-video 214.79 kB
/media/hlsjs-video 141.52 kB
/media/mux-audio 164.00 kB
/media/mux-video 163.70 kB
/media/native-hls-video 9.05 kB
/media/simple-hls-audio-only 17.19 kB
/media/simple-hls-video 18.69 kB
/media/vimeo-video 12.31 kB
Players (5)
Entry Initial
/video/player 8.22 kB
/audio/player 5.38 kB
/background/player 3.92 kB
/live-video/player 7.63 kB
/live-audio/player 5.39 kB
Skins (30)
Entry Type Initial Lazy
/video/minimal-skin.css css 5.70 kB
/video/skin.css css 5.65 kB
/video/minimal-skin js 50.84 kB 54.24 kB
/video/minimal-skin.tailwind js 51.54 kB 54.24 kB
/video/skin js 50.87 kB 54.24 kB
/video/skin.tailwind js 51.57 kB 54.24 kB
/audio/minimal-skin.css css 3.97 kB
/audio/skin.css css 3.86 kB
/audio/minimal-skin js 41.35 kB 54.24 kB
/audio/minimal-skin.tailwind js 41.89 kB 54.24 kB
/audio/skin js 44.18 kB 54.24 kB
/audio/skin.tailwind js 44.66 kB 54.24 kB
/background/skin.css css 133 B
/background/skin js 1.14 kB
/live-video/minimal-skin.css css 5.70 kB
/live-video/skin.css css 5.65 kB
/live-video/minimal-skin js 47.73 kB 54.24 kB
/live-video/minimal-skin.tailwind js 48.29 kB 54.24 kB
/live-video/skin js 49.41 kB 54.24 kB
/live-video/skin.tailwind js 49.98 kB 54.24 kB
/live-audio/minimal-skin.css css 3.97 kB
/live-audio/skin.css css 3.86 kB
/live-audio/minimal-skin js 33.86 kB 54.24 kB
/live-audio/minimal-skin.tailwind js 33.22 kB 54.24 kB
/live-audio/skin js 36.79 kB 54.24 kB
/live-audio/skin.tailwind js 36.29 kB 54.24 kB
/global.css css 183 B
/shared.css css 153 B
/tailwind.css css 161 B
/skin-element js 1.51 kB
UI Components (39)
Entry Initial
/ui/airplay-button 2.52 kB
/ui/alert-dialog 2.83 kB
/ui/alert-dialog-close 2.24 kB
/ui/alert-dialog-description 2.26 kB
/ui/alert-dialog-title 2.28 kB
/ui/audio-track-radio-group 2.98 kB
/ui/buffering-indicator 2.62 kB
/ui/captions-button 2.57 kB
/ui/captions-radio-group 2.94 kB
/ui/cast-button 2.54 kB
/ui/compounds 3.09 kB
/ui/controls 2.91 kB
/ui/error-dialog 2.92 kB
/ui/fullscreen-button 2.55 kB
/ui/hotkey 2.45 kB
/ui/menu 2.95 kB
/ui/mute-button 2.49 kB
/ui/pip-button 2.50 kB
/ui/play-button 2.56 kB
/ui/playback-rate-button 2.68 kB
/ui/playback-rate-radio-group 2.83 kB
/ui/popover 3.13 kB
/ui/poster 2.47 kB
/ui/quality-radio-group 2.95 kB
/ui/seek-button 2.56 kB
/ui/seek-indicator 2.71 kB
/ui/seek-indicator-value 375 B
/ui/slider 2.94 kB
/ui/status-announcer 2.50 kB
/ui/status-indicator 2.62 kB
/ui/status-indicator-value 419 B
/ui/thumbnail 2.56 kB
/ui/time 2.92 kB
/ui/time-slider 2.95 kB
/ui/tooltip 2.85 kB
/ui/volume-indicator 2.53 kB
/ui/volume-indicator-fill 385 B
/ui/volume-indicator-value 371 B
/ui/volume-slider 2.94 kB

Sizes are marginal over the root entry point.

⚛️ @videojs/react — no changes
Presets (7)
Entry Initial Lazy
/video (default) 40.50 kB 54.24 kB
/video (default + hls) 178.58 kB 54.24 kB
/video (minimal) 40.85 kB 54.24 kB
/video (minimal + hls) 179.06 kB 54.24 kB
/audio (default) 33.64 kB 54.24 kB
/audio (minimal) 33.70 kB 54.24 kB
/background 579 B
Media (9)
Entry Initial
/media/background-video 403 B
/media/dash-video 212.95 kB
/media/hlsjs-video 139.79 kB
/media/mux-audio 162.41 kB
/media/mux-video 162.25 kB
/media/native-hls-video 7.26 kB
/media/simple-hls-audio-only 15.39 kB
/media/simple-hls-video 16.96 kB
/media/vimeo-video 10.44 kB
Skins (27)
Entry Type Initial Lazy
/tailwind.css css 161 B
/video/minimal-skin.css css 5.55 kB
/video/skin.css css 5.52 kB
/video/minimal-skin js 40.70 kB 54.24 kB
/video/minimal-skin.tailwind js 46.79 kB 54.24 kB
/video/skin js 40.35 kB 54.24 kB
/video/skin.tailwind js 46.46 kB 54.24 kB
/audio/minimal-skin.css css 3.79 kB
/audio/skin.css css 3.68 kB
/audio/minimal-skin js 33.57 kB 54.24 kB
/audio/minimal-skin.tailwind js 35.86 kB 54.24 kB
/audio/skin js 33.58 kB 54.24 kB
/audio/skin.tailwind js 37.76 kB 54.24 kB
/background/skin.css css 90 B
/background/skin js 272 B
/live-video/minimal-skin.css css 5.55 kB
/live-video/skin.css css 5.52 kB
/live-video/minimal-skin js 35.31 kB 54.24 kB
/live-video/minimal-skin.tailwind js 41.25 kB 54.24 kB
/live-video/skin js 35.31 kB 54.24 kB
/live-video/skin.tailwind js 41.29 kB 54.24 kB
/live-audio/minimal-skin.css css 3.79 kB
/live-audio/skin.css css 3.68 kB
/live-audio/minimal-skin js 24.25 kB 54.24 kB
/live-audio/minimal-skin.tailwind js 27.42 kB 54.24 kB
/live-audio/skin js 24.31 kB 54.24 kB
/live-audio/skin.tailwind js 27.45 kB 54.24 kB
UI Components (33)
Entry Initial
/ui/airplay-button 2.49 kB
/ui/alert-dialog 2.62 kB
/ui/audio-track 2.36 kB
/ui/buffering-indicator 2.54 kB
/ui/captions-button 2.49 kB
/ui/captions-radio-group 2.33 kB
/ui/cast-button 2.49 kB
/ui/controls 2.53 kB
/ui/error-dialog 2.51 kB
/ui/fullscreen-button 2.45 kB
/ui/gesture 2.33 kB
/ui/hotkey 2.32 kB
/ui/live-button 2.43 kB
/ui/menu 2.63 kB
/ui/mute-button 2.38 kB
/ui/pip-button 2.48 kB
/ui/play-button 2.47 kB
/ui/playback-rate 2.46 kB
/ui/playback-rate-button 2.40 kB
/ui/popover 3.12 kB
/ui/poster 2.47 kB
/ui/quality 2.31 kB
/ui/seek-button 2.41 kB
/ui/seek-indicator 2.63 kB
/ui/slider 2.71 kB
/ui/status-announcer 2.39 kB
/ui/status-indicator 2.43 kB
/ui/thumbnail 2.45 kB
/ui/time 2.25 kB
/ui/time-slider 2.55 kB
/ui/tooltip 3.04 kB
/ui/volume-indicator 2.38 kB
/ui/volume-slider 2.60 kB

Sizes are marginal over the root entry point.

🧩 @videojs/core — no changes
Entries (68)
Entry Initial Lazy
. 10.39 kB
/dom 17.56 kB
/dom/media/custom-media-element 2.09 kB
/dom/media/dash 208.97 kB
/dom/media/google-cast 4.03 kB
/dom/media/hls-js 135.87 kB
/dom/media/media-host 1.25 kB
/dom/media/media-played-ranges 576 B
/dom/media/mux 151.37 kB
/dom/media/native-hls 3.07 kB
/dom/media/simple-hls 16.48 kB
/dom/media/simple-hls-audio-only 14.93 kB
/dom/media/vimeo 9.87 kB
/media/predicate 563 B
/i18n 2.66 kB 54.24 kB
/i18n/locales/all 30.58 kB
/i18n/locales/ar 1.21 kB
/i18n/locales/az 1.08 kB
/i18n/locales/bg 1.25 kB
/i18n/locales/bn 1.27 kB
/i18n/locales/bs 1014 B
/i18n/locales/ca 1.05 kB
/i18n/locales/cs 1.04 kB
/i18n/locales/cy 1.00 kB
/i18n/locales/da 996 B
/i18n/locales/de 1.08 kB
/i18n/locales/el 1.45 kB
/i18n/locales/en 621 B
/i18n/locales/es 1010 B
/i18n/locales/et 1.05 kB
/i18n/locales/eu 1.01 kB
/i18n/locales/fa 1.20 kB
/i18n/locales/fi 1.03 kB
/i18n/locales/fr 1.07 kB
/i18n/locales/gd 1.10 kB
/i18n/locales/gl 1014 B
/i18n/locales/he 1.12 kB
/i18n/locales/hi 1.28 kB
/i18n/locales/hr 1.02 kB
/i18n/locales/hu 1.09 kB
/i18n/locales/it 1023 B
/i18n/locales/ja 1.17 kB
/i18n/locales/ko 1.11 kB
/i18n/locales/lv 1.08 kB
/i18n/locales/mr 1.28 kB
/i18n/locales/nb 1000 B
/i18n/locales/ne 1.28 kB
/i18n/locales/nl 1013 B
/i18n/locales/nn 996 B
/i18n/locales/oc 1.05 kB
/i18n/locales/pl 1.12 kB
/i18n/locales/pt 1.01 kB
/i18n/locales/pt-BR 1.01 kB
/i18n/locales/pt-PT 1009 B
/i18n/locales/ro 1.05 kB
/i18n/locales/ru 1.33 kB
/i18n/locales/sk 1.10 kB
/i18n/locales/sl 1.02 kB
/i18n/locales/sr 1.03 kB
/i18n/locales/sv 1022 B
/i18n/locales/te 1.31 kB
/i18n/locales/th 1.29 kB
/i18n/locales/tr 1.07 kB
/i18n/locales/uk 1.36 kB
/i18n/locales/vi 1.08 kB
/i18n/locales/zh 1.01 kB
/i18n/locales/zh-CN 1.01 kB
/i18n/locales/zh-TW 1.01 kB
🏷️ @videojs/element — no changes
Entries (2)
Entry Initial
. 996 B
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Initial
. 1.39 kB
/html 696 B
/react 360 B
🔧 @videojs/utils — no changes
Entries (11)
Entry Initial
/array 104 B
/dom 2.74 kB
/events 319 B
/function 327 B
/object 275 B
/predicate 265 B
/percent 281 B
/string 231 B
/style 190 B
/time 629 B
/number 158 B
📦 @videojs/spf — no changes
Entries (4)
Entry Initial
. 4.45 kB
/dom 6.32 kB
/hls 15.40 kB
/background-video 12.85 kB

ℹ️ How to interpret

JS sizes are initial static graph totals (minified + brotli). Lazy dynamic chunks are shown separately when present.

Icon Meaning
No change
🔺 Increased ≤ 10%
🔴 Increased > 10%
🔽 Decreased
🆕 New (no baseline)

Run pnpm size locally to check current initial sizes.

claude added 2 commits July 7, 2026 20:01
The dispatched prose run for beta.25 failed with error_max_turns: 11 of
its 20 turns were permission denials, since piped commands like
`gh api graphql | jq` don't match the gh/git-only Bash allowlist.
Allow common read-only text utilities and raise the cap to 50.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018H1XZpVx3z9n6rCWyxGbeN
@decepulis decepulis changed the title fix(ci): use --raw-field for changelog-prose dispatch inputs fix(ci): unbreak changelog prose pipeline and add beta.25 prose Jul 7, 2026
decepulis and others added 2 commits July 15, 2026 10:28
Restructure the beta.25 entry into a story with section headings,
docs links for both frameworks, and a dedicated breaking-changes
section, in place of the dense single-paragraph format.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Allow section headings and bullet lists (the renderer styles them),
relax the word-count cap, add docs-linking and reverted-feature rules,
require a dedicated breaking-changes section, and run the prose pass
on opus for higher-quality technical writing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@decepulis
decepulis merged commit 2b96ba1 into main Jul 15, 2026
6 of 7 checks passed
@decepulis
decepulis deleted the claude/beta-25-changelog-publish-avbaw9 branch July 15, 2026 17:29
decepulis added a commit that referenced this pull request Jul 16, 2026
Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit 2b96ba1)
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.

3 participants