refactor: introduce enabled product interface method#16601
refactor: introduce enabled product interface method#16601
Conversation
Codeowners resolved as |
|
✨ Fix all issues with BitsAI or with Cursor
|
Performance SLOsComparing candidate gab/refactor/product-protocol-enabled-function (b0447a9) with baseline main (e848afc) 📈 Performance Regressions (2 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 102.602µs (SLO: <130.000µs 📉 -21.1%) vs baseline: +1.7% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ add_inplace_aspectTime: ✅ 101.020µs (SLO: <130.000µs 📉 -22.3%) vs baseline: -0.4% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ add_inplace_noaspectTime: ✅ 28.306µs (SLO: <40.000µs 📉 -29.2%) vs baseline: +0.4% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% ✅ add_noaspectTime: ✅ 49.118µs (SLO: <70.000µs 📉 -29.8%) vs baseline: +0.5% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ bytearray_aspectTime: ✅ 248.351µs (SLO: <400.000µs 📉 -37.9%) vs baseline: -2.9% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ bytearray_extend_aspectTime: ✅ 640.805µs (SLO: <800.000µs 📉 -19.9%) vs baseline: +0.8% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ bytearray_extend_noaspectTime: ✅ 263.310µs (SLO: <400.000µs 📉 -34.2%) vs baseline: -0.5% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ bytearray_noaspectTime: ✅ 135.713µs (SLO: <300.000µs 📉 -54.8%) vs baseline: +0.8% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ bytes_aspectTime: ✅ 220.012µs (SLO: <300.000µs 📉 -26.7%) vs baseline: ~same Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.8% ✅ bytes_noaspectTime: ✅ 132.711µs (SLO: <200.000µs 📉 -33.6%) vs baseline: -1.2% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ bytesio_aspectTime: ✅ 3.789ms (SLO: <5.000ms 📉 -24.2%) vs baseline: +0.6% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ bytesio_noaspectTime: ✅ 313.483µs (SLO: <420.000µs 📉 -25.4%) vs baseline: ~same Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.0% ✅ capitalize_aspectTime: ✅ 89.283µs (SLO: <300.000µs 📉 -70.2%) vs baseline: -0.6% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ capitalize_noaspectTime: ✅ 250.985µs (SLO: <300.000µs 📉 -16.3%) vs baseline: +1.0% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% ✅ casefold_aspectTime: ✅ 89.436µs (SLO: <500.000µs 📉 -82.1%) vs baseline: ~same Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ casefold_noaspectTime: ✅ 306.281µs (SLO: <500.000µs 📉 -38.7%) vs baseline: -0.1% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ decode_aspectTime: ✅ 86.871µs (SLO: <100.000µs 📉 -13.1%) vs baseline: ~same Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.6% ✅ decode_noaspectTime: ✅ 151.898µs (SLO: <210.000µs 📉 -27.7%) vs baseline: ~same Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ encode_aspectTime: ✅ 84.283µs (SLO: <200.000µs 📉 -57.9%) vs baseline: +0.5% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ encode_noaspectTime: ✅ 140.551µs (SLO: <200.000µs 📉 -29.7%) vs baseline: +0.7% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ format_aspectTime: ✅ 14.726ms (SLO: <19.200ms 📉 -23.3%) vs baseline: +1.1% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +4.7% ✅ format_map_aspectTime: ✅ 16.428ms (SLO: <21.500ms 📉 -23.6%) vs baseline: +0.2% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.1% ✅ format_map_noaspectTime: ✅ 373.481µs (SLO: <500.000µs 📉 -25.3%) vs baseline: +0.3% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ format_noaspectTime: ✅ 301.426µs (SLO: <500.000µs 📉 -39.7%) vs baseline: -0.2% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ index_aspectTime: ✅ 124.314µs (SLO: <300.000µs 📉 -58.6%) vs baseline: +3.0% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ index_noaspectTime: ✅ 40.329µs (SLO: <300.000µs 📉 -86.6%) vs baseline: +0.4% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ join_aspectTime: ✅ 209.026µs (SLO: <300.000µs 📉 -30.3%) vs baseline: +0.4% Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.7% ✅ join_noaspectTime: ✅ 139.909µs (SLO: <300.000µs 📉 -53.4%) vs baseline: -1.9% Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.7% ✅ ljust_aspectTime: ✅ 578.918µs (SLO: <700.000µs 📉 -17.3%) vs baseline: 📈 +16.0% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ ljust_noaspectTime: ✅ 258.969µs (SLO: <300.000µs 📉 -13.7%) vs baseline: +0.3% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ lower_aspectTime: ✅ 295.119µs (SLO: <500.000µs 📉 -41.0%) vs baseline: +0.8% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ lower_noaspectTime: ✅ 234.881µs (SLO: <300.000µs 📉 -21.7%) vs baseline: -0.6% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ lstrip_aspectTime: ✅ 0.269ms (SLO: <3.000ms 📉 -91.0%) vs baseline: -1.1% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ lstrip_noaspectTime: ✅ 0.177ms (SLO: <3.000ms 📉 -94.1%) vs baseline: -0.2% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ modulo_aspectTime: ✅ 14.307ms (SLO: <18.750ms 📉 -23.7%) vs baseline: +0.5% Memory: ✅ 43.077MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.757ms (SLO: <19.350ms 📉 -23.7%) vs baseline: ~same Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +4.9% ✅ modulo_aspect_for_bytesTime: ✅ 14.358ms (SLO: <18.900ms 📉 -24.0%) vs baseline: -0.5% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +4.5% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.782ms (SLO: <19.150ms 📉 -22.8%) vs baseline: +1.8% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.7% ✅ modulo_noaspectTime: ✅ 0.362ms (SLO: <3.000ms 📉 -87.9%) vs baseline: -0.1% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ replace_aspectTime: ✅ 18.379ms (SLO: <24.000ms 📉 -23.4%) vs baseline: ~same Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +4.8% ✅ replace_noaspectTime: ✅ 278.642µs (SLO: <300.000µs -7.1%) vs baseline: -0.4% Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.8% ✅ repr_aspectTime: ✅ 309.954µs (SLO: <420.000µs 📉 -26.2%) vs baseline: -0.6% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ repr_noaspectTime: ✅ 46.505µs (SLO: <90.000µs 📉 -48.3%) vs baseline: -0.9% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.6% ✅ rstrip_aspectTime: ✅ 388.115µs (SLO: <500.000µs 📉 -22.4%) vs baseline: +2.1% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ rstrip_noaspectTime: ✅ 182.790µs (SLO: <300.000µs 📉 -39.1%) vs baseline: -1.0% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ slice_aspectTime: ✅ 184.914µs (SLO: <300.000µs 📉 -38.4%) vs baseline: +1.1% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ slice_noaspectTime: ✅ 54.120µs (SLO: <90.000µs 📉 -39.9%) vs baseline: +0.3% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ stringio_aspectTime: ✅ 4.396ms (SLO: <5.000ms 📉 -12.1%) vs baseline: 📈 +15.0% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0% ✅ stringio_noaspectTime: ✅ 345.418µs (SLO: <500.000µs 📉 -30.9%) vs baseline: +0.2% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ strip_aspectTime: ✅ 272.221µs (SLO: <350.000µs 📉 -22.2%) vs baseline: +0.8% Memory: ✅ 42.841MB (SLO: <46.000MB -6.9%) vs baseline: +4.6% ✅ strip_noaspectTime: ✅ 177.596µs (SLO: <240.000µs 📉 -26.0%) vs baseline: +0.2% Memory: ✅ 42.861MB (SLO: <46.000MB -6.8%) vs baseline: +4.8% ✅ swapcase_aspectTime: ✅ 333.211µs (SLO: <500.000µs 📉 -33.4%) vs baseline: +0.6% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ swapcase_noaspectTime: ✅ 271.325µs (SLO: <400.000µs 📉 -32.2%) vs baseline: ~same Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.1% ✅ title_aspectTime: ✅ 318.515µs (SLO: <500.000µs 📉 -36.3%) vs baseline: ~same Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 257.924µs (SLO: <400.000µs 📉 -35.5%) vs baseline: -0.6% Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.8% ✅ translate_aspectTime: ✅ 492.979µs (SLO: <700.000µs 📉 -29.6%) vs baseline: ~same Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ translate_noaspectTime: ✅ 424.160µs (SLO: <500.000µs 📉 -15.2%) vs baseline: -1.2% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ upper_aspectTime: ✅ 293.292µs (SLO: <500.000µs 📉 -41.3%) vs baseline: -0.4% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 235.069µs (SLO: <400.000µs 📉 -41.2%) vs baseline: +0.2% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 509.120µs (SLO: <700.000µs 📉 -27.3%) vs baseline: 📈 +20.5% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +5.2% ✅ ospathbasename_noaspectTime: ✅ 432.655µs (SLO: <700.000µs 📉 -38.2%) vs baseline: +0.4% Memory: ✅ 42.723MB (SLO: <46.000MB -7.1%) vs baseline: +5.1% ✅ ospathjoin_aspectTime: ✅ 622.918µs (SLO: <700.000µs 📉 -11.0%) vs baseline: -0.5% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ ospathjoin_noaspectTime: ✅ 632.196µs (SLO: <700.000µs -9.7%) vs baseline: ~same Memory: ✅ 42.644MB (SLO: <46.000MB -7.3%) vs baseline: +5.0% ✅ ospathnormcase_aspectTime: ✅ 352.089µs (SLO: <700.000µs 📉 -49.7%) vs baseline: +0.4% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.2% ✅ ospathnormcase_noaspectTime: ✅ 353.299µs (SLO: <700.000µs 📉 -49.5%) vs baseline: -1.6% Memory: ✅ 42.723MB (SLO: <46.000MB -7.1%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 489.445µs (SLO: <700.000µs 📉 -30.1%) vs baseline: +0.1% Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.8% ✅ ospathsplit_noaspectTime: ✅ 496.075µs (SLO: <700.000µs 📉 -29.1%) vs baseline: -1.1% Memory: ✅ 42.546MB (SLO: <46.000MB -7.5%) vs baseline: +4.5% ✅ ospathsplitdrive_aspectTime: ✅ 376.000µs (SLO: <700.000µs 📉 -46.3%) vs baseline: -0.1% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.3% ✅ ospathsplitdrive_noaspectTime: ✅ 73.117µs (SLO: <700.000µs 📉 -89.6%) vs baseline: +0.5% Memory: ✅ 42.743MB (SLO: <46.000MB -7.1%) vs baseline: +4.8% ✅ ospathsplitext_aspectTime: ✅ 456.929µs (SLO: <700.000µs 📉 -34.7%) vs baseline: ~same Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +5.0% ✅ ospathsplitext_noaspectTime: ✅ 468.610µs (SLO: <700.000µs 📉 -33.1%) vs baseline: +0.4% Memory: ✅ 42.723MB (SLO: <46.000MB -7.1%) vs baseline: +4.8% 🟡 Near SLO Breach (1 suite)🟡 tracer - 6/6✅ largeTime: ✅ 31.443ms (SLO: <32.950ms -4.6%) vs baseline: ~same Memory: ✅ 36.628MB (SLO: <39.250MB -6.7%) vs baseline: +4.9% ✅ mediumTime: ✅ 3.110ms (SLO: <3.200ms -2.8%) vs baseline: +0.2% Memory: ✅ 35.468MB (SLO: <38.750MB -8.5%) vs baseline: +4.6% ✅ smallTime: ✅ 363.106µs (SLO: <370.000µs 🟡 -1.9%) vs baseline: +4.0% Memory: ✅ 35.547MB (SLO: <38.750MB -8.3%) vs baseline: +5.0%
|
We extend the product plugin interface with a new mandatory `enabled` function. This is used to determine whether a product is enabled and needs its lifecycle managed by the product plugin protocol. The main reason behind this change is to fix an issue with configuration telemetry reporting whereby products are reported as activated simply when they are started, but not necessarily enabled. This change now moves the responsibility for checking enablement to the plugin protocol, which can then make a more accurate configuration telemetry reporting when it comes to product enablement. This also removes some boilerplate code in product plugin implementations by not requiring them to include an explicit enablement check.
e792a92 to
b0447a9
Compare
Description
We extend the product plugin interface with a new mandatory
enabledfunction. This is used to determine whether a product is enabled and needs its lifecycle managed by the product plugin protocol. The main reason behind this change is to fix an issue with configuration telemetry reporting whereby products are reported as activated simply when they are started, but not necessarily enabled. This change now moves the responsibility for checking enablement to the plugin protocol, which can then make a more accurate configuration telemetry reporting when it comes to product enablement. This also removes some boilerplate code in product plugin implementations by not requiring them to include an explicit enablement check.Additional Notes
Changes authored by Claude Code