What's Changed
- Fixes #2421 - LCP priority hint experiment suggestion by @scottjehl in #2422
- fixes #2423 - LCP image src passed properly when srcset is in play by @scottjehl in #2424
- Add a blockingtime indicator by @tkadlec in #2428
- fix(account): remove option to upgrade plan by @jefflembeck in #2432
- fix(account): sometimes company name is null, not empty by @jefflembeck in #2436
- fix(account/signup): avoid tax for non-US customer by @jefflembeck in #2440
- fix(country-list): update list by @jefflembeck in #2441
- Remove + from mailto: sharing by @stoyan in #2439
- Added a checkbox for script injection to use Chrome's native support by @pmeenan in #2437
- Delete all $gaTemplate instances by @stoyan in #2435
- Reusable code flask by @stoyan in #2419
- A round of CSS linting by @stoyan in #2427
- move constants together by @stoyan in #2431
- Autoload constants.inc by @stoyan in #2434
- Add cert error to the list of params that allows some special chars by @pmeenan in #2444
- Fixed undefined variable error in \www\page_data.inc by @gardness in #2447
- Delete unused adult.txt and isAdultSite() methods by @stoyan in #2446
- Restore LCP background image Opp & Exp by @scottjehl in #2454
- A round of dead PHP code fixes by @stoyan in #2451
- fix(account): allow paid users to upgrade by @jefflembeck in #2445
- Revert "fix(account/signup): avoid tax for non-US customer" by @jefflembeck in #2450
- Add support to LCP vitals page for "url" based LCP images by @pmeenan in #2457
- Fix regression with test urls no longer being included in filmstrips … by @scottjehl in #2467
- Archive & restore saas tests by @tkadlec in #2468
- fix(runtest): name vars to better validate scripts by @jefflembeck in #2477
- feat(acct): notify cc errors by @jefflembeck in #2480
- Adjusting Docker readme by @sammeboy635 in #2478
- Added collection period in CrUX Real User Measurement title. by @sammeboy635 in #2476
- add icon for connection type by @scottjehl in #2481
- Drop drawChecklist()'s 4th argument by @stoyan in #2463
- traffic-shaping on docker images!!!! by @sammeboy635 in #2483
- Fix DIR use (in 30 out of 120-ish files) by @stoyan in #2448
- Duplicate selectors cleanup in pagestyle2 by @stoyan in #2459
- Replaced glossary table with a definition list by @stoyan in #2461
- Delete setAdsFile-related code by @stoyan in #2462
- Blade tweaks and step 1 in optimization checklist as HTML by @stoyan in #2479
- Optimization checklist as an HTML table by @stoyan in #2487
- xdebug linux fix by @sammeboy635 in #2485
- fix(csrf): removing for now by @jefflembeck in #2492
- fix(braintree): give better errors to our users by @jefflembeck in #2490
- check flag directly instead of $experimentsEnabled here by @scottjehl in #2498
- chore(plans): a little code cleanup/format by @jefflembeck in #2504
- Check for raw param before adding header Content-disposition. by @Siddhantshukla814 in #2506
- Round favicons update by @Siddhantshukla814 in #2507
- Install a markdown parser by @stoyan in #2511
- Fixed an exception when possibly-render-blocking-reqs doesn't exist by @pmeenan in #2512
- Advanced Visual Comparison with current test id by @stoyan in #2510
- Use the social meta globals in blade templates by @stoyan in #2515
- fix(header): allow tests to pass by @jefflembeck in #2500
- Disable raw param by @Siddhantshukla814 in #2517
- Optimized images (lossless) by @stoyan in #2521
- Removed dynatrace references by @stoyan in #2522
- Use blade's $loop for display logic by @stoyan in #2514
- SVG icons in optimization checklist by @stoyan in #2527
- Monospace font in response bodies by @stoyan in #2529
- Introduce Prism.js for code highlighting by @stoyan in #2530
- Refactor experiments page JS to not use jQuery by @scottjehl in #2531
- Remove spaces from spof_hosts textarea by @stoyan in #2539
- Highlight code in request dialog's Object tab by @stoyan in #2538
- Version and move vendor JS into assets/js/vendor/ by @stoyan in #2537
- Update this wording to reflect the nuanced nature of this situation, … by @scottjehl in #2526
- Fix a subtab name by @stoyan in #2524
- Improved the main thread activity categorization by @pmeenan in #2540
- fix(readme): add apcu install instructions by @jefflembeck in #2545
- Add doctype custom metric by @stoyan in #2547
- Removed .border class in user timing table by @stoyan in #2520
- feat(admin): chargify sandbox by @jefflembeck in #2551
- Detected Technologies page by @stoyan in #2552
- Technology page quick fixes by @stoyan in #2554
- Add "home" to home link for a11y by @scottjehl in #2558
- Updating confirm password label by @tkadlec in #2559
- 2548 - handle find/replace differently than other swaps so we don't interfere with the other swaps by @scottjehl in #2549
- Add ability to sort order that experiments apply by @scottjehl in #2532
- Don't recommend priority hints if they're already there by @scottjehl in #2563
- fixes #2502 by @scottjehl in #2565
- Add enable-features to the list of Chrome command-line flags by @pmeenan in #2568
- fix(account): send company name properly by @jefflembeck in #2570
- fix(account): this blows things up by @jefflembeck in #2571
- fix(customer): this field may not be set by @jefflembeck in #2573
- fixes #2576 - simple LH should only be offered alongside chrome tests by @scottjehl in #2580
- fixes #2452 - avoiding the chrome bug by @scottjehl in #2581
- New Lighthouse result template by @scottjehl in #2567
- New metric to minimize the observer effect on CSS by @stoyan in #2562
- change scoring color key description fixes #2589 by @scottjehl in #2590
- HTML diff results page by @stoyan in #2535
- Change support link by @tkadlec in #2593
- feat(account): Update payment method by @jefflembeck in #2586
- fix(support): change support link by @jefflembeck in #2597
- fix(account): support link by @jefflembeck in #2599
- More colorful description in HTML Diff by @stoyan in #2596
- Deleted meta author content="Patrick" by @stoyan in #2595
- Markup nits by @stoyan in #2602
- fixes #2603 by @scottjehl in #2604
- fixes #2591 by @scottjehl in #2605
- fixes #2588 by @scottjehl in #2606
- fix(account): update payment method by @jefflembeck in #2609
- fix(signup): button size too small on safari by @jefflembeck in #2614
- Hide non differing lines by @stoyan in #2613
- Don't count LH as a test run if standard WPT test is run by @tkadlec in #2615
- chore(account): add test for update_payment_method page by @jefflembeck in #2612
- fix(customer): enterprise customer is too strict by @jefflembeck in #2617
- Fix Login on LH results by @stoyan in #2619
- Delete wptForgetSettings check by @stoyan in #2618
- history table cell fix by @scottjehl in #2623
- Add <title>s to show % in CRUX results by @stoyan in #2621
- fix(api keys): disable button on submit by @jefflembeck in #2628
- Make Custom Metrics Data a
- Add a CDN opportunity. by @scottjehl in #2626
- mv some Blade templates by @stoyan in #2630
- Remove "Capture Video" option by @stoyan in #2629
- Option to highlight JSON responses by @stoyan in #2627
- 2632 - add cache check opportunity by @scottjehl in #2633
- Show subitems in LH details by @stoyan in #2631
- Replacing
__DIR__
with constants, part 2 by @stoyan in #2523 - Prevent a global overwrite, fix #2637 by @stoyan in #2639
- Refactor opportunities & experiments includes by @stoyan in #2641
- SaaS tests need to be explicitly handled in the restore test process by @tkadlec in #2644
- Signup FAQ line width adjustment by @Siddhantshukla814 in #2649
- Breakpoint fix for footer ul by @Siddhantshukla814 in #2648
- Counting fix in the insecure requests opp by @stoyan in #2647
- Restore filmstrip sticky on compare view by @scottjehl in #2651
- Request Details: add priority column and legend update by @stoyan in #2668
- Temp fix for monitoring tests by @tkadlec in #2671
- 25% -> 20% by @stoyan in #2674
- feat: 2023 01 chargify billing updates by @jefflembeck in #2673
- fix(account): if renewaldate is empty, don't show by @jefflembeck in #2675
- fix(account): remove upgrade button by @jefflembeck in #2677
- Fix border in results summary table by @stoyan in #2666
- Close request details on hitting Escape by @stoyan in #2665
- Replace the common pattern of hunting for .ini by @stoyan in #2664
- Lighthouse start page notice cleanup by @stoyan in #2663
- Traceroute results tweaks, prep to blade-ify by @stoyan in #2662
- Traceroute home page tweaks addressing #2658 by @stoyan in #2661
- Dead code: delete or fix by @stoyan in #2646
- fix(account): change how isPaid works by @jefflembeck in #2679
- secondary anon setting for experiments by @scottjehl in #2681
- disable dependent fields when their initial check is unchecked by @scottjehl in #2682
- Typo fix common.inc by @Siddhantshukla814 in #2659
- Edit Initial Response HTML experiment. #2471 by @scottjehl in #2643
- fix(test runs): don't count against exempt host by @jefflembeck in #2686
- CRUX presentation tweaks: by @stoyan in #2669
- Load the details page with display_errors 1 by @stoyan in #2653
- Anon experiments on the metric times by @scottjehl in #2687
- Put the free experiments we offer on the anon plan by @scottjehl in #2689
- Bump symfony/http-kernel from 5.4.18 to 5.4.20 by @dependabot in #2692
- fix(update payment): allow canceled accounts by @jefflembeck in #2694
- Traceroute Broken Link Fix by @Siddhantshukla814 in #2690
- feat(psalm): typecheck the things! by @jefflembeck in #2697
- feat(api): add header-based api key by @jefflembeck in #2700
- feat(api): add private test by @jefflembeck in #2702
- LH: Handle one field renamed in v10 by @stoyan in #2704
- fix(api): use api key check for testBalance by @jefflembeck in #2706
- add existing disable js experiment to the custom experiments list so … by @scottjehl in #2707
- no need to use a var in this example by @scottjehl in #2709
- fix(api): make private require 1 or true as passed values by @jefflembeck in #2710
- fix(account): cancellation takes effect at end by @jefflembeck in #2713
- fix(testBalance): use user_api_key, it is defined by @jefflembeck in #2715
- fix(account): better error for invoice by @jefflembeck in #2717
- fix(testinfo): add creator field to file by @jefflembeck in #2719
- fix(ownership): creators are owners, too by @jefflembeck in #2721
- fix(results): low priority tests are not private by @jefflembeck in #2724
- fix(tests): add private checkbox by @jefflembeck in #2730
- fix(account): remove unnecessary double modal by @jefflembeck in #2729
- fix(services): shorten timeout for any calls out to CP by @jefflembeck in #2732
- fix(signup): only get auth token on post by @jefflembeck in #2734
- Add estimated bandwidth to the HAR export by @stoyan in #2723
- fix(signup): kill the whole thing by @jefflembeck in #2736
- fix(login): turn it off by @jefflembeck in #2739
- fix(sessions): only use sessions if they're enabled by @jefflembeck in #2741
- feat(auth): login flag by @jefflembeck in #2743
- fix(auth): turn login back on by @jefflembeck in #2745
- fix(auth): make login/signup flag-ready by @jefflembeck in #2746
- Crux redesign by @scottjehl in #2731
- these are used in common. included files will set them by @scottjehl in #2754
- Better catch for login issues by @jefflembeck in #2757
- 2753 - user friendliness on the summary page by @scottjehl in #2755
- fix(exceptions): support unauthorized incoming by @jefflembeck in #2759
- fix(auth): different url for login by @jefflembeck in #2756
- fix(auth): change cookie names by @jefflembeck in #2762
- fix(auth/user): sometimes thing happen like this by @jefflembeck in #2764
- Revamp Timings table by @stoyan in #2678
- Add JS Exec timing to the HAR and JSON exports by @stoyan in #2738
- Add BW and CPU data to test results JSON and HAR by @stoyan in #2752
- Add support for request priorities in Firefox by @tkadlec in #2767
- bring back the first and repeat view labels and run links. by @scottjehl in #2769
- fix(signup): resilience by @jefflembeck in #2768
- typo and null arg by @stoyan in #2772
- fix lighthouse check dependency by @scottjehl in #2777
- Hide custom metrics table in summary page by @stoyan in #2778
- add experiments cta by @scottjehl in #2774
- Add an explicit fetchpriority to the test images by @pmeenan in #2781
- Add option to remove borders from filmstrips by @stoyan in #2782
- testers page is admin only by @tkadlec in #2783
- fix(admin): move cache_check behind admin handler by @jefflembeck in #2786
- feat(auth): add user ids to tests by @jefflembeck in #2785
- IniReader -> SettingsFileReader by @stoyan in #2775
- fix(account): contact id not user id by @jefflembeck in #2788
- fix(account): call the correct method by @jefflembeck in #2790
- feat(contact): add vat_number to update by @jefflembeck in #2698
- fix(private): some things to help our private install folks by @jefflembeck in #2793
- chore(deps): bump phpseclib/phpseclib from 3.0.14 to 3.0.19 by @dependabot in #2770
- Update install for phpseclib update by @jefflembeck in #2794
- Fix np in priority calculation by @fbuecklers in #2795
- fix metaInfo setter, which brings back experiments nav links by @scottjehl in #2796
- Revert some things by @jefflembeck in #2799
- feat(exception): portal exception by @jefflembeck in #2801
- Revert "Revert "feat(contact): add vat_number to update"" by @jefflembeck in #2803
- fix(test): add test user id by @jefflembeck in #2805
- Styleguide: initial implementation by @stoyan in #2807
- Console log: support multistep tests by @stoyan in #2800
- Remove Bulk file uploads in favor of File Reader by @stoyan in #2635
- update header to use catchpoint logo by @scottjehl in #2810
- test history Blade template fix by @stoyan in #2811
- Adding Moto G Power by @tkadlec in #2809
- New blog posts for the homepage by @stoyan in #2808
- Test history: use the Blade template by @stoyan in #2822
- chore(build): ran composer build by @jefflembeck in #2827
- WebVitals page update by @stoyan in #2825
- Remove viewsqlite.php and any SQLite leftovers by @stoyan in #2823
- Bladify About by @stoyan in #2830
- Add link to addresses.php in admin_header.inc by @stoyan in #2831
- Blade 404, fix white-on-white header text by @stoyan in #2829
- Refactor testlog.php by @stoyan in #2824
- feat(error): give an error code for a type error by @jefflembeck in #2836
- Various admin fixes by @stoyan in #2834
- fix(account): make card brand have defaults by @jefflembeck in #2839
- Fix forcePrivate option so it really prevents the all option by @fbuecklers in #2838
- fix text contrast and top stack for mobile nav menu by @scottjehl in #2835
- fix(signup): make gdpr opt-in to match CP by @jefflembeck in #2844
Access-Control-Allow-Origin
in LH JSON exports by @stoyan in #2842- Bump guzzlehttp/psr7 from 2.4.0 to 2.5.0 by @dependabot in #2841
- chore(deps): update guzzle by @jefflembeck in #2845
- Hide "Pricing" menu for logged in users by @stoyan in #2833
- fix(api): make buffer for api key exp an env var by @jefflembeck in #2847
- fix(account): no upcoming plan for canceled by @jefflembeck in #2849
- Add key (legend) to getLocations by @stoyan in #2850
- Move www/lighthouse-new.php by @stoyan in #2851
- Move XSL to www/assets by @stoyan in #2852
- Blade-ify blocked.php. Also fixes white-on-white header. by @stoyan in #2853
- Better tables in graph_page_data.php by @stoyan in #2854
- Add key (legend) to testers admin by @stoyan in #2855
- Make select/unselect real buttons by @stoyan in #2857
- Unbreak under construction page and move to Blade by @stoyan in #2858
- mv graph_page_data.inc off home, update
require
s by @stoyan in #2856 - mv content colors to www/include by @stoyan in #2861
- Delete code that gets crux data in runtest by @stoyan in #2860
- Add results header to customize waterfall page by @stoyan in #2862
- fix(account): get correct plan renewal date by @jefflembeck in #2864
- Release new experimental Carbon Footprint metric and surrounding features by @scottjehl in #2867
- fix pro custom home page for logged in pro by @scottjehl in #2870
- Updates to carbon control by @scottjehl in #2874
- Carboncontrol updates by @scottjehl in #2876
- better check for api by @scottjehl in #2877
- logged in homepage on cc by @scottjehl in #2879
- better check to show nav item by @scottjehl in #2881
- fix(nginx): make trailing slash the way for carbon control by @jefflembeck in #2884
- better sort for primary host by @scottjehl in #2886
- errant markup by @scottjehl in #2888
- fix(getLocations): hide paid locations from unpaid users by @jefflembeck in #2891
- Very small text changes to carbon control by @fershad in #2892
- fix(priority): make user priority 'paid' for api by @jefflembeck in #2882
- fix docker local ffmpeg fdk-aac-dev and librav1e not found by @dbeneker in #2865
- fix(account): move notification for cc error closer to button so peop… by @jefflembeck in #2896
- Better sharing of web vitals, some cleanup by @stoyan in #2895
- Fix dark-on-dark nav in filmstrip by @stoyan in #2868
- Simplify
InsertCruxHTML()
by @stoyan in #2890 - Update cancel subscription message by @stoyan in #2899
- Prevent JS error (wptStorage already defined) by @stoyan in #2901
- Prevent JS error when no browser dropdown exists by @stoyan in #2903
- fix body overflow issue by @scottjehl in #2906
- Tweak some homepage settings by @stoyan in #2909
- Disable chromium inputs when Safari/Firefox by @stoyan in #2910
- LH runs with Edge too, no need to hide the option by @stoyan in #2912
- Remove html class account-layout from /learn by @stoyan in #2914
- privacy.php is not required anywhere by @stoyan in #2913
- Admin URL to dump test settings for debugging by @stoyan in #2911
- fix(account): logout bad clients by @jefflembeck in #2863
- Fixcert by @scottjehl in #2916
- Offer JSON in test info admin page by @stoyan in #2917
- Revert "fix(account): logout bad clients" by @jefflembeck in #2919
- Admin page to show avail browsers in a location by @stoyan in #2923
Access-Control-Allow-Origin
in exports, e.g. HAR by @stoyan in #2921- Clearer maxNavigateCount error message by @stoyan in #2926
- fix margins on header by @scottjehl in #2931
- A placeholder to remind folks of the [metric name] by @stoyan in #2934
- Fix white on white header in runtest errors by @stoyan in #2935
composer format
by @stoyan in #2937- move select form prior to table and add th by @scottjehl in #2940
- feat(flag): experiment feature flag by @jefflembeck in #2948
- fix: BUG 168255: removed fixed width from form inputs by @alectejada in #2949
- B131913 by @alectejada in #2951
- fix: BUG 131913 stop losing the filter text when filtering the test history by @alectejada in #2952
- AZU174879: Update Messaging on Page Displayed when Anonymous User Hits Limit by @claud-io in #2953
- fixed error message variable by @claud-io in #2955
- Create echo.php by @mjkozicki in #2959
- fix: BUG 168255: removed fixed width from form inputs by @alectejada in #2950
- fixed inp by @claud-io in #2966
- B131913: fix for test history not being filtered on page load by @alectejada in #2964
- removed text/tips and added mktg div by @claud-io in #2958
- Header Links Change by @claud-io in #2941
- Add Server Timing to home page by @tkadlec in #2792
- Clear cache processing by @mjkozicki in #2962
- fixed z-index issue for header menu by @claud-io in #2967
- using require_once for common.inc in lighthouse by @claud-io in #2969
- using include_once instead of require_once by @claud-io in #2971
- Updated z-index to prevent overlapping in webvitals view and filmstrip by @lbartoli79 in #2973
- Set "Minimum test duration" min value by @lbartoli79 in #2975
- Fixed custom metrics not visible by @lbartoli79 in #2974
- Update vimeo links by @mjkozicki in #2980
- Update index.php by @mjkozicki in #2982
- Fixed mispelled variables by @lbartoli79 in #2983
- navbar update by @claud-io in #2985
- Reduced metrics details z-index by @lbartoli79 in #2986
- AZD178228: Add message for custom scripts and lighthouse by @v-hclaveria in #2988
- AZD177372: hide cancel button when test starts running or is cancelled by @alectejada in #2989
- text overflow in running page by @v-hclaveria in #2990
- Character fixing by @v-hclaveria in #2992
- Overlapping text (Re-open #2993) by @v-hclaveria in #2994
- Grid lines are not displaying in Test History in Firefox Browser by @v-hclaveria in #2995
- Add message for custom scripts and lighthouse by @v-hclaveria in #3000
- Scrollable cell for firefox by @v-hclaveria in #3005
- Disabled autocomplete on country and state select boxes by @alectejada in #3009
- Text overflow running page by @claud-io in #2991
- Overlapping text by @claud-io in #3001
- Updated iPhone/iPad mobile devices by @lbartoli79 in #3004
- Fix location when there is only a single browser by @lbartoli79 in #3008
- replacing what's new with carousel by @claud-io in #3014
- Signup autofill country by @claud-io in #3017
- Add message for lighthouse by @claud-io in #3006
- Pixel device update by @lbartoli79 in #3021
- Added Galaxy S32 and Galaxy S23 Ultra by @lbartoli79 in #3024
- Revert "Overlapping text" by @claud-io in #3025
- Docker mobile devices by @lbartoli79 in #3019
- Bugfix: contact info is readonly for verified user by @alectejada in #3026
- Bugfix: added private form value to test payload by @alectejada in #3022
- Adjustment z-index account css by @v-hclaveria in #3029
- Bugfix: added js to sync country and state fields by @alectejada in #3010
- Adding script to handle menus by @v-hclaveria in #3018
- Styling adjustment on Test History for Firefox by @v-hclaveria in #3020
- Revert "Styling adjustment on Test History for Firefox" by @claud-io in #3036
- fixed ff test history issue by @claud-io in #3037
- new about content by @claud-io in #3038
- styles fixes by @claud-io in #3039
- img resize by @claud-io in #3040
- Add UI and server-side profile for lighthouse's "4G Fast" desktop pro… by @pmeenan in #3013
- get api key from http header only by @ccprn in #3046
- Updated premium location number by @lbartoli79 in #3055
- removed snyk integration by @claud-io in #3045
- Fix wptagent dockerfile by @a-venger in #3012
- Fix FFMPEG Configure in docker by @a-venger in #3011
- fixed certificate image by @claud-io in #3058
- Lighthouse treemap button fix by @Siddhantshukla814 in #3044
- Update social_meta_vars.inc to encode $pageUri by @mjkozicki in #3007
- Develop to master by @claud-io in #3059
- fix: docompare run logic by @claud-io in #3065
- added security token by @claud-io in #3067
- Disable traceroute test type by default by @lbartoli79 in #3068
- Added flags mapping for new locations by @lbartoli79 in #3078
- Blacklist agent version by @ccprn in #3080
- Embed the Perfetto UI directly by @pmeenan in #3051
- Video compare error by @lbartoli79 in #3072
- Removed "Disable JPEG XL image support" option by @lbartoli79 in #3073
- Limit Web Page Script to 25 steps by @Siddhantshukla814 in #3074
- Month , Year and CVC textfield is not displaying properly under payment details by @Siddhantshukla814 in #3075
- Update account.css by @Siddhantshukla814 in #3077
- Update insecure-requests.inc by @Siddhantshukla814 in #3084
- fixed path for cached experiments by @claud-io in #3076
- CustomWaterfall: add min functionality by @jspurlin in #3057
- handling metricSaving scores by @claud-io in #3083
- Add sample settings for profiles, web vitals profiles and lighthouse by @lbartoli79 in #3087
- Update home.php by @Siddhantshukla814 in #3085
- Add optional location ips whitelist by @lbartoli79 in #3092
- Unset key for resubmit test by @lbartoli79 in #3094
- fix low-contrast text by @stoyan in #3028
- Centralized threshold values by @Siddhantshukla814 in #3091
- Update common.inc by @Siddhantshukla814 in #3096
- remove FID by @claud-io in #3097
- removed fid (missing line) by @claud-io in #3099
- Update home by @lbartoli79 in #3101
- Enable instant test by @lbartoli79 in #3105
- removed shop link from nav by @claud-io in #3107
- limiting location agent version by @claud-io in #3111
- Add new expert plan by @lbartoli79 in #3117
- Fix cc by @lbartoli79 in #3119
- Fix expert plan button by @lbartoli79 in #3122
- Update comparison table by @lbartoli79 in #3127
- fix verification email flow by @lbartoli79 in #3126
- Change queue priorities by @lbartoli79 in #3125
- @gardness made their first contribution in #2447
- @Siddhantshukla814 made their first contribution in #2506
- @fbuecklers made their first contribution in #2795
- @fershad made their first contribution in #2892
- @dbeneker made their first contribution in #2865
- @alectejada made their first contribution in #2949
- @v-hclaveria made their first contribution in #2988
- @ccprn made their first contribution in #3046
- @a-venger made their first contribution in #3012
- @jspurlin made their first contribution in #3057
New Contributors
Full Changelog: 23.01...24.12