mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-10-30 17:27:09 +00:00
* fix(engine): motion blur works over video by holding each video frame across samples Each output frame's injected video frame is now held for every sub-frame sample and probe of that frame, so footage stays as shot and only the layers over it blur. The refusal for sessions with a before-capture hook is removed. Fixes #5144 * fix(engine): trim held-video comments, pin the new test-classification hash * fix(engine): a blurred frame at a sub-composition cut keeps its video Each sample now decides which videos show at its own time, like every other layer, and only a video on screen at the output frame's time keeps that frame's picture. Before, the visible set was taken at the frame's time while sub-composition hosts were hidden at the sample's time, so the samples just before a cut showed no video and the cut frame dipped toward black. The before-capture hook takes the held time as an optional third argument, and the early injection is gone: the GPU re-render now always runs at the page's own time. * style(engine): one doc comment for the before-capture hook * fix(engine): a video animating its own style stays in step when blurred The injector copies a video's own style only when its frame changes, so the first injection of each blurred frame now runs at the frame's own time before the samples. A video sliding by its own transform no longer sits a quarter frame behind with blur on. * test(producer): a two-line header for the motion blur over video test * test(producer): reach the cut fixture by path, not a URL fallow reads as an import
76 lines
4.0 KiB
JSON
76 lines
4.0 KiB
JSON
{
|
|
"guards": {
|
|
"scripts/check-media-use-copy-parity.test.mjs": [
|
|
"skills/media-use/scripts/lib/**",
|
|
"packages/cli/src/media-use/lib/**",
|
|
"scripts/generate-skill-module-copies.mjs",
|
|
"skills/hyperframes/scripts/lib/frame-packets-core.mjs",
|
|
"skills/media-use/audio/scripts/lib/bgm-volume.mjs"
|
|
],
|
|
"scripts/check-test-reachability.test.mjs": [
|
|
".github/workflows/ci.yml",
|
|
"**/package.json",
|
|
"**/*.test.{mjs,ts,tsx}"
|
|
],
|
|
"scripts/creator-editing-capabilities.test.mjs": [
|
|
"skills/**",
|
|
"packages/core/**",
|
|
"packages/engine/**"
|
|
],
|
|
"scripts/registry-primitive-payloads.test.ts": ["registry/**"],
|
|
"scripts/generate-catalog-previews.test.ts": [
|
|
"registry/**",
|
|
"scripts/**",
|
|
"packages/producer/**"
|
|
],
|
|
"scripts/generate-catalog-payloads.test.ts": ["registry/**", "scripts/**"],
|
|
"skills/product-launch-video/scripts/build-frame-subsets.test.mjs": [
|
|
"scripts/generate-captured-font-copies.mjs",
|
|
"skills/product-launch-video/scripts/build-frame.mjs",
|
|
"skills/product-launch-video/scripts/captions.mjs",
|
|
"skills/product-launch-video/scripts/lib/captured-fonts.mjs",
|
|
"skills/faceless-explainer/scripts/build-frame.mjs",
|
|
"skills/faceless-explainer/scripts/captions.mjs",
|
|
"skills/faceless-explainer/scripts/lib/captured-fonts.mjs",
|
|
"skills/pr-to-video/scripts/build-frame.mjs",
|
|
"skills/pr-to-video/scripts/captions.mjs",
|
|
"skills/pr-to-video/scripts/lib/captured-fonts.mjs"
|
|
],
|
|
"scripts/check-skill-import-boundaries.test.mjs": ["skills/**"]
|
|
},
|
|
"runners": [
|
|
{
|
|
"cwd": ".",
|
|
"command": "set -euo pipefail\nmapfile -t SKILLS_TESTS < <(find skills packages/cli/src/media-use -type f -name \"*.test.mjs\" | sort)\nif [ \"${#SKILLS_TESTS[@]}\" -eq 0 ]; then\necho \"::error::No skills/**/*.test.mjs files found. Did the layout change?\"\nexit 1\nfi\nSKILLS_TESTS+=(scripts/check-media-use-copy-parity.test.mjs scripts/creator-editing-capabilities.test.mjs)\nprintf 'Running %d skills test file(s):\\n' \"${#SKILLS_TESTS[@]}\"\nprintf ' * %s\\n' \"${SKILLS_TESTS[@]}\"\nnode --import ./packages/cli/scripts/test-home.mjs --test \"${SKILLS_TESTS[@]}\"",
|
|
"tests": [
|
|
"skills/**/*.test.mjs",
|
|
"packages/cli/src/media-use/**/*.test.mjs",
|
|
"scripts/check-media-use-copy-parity.test.mjs",
|
|
"scripts/creator-editing-capabilities.test.mjs"
|
|
],
|
|
"sources": {},
|
|
"reason": "Shell find plus an explicit parity file; exact command match invalidates this mapping on edits."
|
|
},
|
|
{
|
|
"cwd": ".",
|
|
"command": "bun run producer:test:${{ matrix.lane }}",
|
|
"tests": [
|
|
"packages/producer/src/**/*.test.ts",
|
|
"packages/producer/scripts/test-classification.test.mjs",
|
|
"packages/producer/tests/**/*.test.ts"
|
|
],
|
|
"sources": {
|
|
"packages/producer/scripts/run-test-lane.mjs": "638885e14480d03290803389325a655f3749442167d784e07bb3af3404598af7",
|
|
"packages/producer/scripts/test-classification.mjs": "d7ca46d663bfa7012147d1eff63a9e599f44393d7d65fd910d5b96cceb2b2f44",
|
|
".github/workflows/ci.yml#job#producer-source-tests": "45da72aa6cf08cdfd5bcf5311e89f12af4842f9eebc6735df19da8c02f4d4864",
|
|
"packages/producer/package.json#script#test:unit": "ae6beda8319d166774be958ea5593cd27dbf7f6c9bce1d787a3fe28dfc3477b1",
|
|
"packages/producer/package.json#script#test:integration": "008589f37d026877595a13501cbb66abd5cbe50e21fdcac6904f45466c3f475d",
|
|
"packages/producer/package.json#script#test:classification": "4ad50d88c81de374dd6ef8a53d702a4b1901483837ecd3d833b1cb0c9a29a058",
|
|
"package.json#script#producer:test:unit": "ded6d4183d455d1f414e41d15794c1aef5323e53b5ea5e2ff349e3bb049c18db",
|
|
"package.json#script#producer:test:integration": "8bb545947f4f8fef3bd5c6c9b1bcb394c7c942d7a3ab90cf4540c662572a278e"
|
|
},
|
|
"reason": "Both unit and integration matrix lanes discover tests under src and tests; workflow and runner sources are pinned to invalidate changed selection."
|
|
}
|
|
]
|
|
}
|