Skip to content

Fix website video playback in Windows Chrome and Edge - #396

Merged
MelbourneDeveloper merged 44 commits into
mainfrom
fix/windows-video-playback
Oct 19, 2026
Merged

MelbourneDeveloper merged 44 commits into
mainfrom
fix/windows-video-playback

Conversation

@MelbourneDeveloper

Copy link
Copy Markdown
Collaborator

TLDR

Website films play in Windows Chrome and Edge again: every video lists its H.264 MP4 before its VP9 WebM, and a new playback test proves frames actually decode.

Details

  • Root cause. Windows Chrome/Edge accept the VP9 <source>, decode one frame, then stop with PIPELINE_ERROR_DECODE, and never try the next source. Every film listed WebM first, so every film failed there.
  • src/_data/videos.json: all 18 films now list ["mp4", "webm"].
  • video-figure.js: the VideoObject contentUrl points to the first (preferred) encoding instead of the last, so search engines link the MP4.
  • New tests/video-playback.spec.js: plays 20 films across docs and blog pages, then pauses, seeks to the middle and resumes. Each step checks that the clock advances, frames decode (getVideoPlaybackQuality().totalVideoFrames) and video.error stays null. A served file and a resolved play() don't prove playback.
  • tests/media.js: a new expectFramesAdvance helper, which also catches decode errors raised after play() resolves.
  • playwright.config.js: on Windows, the playback spec also runs on installed Chrome and Edge, where the bug reproduced; bundled Chromium and WebKit passed. The phone projects use installed Chrome there because Windows WebKit rejects known-good H.264.
  • docs/specs/DESIGN-SYSTEM.md [WEB-DESIGN-MEDIA] records the MP4-first rule and the playback-test requirement.
  • Test expectations in profiler-media.spec.js and site-videos.spec.js now expect MP4 first.
  • Branch housekeeping. This branch also merges the stale branches feature/narrated-doc-films, feature/doc-stills and fix/382-netfx-review-findings (all already squash-merged as Narrated films for every docs page, and the bugs filming found #392, Docs stills from the film kit, and retire the old captures that showed home paths #393 and Fix the open v0.22.0 review findings, and prove the profiler on real F# programs #385), plus dependabot-upgrades. None of them changes any file against main:
    • main already had every bump except TypeScript 7, which typescript-eslint 8.72 does not support yet (peer range <6.1.0);
    • the lspkit pin stays on lspkit main (ccc59bf).

How Do The Automated Tests Prove It Works?

  • video-playback.spec.js: one test per film, named <route> video <n> decodes, pauses, seeks and resumes. It runs on Chromium, iPhone SE and iPhone 14 everywhere, and on Windows also on installed chrome and msedge. Each film must:
    • advance more than 1s and decode more than 5 new frames with error === null;
    • stay put while paused, so currentTime is unchanged after 250ms;
    • advance and decode again after seeking to duration / 2.
  • site-videos.spec.js › expectDescribed asserts the VideoObject contentUrl is the first listed source.
  • profiler-media.spec.js asserts the hero film's <source> order is MP4 then WebM.
  • The full website Playwright suite (make _test-website) passes locally, and Deslop reports 6.5% against the 6.65% threshold.

dependabot Bot and others added 30 commits October 14, 2026 17:34
Bumps the rust-host group with 3 updates: [tree-sitter](https://github.com/tree-sitter/tree-sitter), [serde_json](https://github.com/serde-rs/json) and [toml](https://github.com/toml-rs/toml).


Updates `tree-sitter` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/tree-sitter/tree-sitter/releases)
- [Commits](tree-sitter/tree-sitter@v0.27.0...v0.27.1)

Updates `serde_json` from 1.0.151 to 1.0.154
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.151...v1.0.154)

Updates `toml` from 1.1.6+spec-1.1.0 to 1.1.8+spec-1.1.0
- [Commits](toml-rs/toml@toml-v1.1.6...toml-v1.1.8)

---
updated-dependencies:
- dependency-name: tree-sitter
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-host
- dependency-name: serde_json
  dependency-version: 1.0.154
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-host
- dependency-name: toml
  dependency-version: 1.1.8+spec-1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-host
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the rust-zed group in /src/editors/zed with 1 update: [toml](https://github.com/toml-rs/toml).


Updates `toml` from 1.1.6+spec-1.1.0 to 1.1.8+spec-1.1.0
- [Commits](toml-rs/toml@toml-v1.1.6...toml-v1.1.8)

---
updated-dependencies:
- dependency-name: toml
  dependency-version: 1.1.8+spec-1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-zed
...

Signed-off-by: dependabot[bot] <support@github.com>
…t-upgrades/rust-zed-1725422218 into dependabot-upgrades
Bumps the github-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [taiki-e/install-action](https://github.com/taiki-e/install-action) | `2.87.23` | `2.87.27` |
| [actions/setup-node](https://github.com/actions/setup-node) | `7.0.0` | `7.1.0` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `8.0.1` | `8.0.2` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `7.0.1` | `7.0.2` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `4.38.2` | `4.38.3` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.38.2` | `4.38.3` |


Updates `taiki-e/install-action` from 2.87.23 to 2.87.27
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@861a07c...ab68953)

Updates `actions/setup-node` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@8207627...949feb2)

Updates `actions/download-artifact` from 8.0.1 to 8.0.2
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@3e5f45b...9000827)

Updates `actions/upload-artifact` from 7.0.1 to 7.0.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@043fb46...cf430e0)

Updates `github/codeql-action/init` from 4.38.2 to 4.38.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@2892aa5...24c5418)

Updates `github/codeql-action/analyze` from 4.38.2 to 4.38.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@2892aa5...24c5418)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.87.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/setup-node
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: actions/download-artifact
  dependency-version: 8.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/init
  dependency-version: 4.38.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.38.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the website group in /src/website with 1 update: [@playwright/test](https://github.com/microsoft/playwright).


Updates `@playwright/test` from 1.63.0 to 1.64.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.63.0...v1.64.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.64.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: website
...

Signed-off-by: dependabot[bot] <support@github.com>
…des/github-actions-c88aa5ffdc into dependabot-upgrades
…abot-upgrades/website-3c101cf53b into dependabot-upgrades
Bumps the vscode-extension group in /src/editors/vscode with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.6.4` | `26.6.5` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.71.0` | `8.71.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.71.0` | `8.71.1` |
| [playwright](https://github.com/microsoft/playwright) | `1.63.0` | `1.64.0` |
| [prettier](https://github.com/prettier/prettier) | `3.9.9` | `3.9.10` |
| [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.71.0` | `8.71.1` |


Updates `@types/node` from 26.6.4 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/eslint-plugin` from 8.71.0 to 8.71.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.1/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.71.0 to 8.71.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.1/packages/parser)

Updates `playwright` from 1.63.0 to 1.64.0
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.63.0...v1.64.0)

Updates `prettier` from 3.9.9 to 3.9.10
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.9.9...3.9.10)

Updates `typescript` from 6.0.3 to 7.0.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v6.0.3...v7.0.2)

Updates `typescript-eslint` from 8.71.0 to 8.71.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.6.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vscode-extension
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.71.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vscode-extension
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.71.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vscode-extension
- dependency-name: playwright
  dependency-version: 1.64.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vscode-extension
- dependency-name: prettier
  dependency-version: 3.9.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vscode-extension
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vscode-extension
- dependency-name: typescript-eslint
  dependency-version: 8.71.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vscode-extension
...

Signed-off-by: dependabot[bot] <support@github.com>
…/dependabot-upgrades/vscode-extension-9912a3cfe6 into dependabot-upgrades
Bumps Fantomas.Core from 8.0.7 to 8.0.8
Bumps FSharp.Compiler.Service from 43.12.401 to 43.12.402
Bumps FSharp.Core from 10.1.401 to 10.1.402
Bumps MessagePack from 3.1.11 to 3.1.12
Bumps Microsoft.CodeAnalysis.NetAnalyzers from 10.0.401 to 10.0.402
Bumps Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0
Bumps System.Security.Cryptography.Xml from 10.0.12 to 10.0.13
Bumps xunit.runner.visualstudio from 4.0.0 to 4.0.1

---
updated-dependencies:
- dependency-name: Fantomas.Core
  dependency-version: 8.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: FSharp.Compiler.Service
  dependency-version: 43.12.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: FSharp.Core
  dependency-version: 10.1.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: FSharp.Core
  dependency-version: 10.1.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: MessagePack
  dependency-version: 3.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: MessagePack
  dependency-version: 3.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: Microsoft.CodeAnalysis.NetAnalyzers
  dependency-version: 10.0.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-sidecars
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dotnet-sidecars
- dependency-name: System.Security.Cryptography.Xml
  dependency-version: 10.0.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: xunit.runner.visualstudio
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
- dependency-name: xunit.runner.visualstudio
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dotnet-sidecars
...

Signed-off-by: dependabot[bot] <support@github.com>
…bot-upgrades/dotnet-sidecars-61cedddb46 into dependabot-upgrades
… framework-switch order, Windows-only selections that run nothing

- A single-target C# project whose name ends in (tfm) is no longer read as a framework context (#382)
- A framework switch re-publishes open documents' diagnostics before announcing itself and asking for refreshes (#383)
- Off Windows, a MOCHA_FILES pattern naming only windowsOnly suites fails instead of passing a run of nothing (#384)
The whole PR pipeline skips Dependabot, and the terminal gate passed the
skipped run, so a security bump the sweep did not retire showed a green
required check and could merge into main untested. The gate now fails it;
bumps reach main only through the tested dependabot-upgrades consolidation PR.
…located, each diff replaces the last diff's leak badges (Nimblesite/lspkit#12)
…hreads counted once per tick, arrays never located, honest retention truncation and PROCESS_NOT_FOUND, fresh leak badges
The objects step keeps the requested type's own row when it is too small to
rank among the twenty largest, so a union case such as OrderStatus+Paid
agrees with its totals. Types whose PDB names a build server's checkout,
as FSharp.Core's does, have no location instead of a path that does not
exist here.
The CPU results panel and the memory dashboard checked the same SharpLsp
brand, foreign-product and nonce rules in two copies, and the webviews suite
kept its own copy of the kit's dashboard snapshot. One helper each brings
duplication back under the Deslop ratchet; every assertion is unchanged.
The corner suite releases the ledger before counting 300 live orders and no
longer claims the dashboard keeps a stopped session's snapshot, which
memory-flows and the F# memory suite rule out. The memory-step helpers and
error codes move into the soak kit, the wire suite splits into protocol,
CPU and memory suites, and the fixture locations and builds move from
profiler-kit into profiler-fixtures, so no suite or kit passes 500 lines.
FSharp.Core types no longer anchor at the build server's paths, sites with
no location stay unlocated in the UI, the objects summary keeps the
requested type's row, and the retention graph draws each root by its label.
Every profiler operation takes exactly one argument, its typed params
object ([PROF-WIRE-METHODS]). The host passed the first argument on and
ignored the rest, so `capabilities` answered `[]`, `[42]` and two objects
alike. Anything but one JSON object is now INVALID_PARAMS before the
service sees it; an absent argument list still means empty params.
… tools reusable

A new Profiling F# page (en, ja, zh) covers what the profiler does with F#'s
compiled code: closures and pipeline stages by name, records and union cases
painted on the line that builds them, module values named as written in the
retention graph, and the fix. The profiler, F# and memory-leak pages link to it,
and the F# pages play profiler-fsharp: FsStorefront's CPU and memory, narrated,
scored and captioned in every site language.

The film tools become a kit any film can use. A film is one file in films/: its
demo, its poster and its scenes, told through kit/acts/cpu.mjs and
kit/acts/memory.mjs. film.mjs (or make _film FILM=<film>) shoots and publishes
it. kit/set.mjs stages a demo from demos/ beside an isolated VS Code;
kit/workbench.mjs, camera.mjs and overlay.mjs are the moves, the recorder and
the captions; kit/sound/ speaks a reviewed script locally with Kokoro
(kokoro-js), synthesises an original score, ducks it under the voice and
normalises to -16 LUFS. The README says how to add a film.

{% video %} plays a narrated film unmuted with caption tracks; only autoplaying
loops stay muted.
Heap snapshots name every type during a CPU session, peak_bytes is the
session peak, a timed CPU session ends, the UI's Stop ends the server
session, and a hot function with no location stays unlocated. The F# CPU
suite reads the now-optional hot-function line without assuming it.
The wire CPU suite waits for a timed session to leave cpu.list and holds
its report to exactly the requested two seconds; the protocol suite
rejects two params objects to cpu.list. The soak suites check the live
status bar's own sample count and elapsed time, that a flat comparison
resets a growth streak, and the undo history's closed generic through
objectsByType, whose summary now keeps a type too small to rank.
The ground truth read the fixture's stage timers before the profiler had
attached, so parse's measured share carried one to two seconds the profiler
never sampled, while every share is of the profiled window
([PROF-AGGREGATION-LOGIC]). The timers are now read after live progress
starts; every assertion and tolerance is unchanged.
…it bare

Every profiler operation is `workspace/executeCommand` with exactly one
argument, its typed params object (lspkit LSP-PROFILER-SPEC.md, the LSP
surface table, [PROF-WIRE-METHODS]), and the host now refuses anything
else. Three test call sites sent `cpu.list` with no argument at all,
which the host used to tolerate. Every production caller (the
lsp-profiler-ui library's 13 calls) already sends one object, and no
contribution or other editor runs these commands bare. The calls now pass
`{}`. No assertion changes.
The profiler UI's progress operation log trimmed single entries past 500,
which SharpLsp's profiler run now exceeds, so the refresh-progress and
balanced-progress checks read a truncated log.
An F# project reads the C# projects it references from an in-memory Roslyn
compile of their design-time command line, but that compile skipped the
source generators the command line names. GitReader.Core polyfills .NET
Framework with PolySharp, so for net48 its init accessors had no
IsExternalInit, Roslyn emitted nothing, and the F# test project read a DLL
nobody built: FS0078 and FS0084 on every net48 file. The compile now runs
the /analyzer: assemblies' C# generators first, as the build does.
ensureRepoReady cloned and ran `dotnet restore` with execFileSync inside
the extension host, in the same 600 s setup hook that then loads the
solution and warms it up. A cold restore of GitReader on a Windows runner
once took 596 s (fix/377's identical cold start took 114 s): VS Code was
reported unresponsive for all of it, and the hook timed out although the
restore succeeded. The clone and restore now run asynchronously, in a
setup hook with a budget of its own. No assertion changes.
The generator pass passed mutable locals by reference to Roslyn's out
parameters inside a match arm, which the F# optimizer turns into invalid IL
in Release: every F# project referencing a C# project failed to load with
"Common Language Runtime detected an invalid program". The pass now adds
the driver's generated trees to the compilation, and a generator assembly
that does not load here is skipped and logged instead of throwing.
Every docs page with a feature to show now opens on a narrated walkthrough of
the real extension, captioned in English, Japanese and Chinese: getting
started, editor setup, configuration, F# language support, completions, hover,
navigation, diagnostics, refactoring, context menus, NuGet, the profiler (a C#
tour), memory leaks (now narrated, on the layered retention graph),
architecture and contributing. The language films run on demos/Shop.slnx, C#
and F# in one solution, and show F# first.

Bugs the cameras found, each fixed test-first:
- F#: hand-built project options put every source file on the FCS command line
  as well as in SourceFiles, so FCS compiled each file twice and every F#
  project showed FS3551 warnings.
- Sort Members kept each member's own blank lines and added its own, leaving
  two or three blank lines between members.
- NuGet: the version picker beside Install showed the newest listed version,
  often a prerelease, not the version Install sends.

The film kit gains language acts (completion, quick fixes, rename,
navigation, the Solution Explorer), a gliding pointer, retried takes, logs
kept from a failed shoot, and a neutral environment: staging, temp files and a
cloned .NET install under /tmp, with the login shell's environment off, so no
home path reaches a frame.
…me paths

Every feature page's still and every figure in the launch post (en/ja/zh) is now
shot by films/doc-stills.mjs on the Shop demo, in the same isolated editor as
the films. The 20 old PNG captures, which showed another product's name and a
home directory in the Profiler panel, are deleted: no page used them, but the
site still served them.

- Each still is a 2400px WebP with width, height and alt text that describes
  the frame in the page's language; the launch post's captions now match their
  frames.
- The kit: a film may publish stills alone, into its own screenshots folder;
  a still can keep a hover open; workbench dialogs (window.dialogStyle custom)
  let reopen answer the save prompt, and it fails if an edited editor survives.
- SCREENSHOT-FIX-PLAN.md is complete (hover, diagnostics and definition are
  shown working, the pages are live) and is deleted.
…back

# Conflicts:
#	docs/specs/DESIGN-SYSTEM.md
#	src/website/src/_data/videos.json
#	src/website/tests/profiler-media.spec.js
#	src/website/tools/profiler-film/README.md
#	src/website/tools/profiler-film/film.mjs
#	src/website/tools/profiler-film/films/architecture.mjs
#	src/website/tools/profiler-film/films/configuration.mjs
#	src/website/tools/profiler-film/kit/acts/language.mjs
#	src/website/tools/profiler-film/kit/camera.mjs
#	src/website/tools/profiler-film/kit/editor.mjs
…layback

# Conflicts:
#	docs/specs/DESIGN-SYSTEM.md
#	src/website/tests/site-videos.spec.js
#	src/website/tools/profiler-film/README.md
#	src/website/tools/profiler-film/film.mjs
#	src/website/tools/profiler-film/films/fsharp.mjs
#	src/website/tools/profiler-film/films/leak.mjs
#	src/website/tools/profiler-film/kit/camera.mjs
#	src/website/tools/profiler-film/kit/encode.mjs
#	src/website/tools/profiler-film/kit/scenes.mjs
#	src/website/tools/profiler-film/kit/set.mjs
#	src/website/tools/profiler-film/kit/sound/voice.mjs
#	src/website/tools/profiler-film/kit/workbench.mjs
…ndows-video-playback

# Conflicts:
#	.github/workflows/ci-audit.yml
#	.github/workflows/ci-build.yml
#	.github/workflows/ci-test-editors.yml
#	.github/workflows/ci-test-rust.yml
#	.github/workflows/ci-test-tooling.yml
#	.github/workflows/ci.yml
#	.github/workflows/deploy-pages.yml
#	.github/workflows/release.yml
#	Cargo.lock
#	src/editors/vscode/package-lock.json
#	src/editors/vscode/package.json
#	src/sidecars/SharpLsp.Sidecar.FSharp/SharpLsp.Sidecar.FSharp.fsproj
#	src/website/package-lock.json
#	src/website/package.json
@MelbourneDeveloper
MelbourneDeveloper enabled auto-merge (squash) October 19, 2026 20:07
@MelbourneDeveloper
MelbourneDeveloper merged commit 75f7dee into main Oct 19, 2026
20 checks passed
@MelbourneDeveloper
MelbourneDeveloper deleted the fix/windows-video-playback branch October 19, 2026 20:13
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