Repository navigation
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
🌾 Fallow: ✅ PassedFallow audits the diff for duplication, complexity and dead code. It gates on new findings only, so when the audit completes, a red is something this PR introduced or moved — never inherited backlog. A red can also mean the audit itself did not finish; the details below say which happened. No new findings in the changed files. Reproduce locally# the base the gate compared against
npx fallow audit --root . --quiet --format json \
--changed-since e52eeb8ce1a5290fb9721c9bdc38605f407a9b67
Full docs: ADR-DEVEX-LINT-0015 🎭 Playwright: ✅ 2235 passed, 0 failed · 1 flaky📊 Browser Reports
📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-10-06T16:14:04.144Z",
"gitSha": "18279a2f000a8b04733bb104be7ae0174236c39f",
"branch": "jaeone94/native-lora-stack-e2e",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2020.196999999996,
"styleRecalcs": 10,
"styleRecalcDurationMs": 3.6070000000000007,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 435.87199999999996,
"heapDeltaBytes": 7430928,
"heapUsedBytes": 77017264,
"domNodes": 0,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 9.136999999999992,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479342,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2020.3970000000027,
"styleRecalcs": 10,
"styleRecalcDurationMs": 3.882999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 425.731,
"heapDeltaBytes": 7449992,
"heapUsedBytes": 75837816,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 8.523999999999997,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665289256198346,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1724.896000000001,
"styleRecalcs": 73,
"styleRecalcDurationMs": 15.066999999999998,
"layouts": 12,
"layoutDurationMs": 4.268,
"taskDurationMs": 786.265,
"heapDeltaBytes": 3678112,
"heapUsedBytes": 72365324,
"domNodes": 0,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 155.50599999999997,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66601941747573,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1720.3100000000404,
"styleRecalcs": 72,
"styleRecalcDurationMs": 13.929,
"layouts": 12,
"layoutDurationMs": 4.11,
"taskDurationMs": 792.183,
"heapDeltaBytes": 3211360,
"heapUsedBytes": 72815048,
"domNodes": 0,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 152.758,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66601941747573,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1703.2759999999598,
"styleRecalcs": 20,
"styleRecalcDurationMs": 5.975000000000001,
"layouts": 3,
"layoutDurationMs": 0.853,
"taskDurationMs": 332.91999999999996,
"heapDeltaBytes": 5025768,
"heapUsedBytes": 65386160,
"domNodes": 45,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 9.659,
"eventListeners": 39,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66568627450981,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1692.8020000000288,
"styleRecalcs": 18,
"styleRecalcDurationMs": 5.302000000000001,
"layouts": 3,
"layoutDurationMs": 0.8989999999999998,
"taskDurationMs": 324.49899999999997,
"heapDeltaBytes": 9737820,
"heapUsedBytes": 78127440,
"domNodes": 45,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 9.603,
"eventListeners": 39,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66568627450981,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 627.6039999999625,
"styleRecalcs": 15,
"styleRecalcDurationMs": 3.5200000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 447.1069999999999,
"heapDeltaBytes": -5735556,
"heapUsedBytes": 62683076,
"domNodes": 0,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 163.75400000000002,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665789473684214,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 625.4020000000082,
"styleRecalcs": 14,
"styleRecalcDurationMs": 3.0900000000000007,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 439.452,
"heapDeltaBytes": -4949844,
"heapUsedBytes": 63616288,
"domNodes": 0,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 159.42499999999998,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.664864864864875,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-order-dense-n200-w200-i120",
"durationMs": 1142.5219999999854,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 805.686,
"heapDeltaBytes": 17271236,
"heapUsedBytes": 87706328,
"domNodes": 0,
"jsHeapTotalBytes": 2785280,
"scriptDurationMs": 67.38,
"eventListeners": 0,
"totalBlockingTimeMs": 522,
"frameDurationMs": 33.82058823529413,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-order-dense-n200-w200-i120",
"durationMs": 1147.8419999999687,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 809.2649999999999,
"heapDeltaBytes": 12954644,
"heapUsedBytes": 95657472,
"domNodes": 0,
"jsHeapTotalBytes": 3047424,
"scriptDurationMs": 69.66499999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 521,
"frameDurationMs": 33.82058823529411,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-order-sparse-n1000-w20-i120",
"durationMs": 843.4489999999641,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 464.3330000000003,
"heapDeltaBytes": 19019080,
"heapUsedBytes": 100981304,
"domNodes": 0,
"jsHeapTotalBytes": 266240,
"scriptDurationMs": 158.95399999999998,
"eventListeners": 0,
"totalBlockingTimeMs": 218,
"frameDurationMs": 24.997058823529454,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "dom-widget-order-sparse-n1000-w20-i120",
"durationMs": 847.0029999999724,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 476.658,
"heapDeltaBytes": -6900852,
"heapUsedBytes": 80276604,
"domNodes": 0,
"jsHeapTotalBytes": 266240,
"scriptDurationMs": 166.28899999999996,
"eventListeners": 0,
"totalBlockingTimeMs": 216,
"frameDurationMs": 25.0029411764706,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "extension-clean-combined-draw",
"durationMs": 9696.504000000004,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 8734.484,
"heapDeltaBytes": 24722176,
"heapUsedBytes": 94701152,
"domNodes": -141,
"jsHeapTotalBytes": -5378048,
"scriptDurationMs": 7484.4400000000005,
"eventListeners": -65,
"totalBlockingTimeMs": 1021,
"frameDurationMs": 33.3319587628866,
"p95FrameDurationMs": 66.69999999999891
},
{
"name": "extension-clean-combined-draw",
"durationMs": 9889.308999999912,
"styleRecalcs": 2,
"styleRecalcDurationMs": 0.451,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 9099.441,
"heapDeltaBytes": 2677268,
"heapUsedBytes": 88081508,
"domNodes": -141,
"jsHeapTotalBytes": -4067328,
"scriptDurationMs": 7524.985,
"eventListeners": -69,
"totalBlockingTimeMs": 928,
"frameDurationMs": 31.527388535031847,
"p95FrameDurationMs": 50.100000000000364
},
{
"name": "extension-rgthree-prototype-draw",
"durationMs": 9516.132999999969,
"styleRecalcs": 2,
"styleRecalcDurationMs": 0.48300000000000076,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 8705.031,
"heapDeltaBytes": -12125128,
"heapUsedBytes": 73139644,
"domNodes": -141,
"jsHeapTotalBytes": -10096640,
"scriptDurationMs": 7155.406,
"eventListeners": -69,
"totalBlockingTimeMs": 670,
"frameDurationMs": 32.041414141414144,
"p95FrameDurationMs": 50.100000000000364
},
{
"name": "extension-rgthree-prototype-draw",
"durationMs": 10427.870999999981,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 9594.069999999998,
"heapDeltaBytes": 4682808,
"heapUsedBytes": 85969100,
"domNodes": 0,
"jsHeapTotalBytes": -7602176,
"scriptDurationMs": 7974.509999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 1131,
"frameDurationMs": 31.18622754491018,
"p95FrameDurationMs": 50.100000000000364
},
{
"name": "large-graph-idle",
"durationMs": 2012.9499999999894,
"styleRecalcs": 10,
"styleRecalcDurationMs": 3.986999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 502.0830000000001,
"heapDeltaBytes": -2813696,
"heapUsedBytes": 87061872,
"domNodes": 0,
"jsHeapTotalBytes": -225280,
"scriptDurationMs": 32.361999999999995,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665289256198346,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2023.458000000005,
"styleRecalcs": 10,
"styleRecalcDurationMs": 3.497,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 510.69300000000004,
"heapDeltaBytes": -4923944,
"heapUsedBytes": 75167676,
"domNodes": 0,
"jsHeapTotalBytes": 36864,
"scriptDurationMs": 33.841,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479342,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2293.1280000000243,
"styleRecalcs": 70,
"styleRecalcDurationMs": 7.055000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1590.2950000000003,
"heapDeltaBytes": -9742648,
"heapUsedBytes": 80198448,
"domNodes": 0,
"jsHeapTotalBytes": 1310720,
"scriptDurationMs": 831.446,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66521739130435,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2228.4200000000283,
"styleRecalcs": 70,
"styleRecalcDurationMs": 7.069000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1564.12,
"heapDeltaBytes": -9700668,
"heapUsedBytes": 80317284,
"domNodes": 0,
"jsHeapTotalBytes": 786432,
"scriptDurationMs": 827.659,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665413533834588,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3496.3149999999814,
"styleRecalcs": 71,
"styleRecalcDurationMs": 8.122999999999998,
"layouts": 60,
"layoutDurationMs": 15.520999999999999,
"taskDurationMs": 1643.5420000000001,
"heapDeltaBytes": 5323000,
"heapUsedBytes": 74323340,
"domNodes": 24,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 778.9639999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666028708133975,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3539.965000000052,
"styleRecalcs": 69,
"styleRecalcDurationMs": 6.945000000000001,
"layouts": 60,
"layoutDurationMs": 15.414000000000001,
"taskDurationMs": 1633.0099999999998,
"heapDeltaBytes": 4166264,
"heapUsedBytes": 69276544,
"domNodes": 24,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 765.461,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66603773584906,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "legacy-node-drag",
"durationMs": 3012.7499999999827,
"styleRecalcs": 46,
"styleRecalcDurationMs": 5.476999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1892.4270000000001,
"heapDeltaBytes": 17983436,
"heapUsedBytes": 87564640,
"domNodes": 0,
"jsHeapTotalBytes": 1466368,
"scriptDurationMs": 993.4680000000001,
"eventListeners": 180,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.851955307262575,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "legacy-node-drag",
"durationMs": 2910.441999999989,
"styleRecalcs": 47,
"styleRecalcDurationMs": 5.6960000000000015,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1850.4550000000002,
"heapDeltaBytes": 17259568,
"heapUsedBytes": 87426472,
"domNodes": 0,
"jsHeapTotalBytes": 1204224,
"scriptDurationMs": 968.363,
"eventListeners": 180,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.86046511627907,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "minimap-idle",
"durationMs": 2009.0829999999755,
"styleRecalcs": 10,
"styleRecalcDurationMs": 4.043,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 519.281,
"heapDeltaBytes": 19996684,
"heapUsedBytes": 88799448,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 32.72499999999999,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2013.1559999999808,
"styleRecalcs": 8,
"styleRecalcDurationMs": 2.8970000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 496.53399999999993,
"heapDeltaBytes": -5020592,
"heapUsedBytes": 75704120,
"domNodes": 0,
"jsHeapTotalBytes": -225280,
"scriptDurationMs": 30.401999999999997,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 578.8739999999848,
"styleRecalcs": 46,
"styleRecalcDurationMs": 4.765000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 397.079,
"heapDeltaBytes": -9957704,
"heapUsedBytes": 60821224,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 148.894,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66571428571429,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 565.2810000000272,
"styleRecalcs": 49,
"styleRecalcDurationMs": 5.769,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 387.81000000000006,
"heapDeltaBytes": -9129640,
"heapUsedBytes": 61560124,
"domNodes": 0,
"jsHeapTotalBytes": 786432,
"scriptDurationMs": 138.685,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.667647058823523,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2006.7379999999844,
"styleRecalcs": 11,
"styleRecalcDurationMs": 3.7790000000000012,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 434.52399999999994,
"heapDeltaBytes": 3856600,
"heapUsedBytes": 68372148,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 7.854,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479342,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2023.22300000003,
"styleRecalcs": 10,
"styleRecalcDurationMs": 4.288,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 434.7099999999999,
"heapDeltaBytes": 7745064,
"heapUsedBytes": 78521012,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 8.959000000000001,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666115702479335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1715.849999999989,
"styleRecalcs": 78,
"styleRecalcDurationMs": 18.075,
"layouts": 16,
"layoutDurationMs": 6.607,
"taskDurationMs": 776.125,
"heapDeltaBytes": -34666704,
"heapUsedBytes": 75679452,
"domNodes": -248,
"jsHeapTotalBytes": -2621440,
"scriptDurationMs": 106.283,
"eventListeners": -190,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.6656862745098,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1699.897999999962,
"styleRecalcs": 76,
"styleRecalcDurationMs": 14.611,
"layouts": 16,
"layoutDurationMs": 6.047000000000001,
"taskDurationMs": 724.405,
"heapDeltaBytes": 21200624,
"heapUsedBytes": 76306488,
"domNodes": 0,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 102.99600000000001,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.6656862745098,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 1418.43300000005,
"styleRecalcs": 17,
"styleRecalcDurationMs": 27.788000000000007,
"layouts": 5,
"layoutDurationMs": 14.591,
"taskDurationMs": 944.404,
"heapDeltaBytes": 32206940,
"heapUsedBytes": 107623760,
"domNodes": 14570,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 30.887999999999998,
"eventListeners": 2458,
"totalBlockingTimeMs": 128,
"frameDurationMs": 19.368918918918908,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "viewport-pan-sweep",
"durationMs": 8339.60300000001,
"styleRecalcs": 250,
"styleRecalcDurationMs": 19.055000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 5428.626,
"heapDeltaBytes": -65042616,
"heapUsedBytes": 65090836,
"domNodes": -308,
"jsHeapTotalBytes": -2719744,
"scriptDurationMs": 2597.8219999999997,
"eventListeners": -148,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665868263473055,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8405.748000000018,
"styleRecalcs": 251,
"styleRecalcDurationMs": 19.768,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 5595.409,
"heapDeltaBytes": -17809236,
"heapUsedBytes": 72224856,
"domNodes": 0,
"jsHeapTotalBytes": 561152,
"scriptDurationMs": 2756.0480000000002,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.69920477137177,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 18376.27500000002,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17487.963,
"heapDeltaBytes": -17669068,
"heapUsedBytes": 182823724,
"domNodes": -3046,
"jsHeapTotalBytes": 8146944,
"scriptDurationMs": 277.995,
"eventListeners": -14915,
"totalBlockingTimeMs": 0,
"frameDurationMs": 31.287904599659285,
"p95FrameDurationMs": 66.60000000000036
},
{
"name": "vue-large-graph-idle",
"durationMs": 18393.87199999999,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17363.63,
"heapDeltaBytes": -34132996,
"heapUsedBytes": 181104968,
"domNodes": -3046,
"jsHeapTotalBytes": 5816320,
"scriptDurationMs": 272.856,
"eventListeners": -14915,
"totalBlockingTimeMs": 0,
"frameDurationMs": 31.209847198641768,
"p95FrameDurationMs": 66.59999999999854
},
{
"name": "vue-large-graph-pan",
"durationMs": 23316.68099999996,
"styleRecalcs": 182,
"styleRecalcDurationMs": 15.517000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 22935.101000000002,
"heapDeltaBytes": -23413796,
"heapUsedBytes": 187933748,
"domNodes": -3046,
"jsHeapTotalBytes": 6574080,
"scriptDurationMs": 880.2710000000001,
"eventListeners": -14915,
"totalBlockingTimeMs": 23,
"frameDurationMs": 42.62468007312614,
"p95FrameDurationMs": 83.40000000000146
},
{
"name": "vue-large-graph-pan",
"durationMs": 22656.61799999998,
"styleRecalcs": 182,
"styleRecalcDurationMs": 15.114000000000017,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 22200.025999999998,
"heapDeltaBytes": -22853376,
"heapUsedBytes": 187799952,
"domNodes": -3046,
"jsHeapTotalBytes": 7622656,
"scriptDurationMs": 929.9929999999998,
"eventListeners": -14915,
"totalBlockingTimeMs": 6,
"frameDurationMs": 41.81881918819188,
"p95FrameDurationMs": 83.39999999999964
},
{
"name": "vue-node-resize-workload",
"durationMs": 6497.838000000002,
"styleRecalcs": 20,
"styleRecalcDurationMs": 72.60100000000003,
"layouts": 20,
"layoutDurationMs": 23.823999999999998,
"taskDurationMs": 6370.913,
"heapDeltaBytes": 5263312,
"heapUsedBytes": 216174408,
"domNodes": 0,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 107.077,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 37.789534883720926,
"p95FrameDurationMs": 83.29999999999927
},
{
"name": "vue-node-resize-workload",
"durationMs": 6579.576999999972,
"styleRecalcs": 20,
"styleRecalcDurationMs": 75.65899999999998,
"layouts": 20,
"layoutDurationMs": 24.59499999999999,
"taskDurationMs": 6456.333,
"heapDeltaBytes": 1261548,
"heapUsedBytes": 216177008,
"domNodes": 0,
"jsHeapTotalBytes": 786432,
"scriptDurationMs": 107.98,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 37.19265536723163,
"p95FrameDurationMs": 66.80000000000109
},
{
"name": "vue-zoom-out-idle",
"durationMs": 9375.540999999997,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 8938.824000000002,
"heapDeltaBytes": -32950224,
"heapUsedBytes": 182692520,
"domNodes": -3076,
"jsHeapTotalBytes": 7622656,
"scriptDurationMs": 136.29400000000004,
"eventListeners": -14915,
"totalBlockingTimeMs": 0,
"frameDurationMs": 31.592255892255896,
"p95FrameDurationMs": 66.59999999999854
},
{
"name": "vue-zoom-out-idle",
"durationMs": 9505.52700000003,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 9034.346999999998,
"heapDeltaBytes": -29502396,
"heapUsedBytes": 182276764,
"domNodes": -3076,
"jsHeapTotalBytes": 4390912,
"scriptDurationMs": 138.73500000000004,
"eventListeners": -14915,
"totalBlockingTimeMs": 0,
"frameDurationMs": 32.20203389830509,
"p95FrameDurationMs": 66.60000000000218
},
{
"name": "workflow-execution",
"durationMs": 480.1660000000538,
"styleRecalcs": 20,
"styleRecalcDurationMs": 13.938,
"layouts": 3,
"layoutDurationMs": 1.3929999999999998,
"taskDurationMs": 137.923,
"heapDeltaBytes": 6486436,
"heapUsedBytes": 73250008,
"domNodes": 135,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 15.321999999999996,
"eventListeners": 81,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665517241379284,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 108.21999999996024,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.387999999999998,
"layouts": 2,
"layoutDurationMs": 1.3279999999999998,
"taskDurationMs": 78.398,
"heapDeltaBytes": 3871112,
"heapUsedBytes": 70177416,
"domNodes": 117,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 6.783000000000001,
"eventListeners": 17,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.671428571428546,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "agent-composer-empty-conversation-typing",
"durationMs": 733.5199999999986,
"styleRecalcs": 78,
"styleRecalcDurationMs": 80.591,
"layouts": 76,
"layoutDurationMs": 23.413,
"taskDurationMs": 702.573,
"heapDeltaBytes": 16654772,
"heapUsedBytes": 84669176,
"domNodes": 76,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 288.76199999999994,
"eventListeners": 876,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665909090909075,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "agent-composer-empty-conversation-typing",
"durationMs": 821.4290000000801,
"styleRecalcs": 78,
"styleRecalcDurationMs": 84.04,
"layouts": 76,
"layoutDurationMs": 24.035999999999998,
"taskDurationMs": 793.6650000000001,
"heapDeltaBytes": -12684736,
"heapUsedBytes": 63484432,
"domNodes": 76,
"jsHeapTotalBytes": 17039360,
"scriptDurationMs": 333.05999999999995,
"eventListeners": 876,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665306122448985,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "agent-composer-long-conversation-typing",
"durationMs": 1247.2080000000005,
"styleRecalcs": 78,
"styleRecalcDurationMs": 238.1,
"layouts": 76,
"layoutDurationMs": 26.341,
"taskDurationMs": 1232.632,
"heapDeltaBytes": -19616932,
"heapUsedBytes": 112996268,
"domNodes": 76,
"jsHeapTotalBytes": 786432,
"scriptDurationMs": 430.816,
"eventListeners": 876,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.665789473684203,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "agent-composer-long-conversation-typing",
"durationMs": 1401.8119999999499,
"styleRecalcs": 78,
"styleRecalcDurationMs": 248.512,
"layouts": 76,
"layoutDurationMs": 28.71,
"taskDurationMs": 1378.512,
"heapDeltaBytes": -18799384,
"heapUsedBytes": 114206396,
"domNodes": 76,
"jsHeapTotalBytes": 1048576,
"scriptDurationMs": 481.351,
"eventListeners": 876,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.498749999999994,
"p95FrameDurationMs": 16.80000000000109
}
]
}🔬 E2E Coverage
Top 10 files by uncovered lines
🧩 Custom Nodes Ecosystem Matrix: ✅ PassedExecutes the frontend JS of every registry pack that ships any, against this change, in both renderers. The eight
On a pin-bump PR, a red gate means the ecosystem moved — not that your diff broke something. That is what the bump PR is for. Outside a pin bump or a cold rebuild of the unpinned tail, a red means the diff. Note the corpus size and the executed count are different numbers, and the verdict is against the executed count: roughly 3,100 of ~5,100 packs ship no extension-shaped JS and are skipped. Reproduce locally# build one shard's fixture, then run it
python3 scripts/registry-census/build_matrix.py --shard 1/4
MATRIX_RENDERER=vue MATRIX_VUE=1 \
npx vitest run --config vitest.matrix.config.mts
Full docs: scripts/registry-census/README.md |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## jaeone94/dynamic-asset-widgets #20307 +/- ##
===============================================================
Coverage 86.25% 86.26%
===============================================================
Files 2483 2483
Lines 141109 141109
Branches 38341 38348 +7
===============================================================
+ Hits 121716 121723 +7
+ Misses 19012 19005 -7
Partials 381 381
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
ELI5
Choosing a LoRA in a repeated row should still choose the right file after editing, copying, saving, or nesting the node. These browser tests follow those operations through the real native loaders and check the resulting model weights on CPU. They also exercise creating nodes, opening asset pickers, previewing a selected model, and dragging models onto the canvas or an existing node.
Motivation
The generic DynamicGroup tests use a node that echoes values. The native loaders also need coverage for asset selection, filenames passed to the backend, and actual LoRA patch application before rollout. Browser coverage of model dragging complements the parent PR's unit tests by exercising the real preview, node constructor, and drop targets together.
Summary
object_info, submit real prompts, load tiny generated safetensors through the native nodes, and assert their patched CPU output. The asset fixtures include the current coreloader_pathfield.0e5d418af303606f1e9f76089b5c21aba275fdc5; standard shards keep their existing backend.Added asset UI coverage
LoraLoaderwith the full loader path.Current failures / merge dependencies
The latest local run has 22 passed and 3 failed. Four of the five added cases pass. The failures remain enabled, without skips or expected-failure annotations:
LoraLoader, while dragging onto empty canvas successfully created and populated that loader. The code points to a shared Vue drop-target gap: the model-tree drop handler is registered on the canvas element, whereas the Vue node is a separate DOM surface. This is not limited to the new regular-expression mapping. This PR records the failing native scenario and does not include a production fix.The previous dedicated CI job ran the earlier 20 cases against the current parent selector refactor: 18 passed and the two nested-promotion cases failed. CI for the five added cases is pending.
Remove the backend override once the default CI backend includes the native nodes and recheck the suite before merging. These CPU tests do not verify Cloud model preparation or full image generation; those remain release QA.
Test plan
Run
DISTRIBUTION=cloud pnpm exec playwright test --config=playwright.native-lora.config.tsagainst the pinned backend with the fixture LoRAs and CPU source/output nodes installed. Inspectplaywright-report-native-lorafor the report and videos.Provenance
pnpm build:cloudpassed.DISTRIBUTION=cloud pnpm exec playwright test --config=playwright.native-lora.config.tsagainst the pinned CPU backend: 22 passed, 3 failed as described above. Pre-commit formatting, type-aware lint, andpnpm typecheck:browserpassed. Pre-push Knip and Fallow passed. The previous CI-gate unit-test run passed all 41 cases. The new scenarios reuse existing fixtures and were reviewed against the repository's Playwright and test-design guidance.