Files
hyperframes/.prettierignore
T
Miguel Ángel 0c6f5fd80e test(studio): an edit accuracy benchmark for manual editing (#4760)
* test(studio): start an edit accuracy benchmark for manual editing (work in progress)

* test(studio): an edit accuracy benchmark for manual editing

Drives real pointer and keyboard gestures in the built CLI Studio on generated one-element projects and scores tracking, drop jump, reload drift, undo fidelity and smoothness in composition px.

* test(studio): move render drift out of the first benchmark PR

Render drift against a producer frame ships in the stacked follow-up so this PR stays near the size budget.

* test(studio): keep the edit accuracy bench clean under fallow

Builds the grid as a product of its axes, drops unused exports and marks the harness functions that fallow scores as complex.

* test(studio): report edit accuracy with the Studio and bench commits it measured

Moves scoring and the report files into report.mjs, stamps both commits at start, counts undo byte failures apart from the worst box, and survives Studio swapping the preview iframe mid-read.

* test(studio): bank the edit accuracy baseline measured on main

660 cases on main ae914334f: 0 pass all six checks, 304 pass everything but smoothness. Five cases that hit a harness error in the full run were rerun and spliced in.

* test(studio): state the edit accuracy build prerequisite in the runner header

* test(studio): keep the edit accuracy baseline one line per case under the formatter

* test(studio): store edit accuracy baseline values rounded up

Rounding to the nearest 0.01 stored seven 0.502 px tracking results as 0.5, which reads as a pass at the 0.5 px limit.

* test(studio): score edit smoothness on dropped frames and main-thread work per frame

* test(studio): measure edit accuracy on a still preview and score press jump

Snapshots wait for the preview frames and the box to hold still for 1 s, so Studio's asynchronous reload after a save is measured, not raced. A preview that never settles fails the metrics it feeds instead of erroring.

Adds press jump (box at press against the box before it, 0.5 px). Smoothness counts only dropped frames beyond a blank-page control driven the same way in the same Chrome; unknown trace data fails smoothness alone.

The runner takes the suite lock per chunk of 8 cases (--lock), reads the port Studio announces, keeps undo history and tmp projects inside the case dir and removes them on a signal, and stamps the CLI tree's commit and bundle hash.

* test(studio): stamp the edit accuracy build with the Studio bundle as well as the CLI

The CLI bundle hashed the same for two different Studio builds; Studio's index.html names its hashed assets, so the stamp now covers it.

* test(studio): regenerate the edit accuracy baseline on main after the settle fix

Full grid on main 14e87005d with the settle fix, press jump and the smoothness control: 70/660 pass, 314/660 pass everything but smoothness, 0 harness errors, 0 unsettled. Scored without render, which #4764 adds.

* test(studio): wait for each edit accuracy undo write before sending redo

Undo and redo each wait up to 15 s for their own write, like the settle; redo is sent only once undo landed, and a write that never lands fails undo with undoTimeout instead of scoring an untested redo. The reload waits for the files to hold still. The headline is now the accuracy count, with smoothness on its own line against the control. The settle compares each read with the window's first read, and a CLI outside a git tree no longer stops the run.
2026-09-30 17:07:51 +00:00

52 lines
2.5 KiB
Plaintext

docs/
DOCS_GUIDELINES.md
packages/producer/tests/
*.generated.ts
# Cloud Workflows GCL — uses ${...} expressions that are not standard YAML.
packages/gcp-cloud-run/terraform/workflow.yaml
# toMatchFileSnapshot golden files — vitest writes these; oxfmt must not reformat them.
packages/**/__goldens__/
# Edit accuracy baseline, written by the bench one line per case so a diff reads case by case.
packages/studio/tests/e2e/edit-accuracy/baseline.json
# vendored third-party bundles inside skills — never reformat
skills/**/assets/vendor/
skills/**/*.min.js
# esbuild-minified media-use svg sanitizer, generated by
# scripts/generate-media-use-svg-sanitize.mjs — never hand-edit or reformat.
packages/cli/src/media-use/lib/svg-sanitize.mjs
# vendored/bundled third-party JS inside registry blocks — never reformat.
# Without this the format hook silently re-pretty-prints a minified bundle,
# roughly doubling its size. Listed by exact file: these blocks also ship
# hand-authored source (glass-main.mjs, surface.js, orbit-scene.js, etc) that must stay formattable.
registry/blocks/**/lib/*.iife.js
registry/blocks/frost-sequence-camera-orbit/assets/frost.js
registry/blocks/frost-sequence-camera-orbit/assets/motion.js
registry/blocks/frost-sequence-camera-orbit/assets/gsap-3.14.2.min.js
registry/blocks/glass-shard-title/assets/glass-main.js
registry/blocks/code-slice-hero/assets/gsap-3.14.2.min.js
registry/blocks/cuboid-carousel/assets/three.core.min.js
registry/blocks/cuboid-carousel/assets/three.module.min.js
registry/blocks/cuboid-carousel/assets/gsap-3.14.2.min.js
registry/blocks/cuboid-carousel/assets/addons/**/*.js
registry/blocks/orbit-card/assets/three.core.min.js
registry/blocks/orbit-card/assets/three.module.min.js
registry/blocks/orbit-card/assets/gsap-3.14.2.min.js
# generated Lottie data: pretty-printing multiplies its size
registry/blocks/lottie-character-walk/assets/mascot.json
# reference snippets with intentional pseudo-markup (literal "..." attributes)
skills/talking-head-recut/references/frames/polaroid.html
# repo-native skill examples with intentional pseudo-markup placeholders
# (e.g. <RANGE>, <TOTAL> tokens the agent replaces at build time — not real HTML)
.claude/skills/**/examples/**/*.html
.agents/skills/**/examples/**/*.html
# Generated demo compositions — large video-pipeline output (GSAP/Three/WebGL
# embedded), not hand-authored source; reformatting them is churn + risk. Listed
# explicitly (not registry/examples/**/*.html) so hand-authored example HTML still
# gets formatted.
registry/examples/warm-grain/compositions/captions.html