Skip to content

Docs for Core Player Controllers/Systems - #920

Open
KetanReddy wants to merge 1 commit into
mainfrom
docs/player-core
Open

Docs for Core Player Controllers/Systems#920
KetanReddy wants to merge 1 commit into
mainfrom
docs/player-core

Conversation

@KetanReddy

Copy link
Copy Markdown
Member

Change Type (required)

Indicate the type of change your pull request is:

  • patch
  • minor
  • major
  • N/A

Does your PR have any documentation updates?

  • Updated docs
  • No Update needed
  • Unable to update docs

Release Notes

Added docs for core player systems

@KetanReddy KetanReddy added the patch Increment the patch version when merged label Jul 29, 2026
@KetanReddy

Copy link
Copy Markdown
Member Author

/docs

@intuit-svc

intuit-svc commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results

Comparison against baseline from main. ⚠️ = regression (>10% slower), ✅ = improvement (>5% faster)

core/player ⚠️

Benchmark Current Baseline Change
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.bar 807.95K ops/s 722.92K ops/s +11.8% ✅
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.1.name 516.59K ops/s 541.65K ops/s -4.6%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.01.name 493.54K ops/s 490.79K ops/s +0.6%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets['01'].name 483.75K ops/s 477.60K ops/s +1.3%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[01].name 524.41K ops/s 519.91K ops/s +0.9%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[name = "frodo"].type 290.58K ops/s 284.75K ops/s +2.0%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type 236.54K ops/s 220.52K ops/s +7.3% ✅
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = false].type 289.76K ops/s 290.37K ops/s -0.2%
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = true].type 274.33K ops/s 309.01K ops/s -11.2% ⚠️
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.bar 562.89K ops/s 624.16K ops/s -9.8%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.1.name 289.96K ops/s 388.57K ops/s -25.4% ⚠️
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.01.name 347.85K ops/s 371.06K ops/s -6.3%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets['01'].name 300.28K ops/s 290.01K ops/s +3.5%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[01].name 350.06K ops/s 365.25K ops/s -4.2%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[name = "frodo"].type 232.33K ops/s 232.45K ops/s -0.0%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type 170.28K ops/s 182.88K ops/s -6.9%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = false].type 216.79K ops/s 223.78K ops/s -3.1%
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = true].type 230.85K ops/s 237.78K ops/s -2.9%
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (sync) 350.12K ops/s 479.93K ops/s -27.0% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (async) 269.40K ops/s 383.55K ops/s -29.8% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (sync) 366.22K ops/s 491.89K ops/s -25.5% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (async) 401.15K ops/s 448.21K ops/s -10.5% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (sync) 182.74K ops/s 225.48K ops/s -19.0% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (async) 124.12K ops/s 201.47K ops/s -38.4% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (sync) 120.93K ops/s 170.13K ops/s -28.9% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (async) 99.51K ops/s 161.73K ops/s -38.5% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (sync) N/A N/A N/A
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (async) 273.44K ops/s 301.22K ops/s -9.2%
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (sync) 284.74K ops/s 345.46K ops/s -17.6% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (async) 235.19K ops/s 306.73K ops/s -23.3% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (sync) 584.30K ops/s 840.98K ops/s -30.5% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (async) 521.41K ops/s 645.43K ops/s -19.2% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (sync) 149.89K ops/s 169.06K ops/s -11.3% ⚠️
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (async) 139.51K ops/s 143.18K ops/s -2.6%
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > initial resolve 644.76 ops/s 653.82 ops/s -1.4%
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > Resolving from cache 17.42K ops/s 21.18K ops/s -17.8% ⚠️
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes 2.46K ops/s 3.04K ops/s -19.0% ⚠️
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes slow 360.38 ops/s 655.63 ops/s -45.0% ⚠️

plugins/async-node/core ⚠️

Benchmark Current Baseline Change
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 1 times 14.28K ops/s 14.39K ops/s -0.8%
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 5 times 13.56K ops/s 14.03K ops/s -3.4%
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 10 times 10.29K ops/s 10.25K ops/s +0.4%
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 50 times 3.34K ops/s 3.47K ops/s -3.7%
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 100 times 1.92K ops/s 1.85K ops/s +4.2%
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 1 times 5.35K ops/s 7.71K ops/s -30.6% ⚠️
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 5 times 5.93K ops/s 8.80K ops/s -32.6% ⚠️
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 10 times 4.90K ops/s 7.61K ops/s -35.6% ⚠️
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 50 times 2.13K ops/s 2.85K ops/s -25.4% ⚠️
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 100 times 1.61K ops/s 1.66K ops/s -2.8%

react/player

Benchmark Current Baseline Change
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 1 ReactAssets 638.46 ops/s 628.93 ops/s +1.5%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 1 ReactAssets 1.17K ops/s 1.13K ops/s +3.6%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 5 ReactAssets 650.90 ops/s 629.37 ops/s +3.4%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 5 ReactAssets 1.17K ops/s 1.13K ops/s +3.5%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 10 ReactAssets 650.42 ops/s 653.51 ops/s -0.5%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 10 ReactAssets 933.80 ops/s 936.46 ops/s -0.3%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 50 ReactAssets 529.24 ops/s 531.93 ops/s -0.5%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 50 ReactAssets 280.64 ops/s 268.09 ops/s +4.7%
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 100 ReactAssets 427.99 ops/s 403.76 ops/s +6.0% ✅
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 100 ReactAssets 132.86 ops/s 126.76 ops/s +4.8%

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (09bdf3d) to head (18641fa).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff     @@
##   main   #920   +/-   ##
===========================
===========================

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@KetanReddy
KetanReddy marked this pull request as ready for review July 30, 2026 20:33
@KetanReddy
KetanReddy requested review from a team as code owners July 30, 2026 20:33
@KetanReddy

Copy link
Copy Markdown
Member Author

/docs

intuit-svc added a commit to player-ui/player-ui.github.io that referenced this pull request Jul 30, 2026
@KetanReddy
KetanReddy enabled auto-merge July 30, 2026 21:48
@KetanReddy
KetanReddy disabled the stack merge August 3, 2026 16:20

@sugarmanz sugarmanz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good — couple nits:

  • Would love to see a bit more structured organization of this
    • This stuff probably warrants either a subsection or something under the main left nav Player -> Architecture. I just don't want to put all this in the high touchpoint consumer facing docs and drown them with complex info. Maybe it's fine where it is
    • IMO the side-panel names should convey intent, not the what. For example, instead of ViewController & ViewInstance, just View? The details are in the searchable content already, putting them in the sidenav means you need to know what those are to understand what you're going to be reading about.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Increment the patch version when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants