Skip to content

Release 2.5.1: review fixes and ESLint 9 - #47

Merged
pmochine merged 5 commits into
masterfrom
fix-2.5.1
Oct 7, 2026
Merged

pmochine merged 5 commits into
masterfrom
fix-2.5.1

Conversation

@pmochine

@pmochine pmochine commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Patch release 2.5.1. Merge with a merge commit.

An independent review by Codex (gpt-6-astra) of 2.5.0 found five minor problems. Two re-reviews of this branch found one more and confirmed all fixes ("ok to publish 2.5.1").

Fixes

  • A pending play() no longer shows the previous video after a source switch. hide(), pause(), stop() and a newer play() cancel a pending request.
  • Hydration in a container outside the document works without a mismatch. The check for hydration only reads this.$.vnode.el.
  • With Vue 3.2, the types require src. The types pass the props as runtime options to DefineComponent.
  • The media type lookup only reads own properties (.constructor, .__proto__).
  • The test for the sources order uses its own unsorted array, so it catches an in-place sort.

Tooling

  • Linting uses ESLint 9 and eslint-config-avidofood 4.0.0 (eslint.config.mjs replaces .eslintrc.js). This fixes the last Dependabot alert (#87, dev only). The published files do not change because of this.
  • Rebuilt demo bundle.

Testing

  • npm run lint, npm test (62 tests and the type check), npm run build and npm pack --dry-run pass in fresh clones on Node 22.12 and 24.
  • The packed tarball was tested in a separate project with Vue 3.5.43 and Vue 3.2.0: ESM, CommonJS, UMD, server rendering, client mount and hydration (dev and production build of Vue).
  • Types pass with Vue 3.2.0, and with TypeScript 5.9, 6.0 and 7.0 for bundler, node16 ESM and node16 CJS. vue-tsc passes. @arethetypeswrong/cli reports no problems.
  • Each fix has a test that fails without the fix.

🤖 Generated with Claude Code

pmochine and others added 5 commits October 7, 2026 14:10
- A pending play() no longer shows the old video after a source switch.
  hide() and a newer play() make an older request obsolete. Before, the
  late promise showed video A again and emitted playing, while video B
  waited to load.
- Hydration detection only checks this.$.vnode.el. The isConnected check
  treated a server-rendered container outside the document as a
  client-only mount and caused a hydration mismatch.
- The types pass the props as runtime options to DefineComponent. With
  Vue 3.2, a plain props interface lost the required flag, so a missing
  src compiled without an error.
- The media type lookup only reads own properties. Before, a URL ending
  in ".constructor" got the type "function Object() { [native code] }".
- The test for the sources order uses its own unsorted array. Before, an
  earlier test sorted the shared fixture, so the test passed even with
  the old in-place sort.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- eslint 8 -> 9, eslint-config-avidofood 3 -> 4 (flat config). The
  config brings eslint-plugin-vue 10 and eslint-plugin-import, so they
  are no longer direct dev dependencies.
- eslint.config.mjs replaces .eslintrc.js. The lint script is
  "eslint ." and ignores dist/ and demo/public/.
- eslint-plugin-vue 10 uses postcss-selector-parser 7.1.6. This fixes
  the last Dependabot alert (GHSA-rj75-hqrm-r3gf, dev only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A patch release: bug fixes from the Codex Astra review of 2.5.0 and the
ESLint 9 tooling, see CHANGELOG.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Codex Astra re-review found that the source-switch fix was not
complete. When pause() or stop() came while play() was pending, the
promise still showed the video and emitted playing afterwards, although
the video was paused. pause() now cancels the pending request, and
stop() uses pause(). cancelPlayRequest() holds the shared logic of
hide(), pause() and play().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pmochine
pmochine merged commit a89d7e1 into master Oct 7, 2026
2 checks passed
@pmochine
pmochine deleted the fix-2.5.1 branch October 7, 2026 12:52
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