fix: keep node display_name and description across the locale collector boundary - #15538
fix: keep node display_name and description across the locale collector boundary#15538christian-byrne wants to merge 1 commit into
Conversation
…or boundary `display_name` and `description` became prototype accessors in #14798. `page.evaluate` serializes own enumerable properties only, so the release locale collector received both as undefined and `serializeNodeDefLocales` fell through to `nodeDef.name`. The next regeneration of `src/locales/en/nodeDefs.json` would have rewritten every node's English display name as its internal name and dropped every description, then lobe-i18n would have retranslated all 13 locales from that. The collector only runs at release, so nothing on main would have caught it. Adds `toSerializable()` and a test that fails if it stops materializing.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 11 minutes Limit details: You’ve used all 3 included reviews currently available. Your 79 included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Comment |
🎨 Storybook: ✅ Built — View Storybook🎭 Playwright: ✅ 1839 passed, 0 failed · 1 flaky📊 Browser Reports
📦 Bundle: 9.13 MB gzip 🔴 +53 BDetailsSummary
Category Glance App Entry Points — 3.71 kB (baseline 3.71 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.37 MB (baseline 1.37 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 2 added / 2 removed / 1 unchanged Views & Navigation — 124 kB (baseline 124 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 13 added / 13 removed / 4 unchanged Panels & Settings — 566 kB (baseline 566 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 10 added / 10 removed / 16 unchanged User & Accounts — 27.5 kB (baseline 27.5 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 6 added / 6 removed / 5 unchanged Editors & Dialogs — 125 kB (baseline 125 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 7 added / 7 removed / 1 unchanged UI Components — 67.1 kB (baseline 67.1 kB) • ⚪ 0 BReusable component library chunks
Status: 6 added / 6 removed / 8 unchanged Data & Services — 3.53 MB (baseline 3.53 MB) • 🔴 +513 BStores, services, APIs, and repositories
Status: 14 added / 14 removed / 3 unchanged Utilities & Hooks — 549 kB (baseline 549 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 18 added / 18 removed / 19 unchanged Vendor & Third-Party — 18.1 MB (baseline 18.1 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 18 unchanged Other — 14.2 MB (baseline 14.2 MB) • ⚪ 0 BBundles that do not match a named category
Status: 69 added / 69 removed / 219 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-21T07:55:24.841Z",
"gitSha": "2e8bf266cf958de00b12ea5da8aaf0877ece5ebe",
"branch": "fix/release-collector-materializes-node-text",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2161.7009999999937,
"styleRecalcs": 7,
"styleRecalcDurationMs": 12.733,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 617.0519999999999,
"heapDeltaBytes": -896168,
"heapUsedBytes": 60477228,
"domNodes": -283,
"jsHeapTotalBytes": 3661824,
"scriptDurationMs": 8.410999999999998,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-idle",
"durationMs": 2043.3289999999715,
"styleRecalcs": 9,
"styleRecalcDurationMs": 6.953999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 492.226,
"heapDeltaBytes": -1329260,
"heapUsedBytes": 60875780,
"domNodes": -281,
"jsHeapTotalBytes": 3923968,
"scriptDurationMs": 7.592000000000001,
"eventListeners": -181,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1845.9000000000287,
"styleRecalcs": 72,
"styleRecalcDurationMs": 38.684999999999995,
"layouts": 12,
"layoutDurationMs": 3.759,
"taskDurationMs": 859.191,
"heapDeltaBytes": 6576608,
"heapUsedBytes": 68004436,
"domNodes": -285,
"jsHeapTotalBytes": 5758976,
"scriptDurationMs": 102.357,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2050.848999999971,
"styleRecalcs": 79,
"styleRecalcDurationMs": 58.272999999999996,
"layouts": 12,
"layoutDurationMs": 6.577,
"taskDurationMs": 1037.6689999999999,
"heapDeltaBytes": -3054448,
"heapUsedBytes": 58109096,
"domNodes": -282,
"jsHeapTotalBytes": 4972544,
"scriptDurationMs": 132.64999999999998,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1749.136999999962,
"styleRecalcs": 31,
"styleRecalcDurationMs": 17.185000000000002,
"layouts": 6,
"layoutDurationMs": 0.631,
"taskDurationMs": 365.071,
"heapDeltaBytes": 2840840,
"heapUsedBytes": 64129940,
"domNodes": 75,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 10.086999999999998,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1720.3610000000253,
"styleRecalcs": 33,
"styleRecalcDurationMs": 16.074,
"layouts": 6,
"layoutDurationMs": 0.563,
"taskDurationMs": 348.913,
"heapDeltaBytes": 3106816,
"heapUsedBytes": 64146036,
"domNodes": 78,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 9.300999999999998,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 568.9500000000294,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.1930000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 358.193,
"heapDeltaBytes": 10750036,
"heapUsedBytes": 71520564,
"domNodes": 16,
"jsHeapTotalBytes": 5767168,
"scriptDurationMs": 53.525000000000006,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 574.3320000000267,
"styleRecalcs": 11,
"styleRecalcDurationMs": 6.488,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 348.85099999999994,
"heapDeltaBytes": 10500636,
"heapUsedBytes": 71838288,
"domNodes": 18,
"jsHeapTotalBytes": 4980736,
"scriptDurationMs": 49.945,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-idle",
"durationMs": 2040.1089999999726,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.552,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 614.693,
"heapDeltaBytes": -13617808,
"heapUsedBytes": 62032284,
"domNodes": -281,
"jsHeapTotalBytes": 3403776,
"scriptDurationMs": 14.589999999999995,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2070.295999999985,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.722000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 620.3430000000001,
"heapDeltaBytes": -1690808,
"heapUsedBytes": 73971200,
"domNodes": -269,
"jsHeapTotalBytes": -2363392,
"scriptDurationMs": 14.575999999999999,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2177.906000000007,
"styleRecalcs": 71,
"styleRecalcDurationMs": 16.495,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1142.0780000000002,
"heapDeltaBytes": -7821144,
"heapUsedBytes": 68815956,
"domNodes": -274,
"jsHeapTotalBytes": -1351680,
"scriptDurationMs": 305.076,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2195.3939999999648,
"styleRecalcs": 69,
"styleRecalcDurationMs": 14.845,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1154.455,
"heapDeltaBytes": 13161736,
"heapUsedBytes": 88813836,
"domNodes": -283,
"jsHeapTotalBytes": 4677632,
"scriptDurationMs": 311.819,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3201.652000000024,
"styleRecalcs": 66,
"styleRecalcDurationMs": 15.437999999999997,
"layouts": 60,
"layoutDurationMs": 7.947000000000001,
"taskDurationMs": 1359.2530000000002,
"heapDeltaBytes": -10297608,
"heapUsedBytes": 67715112,
"domNodes": -286,
"jsHeapTotalBytes": 4976640,
"scriptDurationMs": 384.473,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3151.331999999911,
"styleRecalcs": 66,
"styleRecalcDurationMs": 15.729000000000003,
"layouts": 60,
"layoutDurationMs": 8.046,
"taskDurationMs": 1423.924,
"heapDeltaBytes": -13533660,
"heapUsedBytes": 64540576,
"domNodes": -284,
"jsHeapTotalBytes": 5763072,
"scriptDurationMs": 412.378,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "legacy-node-drag",
"durationMs": 2170.480999999995,
"styleRecalcs": 46,
"styleRecalcDurationMs": 10.131999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1377.872,
"heapDeltaBytes": 11244328,
"heapUsedBytes": 95276608,
"domNodes": 12,
"jsHeapTotalBytes": 8318976,
"scriptDurationMs": 442.5,
"eventListeners": 186,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "legacy-node-drag",
"durationMs": 2307.4249999999665,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.46,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1417.23,
"heapDeltaBytes": -16276956,
"heapUsedBytes": 69394700,
"domNodes": 14,
"jsHeapTotalBytes": 8163328,
"scriptDurationMs": 449.88,
"eventListeners": 186,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2050.894000000028,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.782999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 657.574,
"heapDeltaBytes": -12650292,
"heapUsedBytes": 71138028,
"domNodes": -274,
"jsHeapTotalBytes": 3403776,
"scriptDurationMs": 16.971000000000004,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "minimap-idle",
"durationMs": 2045.8460000000969,
"styleRecalcs": 8,
"styleRecalcDurationMs": 5.911,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 629.084,
"heapDeltaBytes": -12468708,
"heapUsedBytes": 69787052,
"domNodes": -284,
"jsHeapTotalBytes": 4190208,
"scriptDurationMs": 14.955,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 622.6389999999924,
"styleRecalcs": 47,
"styleRecalcDurationMs": 10.647,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 393.758,
"heapDeltaBytes": 11790112,
"heapUsedBytes": 73399556,
"domNodes": 20,
"jsHeapTotalBytes": 5505024,
"scriptDurationMs": 119.39500000000001,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 582.4800000000323,
"styleRecalcs": 45,
"styleRecalcDurationMs": 12.106,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 392.25200000000007,
"heapDeltaBytes": 10781168,
"heapUsedBytes": 72443920,
"domNodes": 16,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 122.355,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2037.3460000000136,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.291,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 495.886,
"heapDeltaBytes": 19143432,
"heapUsedBytes": 80664264,
"domNodes": -278,
"jsHeapTotalBytes": 4710400,
"scriptDurationMs": 6.221999999999999,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2019.4900000000189,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.249999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 482.45099999999996,
"heapDeltaBytes": -5991744,
"heapUsedBytes": 55578824,
"domNodes": -279,
"jsHeapTotalBytes": 4710400,
"scriptDurationMs": 6.331000000000001,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1688.0029999999806,
"styleRecalcs": 75,
"styleRecalcDurationMs": 33.348,
"layouts": 16,
"layoutDurationMs": 4.368,
"taskDurationMs": 748.297,
"heapDeltaBytes": -5877736,
"heapUsedBytes": 55616208,
"domNodes": -278,
"jsHeapTotalBytes": 5234688,
"scriptDurationMs": 77.69800000000001,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1699.2669999999634,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.492999999999995,
"layouts": 16,
"layoutDurationMs": 4.356,
"taskDurationMs": 774.2189999999999,
"heapDeltaBytes": 4205004,
"heapUsedBytes": 65834472,
"domNodes": -281,
"jsHeapTotalBytes": 4710400,
"scriptDurationMs": 79.215,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1384.5079999999825,
"styleRecalcs": 21,
"styleRecalcDurationMs": 30.002999999999997,
"layouts": 16,
"layoutDurationMs": 13.552000000000001,
"taskDurationMs": 899.8469999999999,
"heapDeltaBytes": -7860296,
"heapUsedBytes": 87100812,
"domNodes": 13673,
"jsHeapTotalBytes": 11534336,
"scriptDurationMs": 16.660999999999994,
"eventListeners": 2375,
"totalBlockingTimeMs": 135,
"frameDurationMs": 16.666666666666696,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8168.074999999988,
"styleRecalcs": 250,
"styleRecalcDurationMs": 41.571,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3952.7639999999997,
"heapDeltaBytes": -9850656,
"heapUsedBytes": 64958748,
"domNodes": -278,
"jsHeapTotalBytes": 4190208,
"scriptDurationMs": 929.984,
"eventListeners": -163,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8189.257999999995,
"styleRecalcs": 251,
"styleRecalcDurationMs": 39.690000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3980.1150000000007,
"heapDeltaBytes": 2613180,
"heapUsedBytes": 78509856,
"domNodes": -276,
"jsHeapTotalBytes": -827392,
"scriptDurationMs": 950.183,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 18160.506999999994,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17209.879999999997,
"heapDeltaBytes": -40845580,
"heapUsedBytes": 179432996,
"domNodes": -8312,
"jsHeapTotalBytes": -7540736,
"scriptDurationMs": 106.36899999999999,
"eventListeners": -16391,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 18117.509000000042,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17150.955,
"heapDeltaBytes": -29404268,
"heapUsedBytes": 179424276,
"domNodes": -8316,
"jsHeapTotalBytes": -9605120,
"scriptDurationMs": 123.05499999999999,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21243.897000000004,
"styleRecalcs": 180,
"styleRecalcDurationMs": 19.637000000000015,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20661.921,
"heapDeltaBytes": -21460712,
"heapUsedBytes": 185220360,
"domNodes": -8312,
"jsHeapTotalBytes": -10493952,
"scriptDurationMs": 390.075,
"eventListeners": -16381,
"totalBlockingTimeMs": 62,
"frameDurationMs": 17.780000000000047,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21540.577999999983,
"styleRecalcs": 174,
"styleRecalcDurationMs": 18.79699999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 20819.744,
"heapDeltaBytes": -47660960,
"heapUsedBytes": 173245516,
"domNodes": -8309,
"jsHeapTotalBytes": -12259328,
"scriptDurationMs": 395.14500000000004,
"eventListeners": -16383,
"totalBlockingTimeMs": 99,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 472.05699999994977,
"styleRecalcs": 18,
"styleRecalcDurationMs": 20.712999999999997,
"layouts": 3,
"layoutDurationMs": 1.29,
"taskDurationMs": 110.08800000000001,
"heapDeltaBytes": 5192452,
"heapUsedBytes": 66743720,
"domNodes": 148,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 8.934000000000001,
"eventListeners": 99,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 463.41900000004443,
"styleRecalcs": 13,
"styleRecalcDurationMs": 18.354000000000003,
"layouts": 2,
"layoutDurationMs": 0.4010000000000001,
"taskDurationMs": 97.87400000000001,
"heapDeltaBytes": 4931224,
"heapUsedBytes": 66070188,
"domNodes": 123,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 6.452000000000001,
"eventListeners": 97,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #15538 +/- ##
==========================================
+ Coverage 79.78% 82.06% +2.28%
==========================================
Files 2214 1887 -327
Lines 127743 122842 -4901
Branches 40806 39638 -1168
==========================================
- Hits 101923 100816 -1107
+ Misses 25217 21522 -3695
+ Partials 603 504 -99
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 334 files with indirect coverage changes 🚀 New features to boost your workflow:
|
ComfyNodeDefImpl.display_nameand.descriptionbecame prototype accessors in #14798.page.evaluateserializes own enumerable properties only, so accessors do not cross it.scripts/collect-i18n-node-defs.tsbuildsComfyNodeDefImpls inside the browser and returns them to Node. After #14798 both fields arriveundefined, andserializeNodeDefLocalesfalls through tonodeDef.display_name ?? nodeDef.name.The next release would regenerate
src/locales/en/nodeDefs.jsonwith every node's English display name replaced by its internal name and every description dropped, then lobe-i18n would retranslate all 13 locales from that. Changed English is not retranslated back, so it would not self-heal.Measured before and after the boundary, using
structuredClone({ ...impl })as a stand-in for Playwright's serialization:display_namedescriptionLive Display NameLive descriptionpage.evaluateSerializationProbe(the node name)backendDisplayNameandbackendDescriptiondo survive — they are own properties — which is why nothing else broke.Why no test caught it
The collector runs only at release, against a live backend, so it has no CI coverage.
nodeDefStore.nodeText.test.tsasserts the accessors in-process, where they work.toSerializable()materializes both, andnodeDefStore.serialization.test.tsfails if it stops.Object.assignrather than spread becauseno-misused-spreadcorrectly rejects spreading a class instance.Second test pins the underlying hazard — a bare instance loses both across the boundary — so anything else that carries a def out of the browser has the reason written down.