heap_caps_malloc(n, MALLOC_CAP_EXEC) returns non-executable RAM on ESP32-S2 (IDFGH-14012)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.2.3, and master (v5.4-dev-4076-gce6085349f)
Espressif SoC revision.
ESP32-S2
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-S2-Saola
Power Supply used.
USB
What is the expected behavior?
heap_caps_malloc(n, MALLOC_CAP_EXEC) should return NULL or memory which is executable.
What is the actual behavior?
It seems RTC FAST memory is added to the executable heap space but the address returned is the Data Bus mapping not the Instruction Bus mapping.
Steps to reproduce.

Copy the following C code into an example:

#include <stdio.h>
#include <inttypes.h>
#include "esp_memory_utils.h"
#include "esp_heap_caps.h"

void leak_pointer(void * arg)
{
    // Keep the compiler happy by leaking memory to here
}

void app_main(void)
{
    heap_caps_print_heap_info(MALLOC_CAP_EXEC);
    while (1) {
        void *p = heap_caps_malloc(2048, MALLOC_CAP_EXEC);
        printf("Alloced %p\n", p);
        if (p == NULL) {
            printf("Out of executable RAM, woohoo!\n");
            return;
        }
        if (!esp_ptr_executable(p)) {
            printf("Got non-executable pointer back :(\n");
            return;
        }
        leak_pointer(p);
    }
}

idf.py set-target esp32s2
idf.py menuconfig and set ESP_SYSTEM_MEMPROT_FEATURE to n (to allow executable heap)
idf.py flash monitor

Debug Logs.
I (23) boot: ESP-IDF v5.4-dev-4076-gce6085349f-dirty 2nd stage bootloader
I (24) boot: compile time Nov  6 2024 15:02:57
I (24) boot: chip revision: v0.0
I (26) boot: efuse block revision: v0.1
I (30) boot.esp32s2: SPI Speed      : 80MHz
I (34) boot.esp32s2: SPI Mode       : DIO
I (38) boot.esp32s2: SPI Flash Size : 2MB
I (41) boot: Enabling RNG early entropy source...
I (46) boot: Partition Table:
I (48) boot: ## Label            Usage          Type ST Offset   Length
I (55) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (61) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (68) boot:  2 factory          factory app      00 00 00010000 00100000
I (74) boot: End of partition table
I (78) esp_image: segment 0: paddr=00010020 vaddr=3f000020 size=08ef8h ( 36600) map
I (92) esp_image: segment 1: paddr=00018f20 vaddr=3ff9e010 size=0001ch (    28) load
I (93) esp_image: segment 2: paddr=00018f44 vaddr=3ffbf950 size=01bf0h (  7152) load
I (101) esp_image: segment 3: paddr=0001ab3c vaddr=40024000 size=054dch ( 21724) load
I (113) esp_image: segment 4: paddr=00020020 vaddr=40080020 size=13304h ( 78596) map
I (130) esp_image: segment 5: paddr=0003332c vaddr=400294dc size=06468h ( 25704) load
I (142) boot: Loaded app from partition at offset 0x10000
I (142) boot: Disabling RNG early entropy source...
I (152) cache: Instruction cache        : size 8KB, 4Ways, cache line size 32Byte
I (152) cache: Data cache               : size 8KB, 4Ways, cache line size 32Byte
I (167) cpu_start: Unicore app
I (174) cpu_start: Pro cpu start user code
I (174) cpu_start: cpu freq: 160000000 Hz
I (174) app_init: Application information:
I (174) app_init: Project name:     hello_world
I (178) app_init: App version:      v5.4-dev-4076-gce6085349f-dirty
I (184) app_init: Compile time:     Nov  6 2024 15:03:00
I (189) app_init: ELF file SHA256:  bea6b51e6...
I (194) app_init: ESP-IDF:          v5.4-dev-4076-gce6085349f-dirty
I (200) efuse_init: Min chip rev:     v0.0
I (204) efuse_init: Max chip rev:     v1.99
I (208) efuse_init: Chip rev:         v0.0
I (212) heap_init: Initializing. RAM available for dynamic allocation:
I (218) heap_init: At 3FFC1D58 len 0003A2A8 (232 KiB): RAM
I (223) heap_init: At 3FFFC000 len 00003A10 (14 KiB): RAM
I (228) heap_init: At 3FF9E02C len 00001FBC (7 KiB): RTCRAM
I (234) spi_flash: detected chip: generic
I (237) spi_flash: flash io: dio
W (240) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (253) main_task: Started on CPU0
I (253) main_task: Calling app_main()
Heap summary for capabilities 0x00000001:
  At 0x3ffc1d58 len 238248 free 228728 allocated 8420 min_free 228728
    largest_free_block 221184 alloc_blocks 40 free_blocks 1 total_blocks 41
  At 0x3fffc000 len 14864 free 14448 allocated 0 min_free 14448
    largest_free_block 14336 alloc_blocks 0 free_blocks 1 total_blocks 1
  At 0x3ff9e02c len 8124 free 7744 allocated 0 min_free 7744
    largest_free_block 7680 alloc_blocks 0 free_blocks 1 total_blocks 1
  Totals:
    free 250920 allocated 8420 min_free 250920 largest_free_block 221184
Alloced 0x40034290
Alloced 0x40034b14
Alloced 0x40035398
... Skip many similar lines out of output
Alloced 0x4006e5b8
Alloced 0x4006eebc
Alloced 0x3ff9e1ac
Got non-executable pointer back :(
I (493) main_task: Returned from app_main()

Done

More Information.
While running the test program above on other SoCs to see if the problem is only on ESP32-S2 I noticed this output with original ESP32 running on v5.2.3 and the master branch:
... Skip early output
I (191) app_init: Application information:
I (194) app_init: Project name:     hello_world
I (199) app_init: App version:      v5.4-dev-4076-gce6085349f-dirty
I (206) app_init: Compile time:     Nov  6 2024 15:01:23
I (212) app_init: ELF file SHA256:  9b90875fc...
I (217) app_init: ESP-IDF:          v5.4-dev-4076-gce6085349f-dirty
I (224) efuse_init: Min chip rev:     v0.0
I (229) efuse_init: Max chip rev:     v3.99
I (234) efuse_init: Chip rev:         v3.0
... Skip lines of expected output
Alloced 0x4009e7b0
Alloced 0x4009efb4
Alloced 0x4009f7b8
Alloced 0x400bf21c
Got non-executable pointer back :(
I (420) main_task: Returned from app_main()

Done

It seems like esp_ptr_executable(0x400bf21c) is false. According to the TRM this is the "Remap" region of "Internal SRAM 1", so I'm not sure if the bug here is that this address should not be returned for MALLOC_CAP_EXEC or that esp_ptr_executable() is returning false for an executable address. I can open a second issue for this if it is helpful.

Alloced 0x400bf21c
Got non-executable pointer back :(
I (420) main_task: Returned from app_main()

For this ESP32 case mentioned in the "More Information", it seems like 0x400bf21c is executable[^] so the bug is in esp_ptr_executable() returning false. Should I open a new issue for this?
[^] Verified by running the test code from #14836

Hi @projectgus, thanks for reporting this.
I found and fixed the issue. In the memory_layout.c file of the esp32s2, the IRAM starting address for the RTC entry in the soc_memory_regions array was not set properly.
Additionally, the heap component allocating functions were only checking for DIRAM memory type to return an IRAM address to the user when MALLOC_CAP_EXEC was set in the caps.
I will have a look at https://github.com/espressif/esp-idf/issues/14836 next. I thought both would be related but after briefly checking the issue on C6 you mentioned, it doesn't seem to be directly related to this issue.
Concerning https://github.com/espressif/esp-idf/issues/14837, I have an ongoing MR that makes your idea straightforward to implement. I will try to update it to make non exec heap a compile time error.
I will let you know about the status of each reported issue in their respective ticket from now on.

Hi @SoucheSouche, thanks for the very quikc follow-up and sorry it took me a little while to get back to you.
Is there any chance this fix will be backported? (We ran into it on 5.2.2 but even 5.3 would be appreciated!)

Hi @projectgus, the fix for this issue is under review.


OpenIdConnectMiddleware:  Not redirecting to Identity Provider

After upgrading from 1.0.0 to 1.1.0-preview1-final my client is no longer being redirected to the Identity Provider on initial challenge.  The result is that any request to an action secured by [Authorize] fails immediately with a 401.  I see that the handler is getting configuration from the discovery endpoint, and building the correct redirect URI to the authorize endpoint.  However, when it calls Response.Redirect in OpenIdConnectHandler.cs#367 the request is never received by my Identity Server.
After upgrading I made no changes to my middleware, which was working in 1.0.0 so I'm not sure if the latest version requires any kind of additional adjustments to my configuration.  I've tried clearing out and rebuilding all the packages from source and so far no luck.  I expect this is most likely something I'm doing wrong, but I have no idea what would have changed from 1.0.0 that would change this behavior.

Just to be sure: have you set AutomaticChallenge to true in the OpenID Connect options?

I did not have that there already, but even after setting that property the result is the same.  Regardless of whether or not I specify it I see the middleware execute the challenge for my oidc scheme.  I did not have to specify this property in 1.0.0 either.
It looks like the code is behaving almost exactly as before, but just that the call to Response.Redirect(redirectUri) just fails silently and moves on.

Please share your relevant startup code. In fiddler what does the response look like? Is there a Location header?
There was a regression here with IIS that should have been fixed for preview1. https://github.com/aspnet/IISIntegration/commit/3181c3f2e39fdf49a38bae6ea1dc606b884236e9

@Tratcher Looks the IISIntegration issue is the problem.  I only upgraded the relevant Authentication libraries from this repository to 1.1.0-preview1-final.  I did not realize I would have to upgrade any other packages.  After upgrading IISIntegration my issue is resolved, are there any other packages beyond Authentication that I should upgrade for my MVC application?  Right now I have:
Authentication:
"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0-preview1-final",
"Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.1.0-preview1-final",
"Microsoft.IdentityModel.Tokens": "5.0.1-pre-310121323",
"Microsoft.AspNetCore.Authentication": "1.1.0-preview1-final",
"Microsoft.AspNetCore.Http.Abstractions": "1.1.0-preview1-final",
"Microsoft.AspNetCore.Authorization": "1.1.0-preview1-final",
IIS
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0-preview1-final",
And went to MVC 1.0.1 for good measure, everything else is 1.0.0.

Avoid mixing versions when possible, update everything to 1.1.0-preview1.

Ok my mistake, I didn't realize all packages across aspnet were in the same release cycle.  Will keep that in mind for future upgrades!
Thanks again.


feat: Added UI, API Integration & database for Kilton the Monster Parts Merchant purchases

List of tasks that have been completed
7.1 Implement new clothes for Link
7.2 Create purchasable credits system
7.3 Enhance barter system for Halloween
7.4 Update UI for Halloween feature
7.5 Conduct QA and Testing
completed frontend UI, Integrated API's, implemented Database, and created a document for a guide.

Approved.


Connection refused from laravel framework

Issue Summary
I have been working sendgrid API for a while now and i notice that it work perfectly when i run my project in Laravel locally. But when i upload those files to the Cpanel, it create an error report from storage folder of the log directory Connection could not be established with host smtp.sendgrid.net [Connection refused #111] {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.sendgrid.net [Connection refused #111] at /home/treaconc/TreaLara/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269).
Is it a problem that is relate to the framework or it a problem from sendgrid. Or am i doing something wrong?
Even though i have follow all the documentation on sendgrid for the laravel project, i think it getting a bit wierd. The funny thing is that, it was working initially and all of a sudden this problem start coming up.

Hello @Aubynj,
Thanks for submitting a GitHub issue! We are very sorry that you are running into this problem. In order to better serve you, as this does not present itself as a library specific issue, we would like to ask that you reach out to our support team at https://support.sendgrid.com.
Thank you!
SendGrid DX Team

It might be hosting problem. I used godaddy server, they blocked smtp relay server in general. So it might be the same case. (I might be wrong). But i recommand you should dig into your cpanel server..

Thanks for helping out @rassemdev!


Fix number of channels in merge and concat methods.

If original buffer has 2 or more channels, then after merge or concat final buffer will have 1 channel. It is bad behavior)
Also in this PR I did a little optimization in merge method. Results for merge two buffers (60 seconds each):

Before: 3300 ms
After: 80 ms

@ToTheHit Awesome work man, happy to merge this and release straight away.

Thanks guys, new version 0.4.0 published and removed standardized-audio-context


Need a LocalizationsDelegate for CupertinoLocalizations for languages beyond 'en'

Deduping https://github.com/flutter/flutter/issues/13452


IndexedDB not working in React-NextJS

For whatever reason I see stuff is getting written to the zenfs IndexedDB database in Inspect Element however when the writeFileSync is removed the contents do not get loaded making me believe it is just using InMemory for the storage layer
import fs, { configure } from '@zenfs/core'
import { IndexedDB } from "@zenfs/dom"

export function TestComponent() {

    useEffect(() => {
        const loadFile = async () => {
            await configure({
                mounts: {
                    '/projects': IndexedDB,
                }
            })

            if (!fs.existsSync('/projects/test.txt')) {
                fs.writeFileSync('/projects/test.txt', 'This will persist across reloads!')
            }

            const contents = fs.readFileSync('/projects/test.txt', 'utf-8')
            console.log(contents)
        }

        loadFile()
    }, [])

    return <></>
}

I tried await configureSingle({ backend: IndexedDB }); as well and it didn't work for / path too.

Hi @afshawnlotfi, thanks for submitting an issue.
Could you please create a minimally reproducible example, without any external libraries? That will help me resolve this issue faster.

import fs, { configure } from '@zenfs/core'
import { IndexedDB } from "@zenfs/dom"

export function TestComponent() {

    useEffect(() => {
        const loadFile = async () => {
            await configure({
                mounts: {
                    '/projects': IndexedDB,
                }
            })

            if (!fs.existsSync('/projects/test.txt')) {
                fs.writeFileSync('/projects/test.txt', 'This will persist across reloads!')
            }

            const contents = fs.readFileSync('/projects/test.txt', 'utf-8')
            console.log(contents)
        }

        loadFile()
    }, [])

    return <></>
}

Sure thing here you go:
https://github.com/afshawnlotfi/zenfs-example

@afshawnlotfi, could you please create a reproduction of the bug, without any other dependencies? This code works correctly without React, so it may be an issue with how React handles the code. If it isn't possible to reproduce the bug without React, perhaps React is causing the bug (at least in part).

Here is a barebones setup with webpack, no React and still same situation: https://github.com/afshawnlotfi/zenfs-webpack
Run npm run build before and after you comment the fs.writeFileSync part and see what I mean. The path is not found.

@afshawnlotfi, please verify that the data is written to the indexed DB. You can look in devtools.

Already have, mentioned that earlier

@afshawnlotfi Thanks for your patience. I've confirmed the bug, and am investigating it now.


Upgrade to SARIF v2.1.0 RTM

Oops, merging into wrong branch.

ah, was just about to remark on this (after merging some conflicts for you :P)


"'com.github.ZieIony:...:d2aec46f48'" is only for including up to commit d2aec46f48

To include the whole master branch the dependency should be:
compile 'com.github.ZieIony:MaterialRecents:master-SNAPSHOT'

done


Document Reviewer - 'Download', 'Print', and 'Save' Updates

As a user of the Document Reviewer
I want to save a copy of the package based on my current filter criteria
so that I can export a copy of the filtered package

Assumptions & Scope
What are the assumptions for this story?
The Document Reviewer currently has a feature that allows users to 'Download', 'Print' or 'Save' their current selected file, with options to include comments and annotations, and selecting page ranges.

We do not require 'Download' and 'Print', and these can be removed. We only require the 'Save As' option, with some alterations.
Currently, the 'Save As' feature only work on a file-by-file basis. That is, you can only save a copy of the file you currently have open/expanded in the navigation (left) pane.
To make this feature more helpful, the 'Save As' feature, and the resulting file that is produced by using this feature, should be responsive to the filter criteria that has been selected in the navigation (left) pane, and only include the current files and pages that result from the filter.

For example, if you select to filter down the package by the 'Consult' page flag, and then select to 'Save As', the resulting file produced should only include pages that have the consult flag in the entire package.

Afterwards, the file to be produced can be further narrowed down by choosing a 'Page Range' option. (E.g., you can filter down the package by the 'Consult' page flag, then in the 'Save As' option you select a page range from those with the 'Consult' page flag to include in the produced file).

When client side document stitching is complete, this may become more feasible, being able to save based on the full package of files and pages, rather than just on the specific file you have open/expanded.
This will allow us to provide users flexibility in how they can produce a package, to address niche or edge cases, along with features that are yet to be developed. This will allow users to still perform their job through the Document Reviewer while features are yet to be developed / released (e.g., for consult packages and OIPC reviews). Open Information will have a separate process in the mean time.
What is IN scope?
Remove 'Print' and 'Download' options
Save/download a file based on the filter criteria and page ranges selected
Add 'Apply s.14 Redactions' option
Update 'Include Annotations' option
Formatting in the produced file
What is NOT in scope?
Document Stitching
Save and Download Redline
Save and Download Response Package
Create, save and download consult for public body
Acceptance Criteria
Scenario 1: Hamburger Menu Options

GIVEN a user is logged in to the document reviewer on a request
WHEN the user clicks on the hamburger menu option
THEN the options of 'Save As' and 'Settings' will be available
AND the options of 'Download' and 'Print' are no longer displayed

Scenario 2: Save As Option

GIVEN a user is logged in to the document reviewer on a request
AND has the hamburger menu open
WHEN the user clicks 'Save As'
THEN the 'Save As' menu will be displayed

Scenario 3: Save As - Menu Options

GIVEN a user has clicked 'Save As'
AND the 'Save As' menu has opened
THEN the menu will be displayed with the sections of 'General', 'Page Range', and 'Properties'.
AND the 'General' section will have the options to edit the file name and file type
AND the 'Page Range' section has the option to select all pages, current page, or specify pages
AND the 'Properties' section has the options to 'Include Annotations', Include Comments', and 'Apply s.14 Redactions'

Scenario 4: 'Save File' - General Functionality

GIVEN a user is in the 'Save As' menu
WHEN the user clicks 'Save File'
THEN the saved file will be downloaded in the browser
AND the file will be downloaded in the chosen file format / file name
AND the file will only include the filtered pages/files (as selected in the left pane)
AND further narrowed down based on the 'Page Range' option selected
AND, if selected, will include annotations, comments, and applied s.14 redactions

Scenario 5: Save As - 'Include Annotations'

GIVEN a user is in the 'Save As' menu
AND the user checks the existing 'Include Annotations' checkbox
WHEN the user selects 'Save File'
THEN the saved file will be downloaded in the browser
AND the saved file will show all annotations (which includes redactions)
AND redactions will have a translucent fill (as per #3652) and red boarder
AND the FOIPPA section number will be displayed in red in the top-left of the redaction box
AND other annotations will be displayed according to their existing formatting (e.g., fill or highlight colour, opacity, etc.)

Scenario 6: Save As - Select 'Apply s.14 Redactions'

GIVEN a user is in the 'Save As' menu
WHEN the user checks the new 'Apply s.14 Redactions' checkbox
THEN the checkbox will be filled with a checkmark and is selected

Scenario 7: Save As - Unselect 'Apply s.14 Redactions'

GIVEN a user is in the 'Save As' menu
WHEN the unchecks the new 'Apply s.14 Redactions' checkbox
THEN the checkmark will be removed and this option is unselected

Scenario 8: 'Apply s.14 Redactions' Saved File

GIVEN a user is in the 'Save As' menu and has checked the 'Apply s.14 Redactions' checkbox
WHEN the user clicks 'Save File'
THEN the saved file will be downloaded in the browser
AND the file will have all redaction boxes that are marked with 's.14' filled with solid white fill and red boarder
AND the FOIPPA section number will be displayed in red in the top-left of the redaction box

Scenario 9: 'Apply s.14 Redactions' and 'Include Annotations' Both Selected

GIVEN a user is in the 'Save As' menu and has checked both the 'Apply s.14 Redactions'  and 'Include Annotations' checkbox
WHEN the user clicks 'Save File'
THEN the saved file will be downloaded in the browser
AND the file will have all redaction boxes that are marked with 's.14' filled with solid white fill and a red boarder
AND the FOIPPA section number will be displayed in red in the top-left of the redaction box
AND all other redactions will be filled with translucent fill (as per #3652) and a red boarder

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
#4075
#3907
#3652
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Unsure if we still need to 'Print' option? 'Save As' performs a similar function. Thinking further, do we even need 'Download'? Will a comprehensive 'Save As' suffice?

Confirmed with can disable/remove the 'Print' and 'Download' options, and just keep 'Save As'.
This ticket will be primarily to allow OIPC Review and Consult packages to be saved and exported, according to their formatting needs.
Open Information packages will be handled through a separate process until it is built out in Mod / Document Reviewer.

@lmullane @liseandtea @m-prodan - tried to update this according to our conversation at Business Priority. This ticket is really for handling consults and OIPC review packages, and being able to save and export them (until this functionality is built later on). As discussed, Open Information will use a different process to complete their work until the OI functionality is built.

Made a slight tweak to scenario 8 - when we redact we usually dont have the red box around it either. Otherwise this looks really good - thanks Kyle


Catch exception after lstat call

lstat can fail on Windows because of file/directory permissions

Thanks a ton for contributing! We'll make sure to take a look at this as soon as we can!


add unit test for istio helper

I really like the contents of this PR!!
Furthermore the other case (not enabled) would be great to be there.

Can we also add negative boundary tests like:
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  w.WriteHeader(http.StatusUnauthorized)
}))

Can we also add negative boundary tests like:
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  w.WriteHeader(http.StatusUnauthorized)
}))

Outside the scope of this PR. Kubernetes Discovery client does not account for permissions over API Resource list per se.


MSLearn Alignment: Bicep Implementation

rationalized default network/subnets CIDRs
Jumpbox moved to spoke
subnet placeholders for Gateway and Firewall in Hub
Private DNS Zones in Hub
Add NSGs in every subnet in spoke network
Added assignment of Built in Container Apps related Azure policies - added some custom as well for demonstration
Added Diagnostics Settings where possible
added Zone Redundancy in resources that require it - give to choice to switch off to avoid errors in aread that do not support AZ
Application Gateway: Massive re-write
removed unnecessary keyvaultReader identity
Added DDoS to Gateway's public IP
rationalized bicep outputs
minor fixes
Diagram changes to reflect moficiations (subnet re-shuffling / DDoS etc)

NOTE: these changes are only for the Bicep implementation. Once finalized we will sync them with ARM implementation ("Deploy To Azure Button")

Starting review now.  Sorry for the delay, have been caught up in some other deliverables that kept me from this.

did some fixes, accepted suggestions (thanks for those).  Have a look please, and tell me if everything is OK now


Remove JetBrains.IntelliJIDEA.Edu 2022.1 to JetBrains.IntelliJIDEA.Educational 2022.1

Microsoft Reviewers: Open in CodeFlow

URL: https://download-cdn.jetbrains.com/idea/ideaIE-2022.1.exe
Status Code: 200
(Automated message - build 869)


Form controls overlapping

ℹ Computer information

PowerToys version: 0.27.0
PowerToy Utility: Powertoys Settings
Running PowerToys as Admin: Yes
Windows build number: 19041.630

📝 Provide detailed reproduction steps (if any)

Open Powertoys settings.
Select Image Resizer.
Resize setting window form.

✔ Expected result
Controls adjust size/placement to allow full visibility
❌ Actual result
Controls overlap
📷 Screenshots

We talked about this, i think the solution needs banding + have a grouping

I think this is related to #2813

agreed.  Both are actually tracked against stability.  Duping this against #2813


support multiple client online with different run id

Currently neetbox server supports multiple frontend connects to the same client, and there should be only one client running at time:

However, server should enable multiple client online for the same project id, in case of user may want to run same code with different hyper params simultaneously.

https://github.com/visualDust/neetbox/commit/e5f6c452c7b0541aef59b9eef1855062f2dc2408

#120


Backupbucket/backupentry controllers: Watch secret metadata only

How to categorize this PR?

/area control-plane
/kind enhancement
What this PR does / why we need it:
If the backupbucket and backupentry controllers are watching secrets, they should watch their metadata only to avoid caching of the complete secrets resources. On very large seeds caching secrets can consume GBs of memory.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
This is only a minor improvement, as typically these two controllers are running with IgnoreOperationAnnotation=false and in this case do not watch secrets at all.
Release note:

Backupbucket/backupentry controllers: watch secret metadata only

/assign


Adding social media links

Hi,
I wished to add links to other social media handles like Quora and WordPress (with icons). Where do I add the code for it, and how do I do that?

I solved it, apologies. In case anyone is wondering, you simply have to add the line for the concerned URL in author-profile.html and _config.yml. Add the required class like given for the other social media handles; you can see the class names on https://fontawesome.com/icons/.


Setting culture to specific module in an application

Use case
I have several modules in my project and I need to set different culture to a specific module. With the current Flutter architecture, I can set the culture to the Material app using the locale property and we need to have one material app for an application. Since my requirement is to set culture to a specific module, I tried several ways like adding two material apps (one for the entire application and another one to my module in which I need to set different culture), but this leads to several issues like due to two Material apps, each having scaffold, so the Scaffold height becomes double, etc.
In Flutter we are having Directionality widget, using this if the whole application renders in the LTR direction, for specific module/text, we can render in the RTL direction by wrapping them with the Directionality widget. So, in this way do we have any workarounds to achieve my scenario or is there any feature request (We can have a new widget to set the culture similar to the Directionality widget).

Hi @dharanidharandharmasivam,  I am quite not sure what are you referring to by  culture and module? Could you please clarify that?  Are you trying to set a separate locale for each flavor?
However, from your description, it looks more of a How to question. Please note that the issue tracker is mainly to track bugs and feature requests, If you have any questions or need help with your code, I would suggest you to please take a look at the resources available at  https://flutter.dev/community#community-grid. You may also get some help if you post it on Stack Overflow with a minimal code sample that clearly describes your problem.
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and we will reopen it.
Thank you

Hi @maheshmnj ,  I have added more information below, can you reopen this issue?
We can set the locale to the flutter application using the MaterialApp like below. In the below code, I have set the French(fr) culture to the locale property.
@override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate
      ],
      supportedLocales: const [
        Locale('en'),
        Locale('fr'),
        // ... other locales the app supports
      ],
      locale: const Locale('fr'),
      home: _MyHomePage(),
    );
  }

Here module means, I have several pages in my application, in one page I need to set different locale i.e. for example, if the whole application locale is set to French i.e. const Locale('fr'), on one page alone I need the text needs to be rendered in English i.e. const Locale('en') instead of French.
So, to achieve this I have wrapped the widget again with MaterialApp, I already have another MaterialApp on my main page, so due to the usage of two MaterialApp in the single application, I have faced several issues. And as per the guidelines mentioned here, the flutter application must have only one MaterialApp.
And we already have Directionality widget and using this, if the whole application renders with RTL rendering, if in particular page alone if I need LTR rendering, I can wrap my widgets with this Directionality widget and on setting the textDirection property as LTR, I can achieve my requirement.
In a similar way, is there any feature request for having a separate widget for setting the locale to the particular widgets alone? or do we have any workaround for this scenario?
Just for your reference, I have 3 pages in tab widgets, in first and third pages, the text needs to be rendered based on French and in the second page, the text needs to be rendered based on English. Find the screenshots below.
Page 1:

Page 2:

Page 3:

Thanks,
Dharani.

@maheshmnj , any update on this?

Thanks for the clarification @dharanidharandharmasivam, Reopening based on the above comment.

@dharanidharandharmasivam You can try using Localizations Widget which will allow you to use a separate locale in Part of a widget tree. Hope the docs helps answer your question.

@maheshmnj , thanks for your suggestion, I will check to this

I am closing this issue for now since the above solution exists.


System.LimitException: dlrs:Too many DML rows: 10001

Hi,
We are doing data load into a custom object and all our rollups are scheduled ,none of them are realtime.
we are getting the following error when doing dataload (Bulk load) :CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY
OBJ: Custom_Object__c - dlrs_Custom_ObjectTrigger: System.LimitException: dlrs:Too many DML rows: 10001 .
can you @afawcett please advise how to resolve this issue.

@venkatasatishp. I'm going to make some assumptions and you can tell me where I hit or miss.
That error comes from trying to update/insert too many rows into the database during one single transaction. Salesforce only lets you process up to 10K rows per-transaction. Normally you're dealing with batch sizes of 200 records during your bulk load but that can be multiplied.
If DLRS is solely the cause that means you would have to have 51+ active scheduled jobs all trying to push records into Salesforce for DLRS to consume and pointers to records that should be processed later.
In short there is nothing you can do if you are configured like that. You either have to disable some jobs and run full scheduled processes later, or you might want to consider setting some rollups to real-time. Depending on your situation that might perform better because it doesn't need to leave behind markers for all the records that might need to be processed later.

@aheber  My Issue is not with Scheduled Job .
My issue is happening when i am doing data load (Bulk load) to child object and none of my rollup are real-time .
The trigger need to come out of the loop if none of the rollup are real-time.
@afawcett I am hoping the trigger got a query to verify  how many scheduled or real-time . If No "Real-time" Job just come out of the trigger .   I see the load is failing on inserts not on Updates. Yesterday night we did 200 child records loaded all 200 failed with same error.

@venkatasatishp I don't think you're understanding what I'm explaining.
A DLRS job running in scheduled mode still utilizes the trigger and monitors the records for meaningful changes. When it sees a change it adds a record to the database for each DLRS job that this particular record qualified to fire a recalculation for, that needs to be processed later, this behaves as a queue for the scheduled job to know which records need to be processed when it runs. When you run in bulk it increases the number of records that need to be added to the "queue" and if it tries to add too many records (number of records * number of jobs) then it crashes all of the records in that update request, not just specific records. This is because the entire transaction tried manipulating more than 10K records (trying to insert queue records).
It is possible there is something else in your system contributing to this error but to my knowledge this is the only scenario where DLRS can cause this error.
To manage this you'll need to review your rollups and either temporarily disable some and run full calculations later, or convert some to real-time as it will actually cause less direct DML. (Scheduled mode is generally useful when you have lots and lots of sibling records or when updating the parent would cause cascading DML and you need to isolate those transactions for governor/performance reasons).
If you would like DLRS to have zero impact on your inserts then you need to run full calculations on your jobs at some interval. Setting these to Active and Scheduled doesn't alleviate the trigger or defer all possible DML as the system still keeps track of what records to process later by way of DML.

@aheber  Thank you for Confirming.  Whom can i contact @DLRS to get permission to give Salesforce access and enable debug log on DLRS Managed package and Salesforce can review it for us.

As far as I know @afawcett is the only one who can speak on behalf of DLRS.

@afawcett   Salesforce support advised us to get permission  from the DLRS so they can check the debug logs related to the package .

Please can someone help me here I'm not getting any response on this #733

@venkatasatishp i don't have anything more to add than @aheber here. If your code is doing 10k child record inserts, at minimum the overhead of an incremental schedule configured rollup will be some inserts into the tools own custom objects to queue up the rollups for later processing. All inserts in salesforce count towards 10k limit, your inserts and the tools. Your only option is to reduce the size of your batches.


[EUWE] Use pid + thread id to index into the benchmark results

https://bugzilla.redhat.com/show_bug.cgi?id=1424716
Note: This is a manual backport of:
https://github.com/ManageIQ/manageiq-gems-pending/pull/139
Forks inherit the @@realtime_by_tid and parent/child Thread.current.object_id
are equal, so we need to index into the hash with the pid too.
The following test recreates and verifies this change but because it
forks and doesn't properly bubble up exit codes, I wrote it just to
confirm the problem.
  it "doesn't get parent's realtime_block in forked child" do
    p1_result, p1_timings = Benchmark.realtime_block(:parent_task1) do
      Timecop.travel(1000)
      p2_result, p2_timings = Benchmark.realtime_block(:parent_task2) do
        Timecop.travel(500)
      end

      expect(p2_timings[:parent_task2]).to be_within(0.5).of(500)
      expect(p2_timings.keys).to eq([:parent_task2])

      pid = fork do
        c_result, c_timings = Benchmark.realtime_block(:child_task) do
          Timecop.travel(250)
        end
        expect(c_timings[:child_task]).to be_within(0.5).of(250)
        expect(c_timings.keys).to eq([:child_task])
      end
    end

    expect(p1_timings[:parent_task1]).to be_within(0.5).of(1500)
    expect(p1_timings.keys.sort).to eq([:parent_task1, :parent_task2])
  end

The tests pass because I'm not handling exit codes properly, but I
see the expectation error pop up when I roll back my code change:
/Users/joerafaniello/.gem/ruby/2.3.4/gems/rspec-support-3.5.0/lib/rspec/support.rb:87:in
`block in <module:Support>':
(RSpec::Expectations::ExpectationNotMetError)
expected: [:child_task]
     got: [:parent_task2, :child_task]

     (compared using ==)

     Diff:
     @@ -1,2 +1,2 @@
     -[:child_task]
     +[:parent_task2, :child_task]

@Fryguy please approve if this is good to go


Packet response in Android 7.0

Hi
I have a problem in Android 7.0 in Tab7304f. The packet response got after about 20 seconds. But in another tablet and android 5, packet response got after 60 ms.

My problem resolved by this: #56


Enable default kernel so no needs to use .ju. file

I think it would be great to give one the opportunity to use jupynium without using a suffix like .ju. (for lazy users). I started working on it (as I am using remote-local,  I could only work on jupynium as a python package rather than an installed nvim plugin, but I don't think it is relevant here).
As this default kernel would be user dependent I think it should be defined in ~/.jupynium/preferences.yml with a line like:
default_kernel: 'python3'
Thus multiple users of a single venv could define different default kernels. Then, we would override the found kernel_name (when processing start_sync) by reading this yaml file (if the default_kernel is defined). The advantage of such solution would be to reuse this yaml file for other customization (like replacing the percent syntax by anything).
I've implemented a potential solution but I struggle a bit on the following:
If I launch jupynium with a nvim editing test.txt it works fine, but if I close it and re-open another file, this file is ignored unless it follows the ju. syntax. (I can see, in the first case, that the file is not added to the queue as https://github.com/kiyoon/jupynium.nvim/blob/master/src/jupynium/cmds/jupynium.py#L556 is consistently empty). I couldn't find why this happens though.
Let me know if this solution would be acceptable for you and if you know what is blocking me above so I can raise a PR for it,
Thanks!

I think it would be great to give one the opportunity to use jupynium without using a suffix like .ju.

The reason *.ju.* convention exist is that neovim needs this information to activate Jupynium's syntax highlighting and other features. You can change this convention if you want, in the setup. (e.g. set it to *.py and it will work for all python files).

As this default kernel would be user dependent I think it should be defined in ~/.jupynium/preferences.yml with a line like:

Jupynium automatically detects the current conda or venv environment and try to find the right kernel that matches the $CONDA_PREFIX or something equivalent in venv. This only works correctly if you're using it locally, though, because the remote environment may have a different conda setup. I'd suggest you to follow the conda/venv installation as equally as possible in both remote and the local machine. For example, if you install conda in the same path, and give the environment name equally, it will be able to detect the correct environment and it will activate it.

The potential problem of introducing the preferences file is that there are users who use neovim setup, and there are users who use the python CLI directly. If you use it through neovim setup, all the setup in the preferences file will be ignored, confusing users. If you don't mind, you can maybe make a bash script wrapper or aliases that calls Jupynium in the customised way you want.

Hello,
Thank you for this detailed answer,
I forgot to mention the question of the $CONDA_PREFIX in the feature request, but enabling a default kernel would be to override this behavior in the following context:

Multiple users use the same virtual env
Half of them are using Python, the other half is using R,

About your second point:

The potential problem of introducing the preferences file is that there are users who use neovim setup, and there are users who use the python CLI directly. If you use it through neovim setup, all the setup in the preferences file will be ignored, confusing users.

In the case of the default kernel, the behavior wouldn't apply for both type of users as the change will be in the function and not in the call of it? If not, we can still enable the option for neovim setup as well so that it doesn't confuse the users in the end, what do you think?

I think a better way would be to add :JupyniumKernelChange [kernel name] command which wouldn't show a kernel list but it just changes kernel given the name of it. Then you can just add a keymap yourself that calls :JupyniumStartSync and :JupyniunKernelChange together. This way is cleaner than adding yet another dotfile.

I think it is a great solution, I am working on it

Note that there is already an unofficial lua function that does this.
Jupynium_kernel_change(bufnr, kernel_name)

There is no :JupyniumKernelChange command though. You can try this and let me know if it works?


move GLS tests to jest, add codecov [WIP]

[x] - jest for GLS repositories
[x] - introduce codecov
[x] - per subpackage tests/test coverage

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@24cd436). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #871   +/-   ##
=========================================
  Coverage          ?   33.52%
=========================================
  Files             ?       78
  Lines             ?     3451
  Branches          ?      742
=========================================
  Hits              ?     1157
  Misses            ?     1809
  Partials          ?      485

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 24cd436...5bb316e. Read the comment docs.

we actually already have jest and mocha running side by side!

as per codecov, we are in progress working with the codecov folks to be able to have labels for subpackages, so that the LSP libs and the codemirror mode don't look bad just because graphiql is lacking in coverage.
good idea to remove codecov from the scope.
and yeah, i felt like i was so close with codemirror-graphql, but it seems that codemirror + jsdom + jest is not an easy mix, according to my research.

@ganemone see here, we will not be able to replace mocha entirely yet

I can clean this PR up tonight after work

@Neitsch should be good to go. Left code-mirror tests as is, but changed the configuration to make codemirror-graphql the only mocha harnessed subpackage. Left codecov in place for now

@acao, looks like Travis is not passing. Would you mind checking on that first? :)

@Neitsch this happens every time i rebase! I think its because new tests keep getting added upstream using mocha

interesting, seems like legit tests failures converting new tests from to.Equal to toEqual for proper deep comparison?

Nice!


a11y review and functional refactor

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Resolves: #64, #55, #66
Summary:
Please summarize the scope of the changes you have submitted, what the intent of the work is and anything that describes the before/after state of the project.
The scope of this PR will address the manual assignment of an index attribute to manage keyboard events and pre-selected options.
This PR also addresses the remaining a11y interactions and voice-over feedback.
Demo: https://alaskaairlines-auro-menu-pr-81.surge.sh/
Type of change:
Please delete options that are not relevant.

[ ] New capability
[x] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

Sorry for adding this late, thought for sure I already put this in here.
After linking this to dropdownmenu locally, updating the eventListener to the new name and accounting for the change away from using index to make a selection I noticed the following regressions:

The selectedOption event is fired when first loading the menu even when no value is pre-selected.
Making a selection manually after load is not firing the selectedOption event
When the selectedOption event is fired it doesn't it is not sending event.target.value or displayValue. Both are necessary for dropdownmenu since dropdownmenu needs the displayValue to put into the trigger.

@jason-capsule42 dropdown menu has a dependency on menu, not the other way around. The scope of this PR is to refactor the interaction functions of menu to meet an a11y spec that the previous version did not.
After this merge, dropdown menu (which is not released) will need to be refactored.


Step/Scenario details black color

I've been looking for a while on how to change the color of the comment to the right of the steps here which is in black. Seems it's not been documented, any help?

Fixed with:
formatters:
    progress:
        output_styles:
            comment: [ gray ]


WIP: Fix throttle test

This addresses #2955 by unreverting #2962 and fixing some additional lockups.
Still to do:

[ ] Add more thorough tests
[ ] ...?

This is in progress, but opening already for comments and to check tests.

@msimberg would you have the time to look at this?

@msimberg thanks for your work on this!

@sithhell @hkaiser
Small update: as the throttle test passes and the checks pass I don't intend to change anything more on this, assuming you are happy with the changes. If bigger changes are needed I would take care of those when doing the suspension of threads/runtime as that might reveal additional problems.
A few things that could be taken care of in separate PRs (if considered useful):

Removing pus dynamically only works with work stealing (removing pu on which thread is running requires stealing). Some way of pushing work to other pus could maybe get around this.
Removing a pu can still hang when there are multiple numa domains, as cross-numa stealing is only done by first pu on each domain.
The current throttle test would fail/work wrongly if global_thread_num != virt_core + thread_offset. remove_processing_unit could return the global_thread_num of the removed pu so that one can add it back with the same global_thread_num. However, not sure if that would ever happen.

After testing this branch, I found several issues, which are solvable with the attached patch
thread_queue.txt

@sithhell please create a PR against this branch for your patch.

Update: What @sithhell found was that some tests were failing due to my changes making the scheduling loop termination criteria too relaxed (e.g. timed_thread_pool_executor_test seems to fail because it creates suspended threads and the scheduling loop exits too early). So far we have no fix so I continue looking into this (@sithhell correct me if in the meantime you've found some way around this).

Could you explain please why relaxing the exit criteria for the scheduler is necessary in order to 'fix' the throttling problem?

@hkaiser it has to do with stealing. The particular case I was seeing is:

hpx_main is scheduled to run on pu 0
hpx_main tries to remove pu 0
hpx_main gets stolen to another pu
the scheduling loop of pu 0 does not exit because hpx_main is still running and in its thread map (current master requires that terminated_items_count_ == 0 and thread_map_count == 0 before exiting)
hpx_main/remove_processing_unit is stuck waiting for the scheduling loop to end

I imagine this would happen in more general cases as well. Essentially the scheduling loop waits for work that will never be scheduled on that particular pu (unless it steals it back, which it won't do when stopping). However, as shown by the failing tests this is not a good solution.

Closing as #3046 replaces it.


Enhancement: Add Button with fullscreen mode (for huggingface space important especially)

What features would you like to see added?
Motivation:

Fullscreen-mode is more immersive, not showing the browser.
Using a private huggingface space isn't so nice to use librechat , the screen is more filled especially on mobile (see pic).

More details
Implementation:

Set the own body (not huggingface space body) with id="fullscreenElement", because that is what should be "fullscreened".

Add a <button id="fullscreenButton">Vollbild</button> e.g. beside the "new chat" button.

Add code for the fullscreen function

document.addEventListener('DOMContentLoaded', function() {
    var fullscreenButton = document.getElementById('fullscreenButton');
    var fullscreenElement = document.getElementById('fullscreenElement');

    fullscreenButton.addEventListener('click', function() {
        if (!document.fullscreenElement) {
            if (fullscreenElement.requestFullscreen) {
                fullscreenElement.requestFullscreen();
            } else if (fullscreenElement.mozRequestFullScreen) { // Firefox
                fullscreenElement.mozRequestFullScreen();
            } else if (fullscreenElement.webkitRequestFullscreen) { // Chrome, Safari und Opera
                fullscreenElement.webkitRequestFullscreen();
            } else if (fullscreenElement.msRequestFullscreen) { // Internet Explorer/Edge
                fullscreenElement.msRequestFullscreen();
            }
        } else {
            if (document.exitFullscreen) {
                document.exitFullscreen();
            } else if (document.mozCancelFullScreen) {
                document.mozCancelFullScreen();
            } else if (document.webkitExitFullscreen) {
                document.webkitExitFullscreen();
            } else if (document.msExitFullscreen) {
                document.msExitFullscreen();
            }
        }
    });
});

Which components are impacted by your request?
UI
Pictures

Code of Conduct

[X] I agree to follow this project's Code of Conduct

you can already access your deployment on HF in "fullscreen", you just need to use the proper URL
example, for our demo the url is:
embedded: https://huggingface.co/spaces/LibreChat/LibreChat
fullscreen: https://librechat-librechat.hf.space
the format is as followed:
https://username-projectname.hf.space/

you can install a PWA app on both the demo and your own LibreChat on both your phone and PC (or just press F11). also, as @fuegovic mentioned, accessing HF in fullscreen is very easy with the right URL. What might need redesigning is the top bar on mobile, I don't like it. We should definitely remove the chat title and instead place the provider and model buttons

@fuegovic No, that doesn't work with private spaces.
@berry-13 F11 isn't the same as what I mean (because it's fullscreens the full body including the huggingface top header. The proposed fullscreen function would only fullscreen the bodypart of librechat (so huggingface header wouldn't be there anymore). That PWA app part i don't understand.

What you could do is make your space public and disable registration

@DoS007 this is what I mean for PWA
https://github.com/user-attachments/assets/f9450182-4ab8-4d28-a819-8d804d300244

@fuegovic Yeah, I already disabled registration. But I wouldn't like to make it public despite that because this way it's more open for hacks for security gaps.
@berry-13 Wow, thanks for your effort :). I tried it, but it does nothing for the private space in hugging space (just a shortcut to the website and still showing with brave - and hugging face header).


Add linking for footnotes #2359

Suggested fix for issue #2359 (originally submitted as pull request #2361, I mixed up a couple git commands and that one was automatically closed.)
Adds @id within each <fo:footnote-body>. For simplicity, I used a generated ID in all cases.
Adds <fo:basic-link> around the footnote reference, whether generated or used by reference. The link goes to the ID within the footnote body.
Tested with FOP, with the sample file in #2329 (footnote with @id, footnote without).

LGTM


[C] DRY PageHeader props

@jen-castiron I think these props are correct now, except ModelListPage. Which type there do I extend to add the header props? I have this, which I don't think is right:
type ModelListPageProps<
  T extends OperationType,
  U extends PaginatedConnectionish,
  V extends Record<string, unknown> = Record<string, unknown>
> = Omit<ModelListProps<T, U, V>, "view"> &
  Pick<ModelListActionsProps, "viewOptions"> &
  Pick<HeaderProps, "headerStyle" | "hideHeader"> & {
    defaultView?: ModelListActionsProps["active"];
    buttons?: ReactNode;
  };

Thanks @jen-castiron! I do need to spend some more time in the TS docs. What should happen with the branch conflicts? Is it okay to resolve the conflicts by keeping all the imports and the nameColumn prop? Or is there a better way?

@1aurend I took a quick look at the conflicts, and that sounds about right. You'll want to rebase our branch on main, then resolve the conflicts:
git pull --rebase origin main

It will tell you there's conflicts, and that's when you can see which files have issues:
git status
...
Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add <file>..." to mark resolution)
	both modified:   components/composed/contribution/CollectionContributionList/CollectionContributionList.tsx
	both modified:   components/composed/contribution/ItemContributionList/ItemContributionList.tsx

Open those files and fix the issue, then add all changes and continue:
git add .
git rebase --continue

Once all conflicts are fixed, force push your branch:
git push -f

Then (hopefully) all checks will have passed and you'll be able to merge your changes 👍


Add CI step to publish to gitbook on merge to master

Could we do something like https://github.com/leipert/step-git-push / http://blog.wercker.com/2013/07/25/Using-wercker-to-publish-to-GitHub-pages.html to automate building the gh-pages branch only on merges to master?
We'd need to have npm available in the box (to get the gitbook cli). We should be able to override the box using the new wercker workflow pipelines
The alternative would be to use something else (travis?) to build the docs only

work started on this here https://github.com/Capgemini/kubeform/pull/92

Closing via https://github.com/Capgemini/kubeform/commit/0934e502c351f44322eb3184cd9151d051b486a7


Use assertSame instead of assertEquals

All occurrences of assertEquals have been replaced with assertSame.
Description
Assert equals coerces types if they are different whereas assert same never performs type coercion. The differences are similar to the differences between loose comparison (==) and strict comparison (===).
Motivation and context
For the same reason that strict quality (===) is always preferred over loose quality (==), assertSame should always be preferred over assertEquals because assertEquals can mask bugs and provide false positives. Having made the changes, it seems there were no such false positives, but we can only be sure since making this change.
In some cases, assertEquals was inspecting private members of objects to perform equality comparisons, such as in the following example.
https://github.com/ramsey/uuid/blob/cd4032040a750077205918c86049aa0f43d22947/tests/Rfc4122/FieldsTest.php#L216-L224
These have been made compatible with assertSame by calling the public interface methods on the objects instead.
https://github.com/ramsey/uuid/blob/7947413a76e5e5fa427198a3d14d73fbfd61de0a/tests/Guid/FieldsTest.php#L202
How has this been tested?
Ran tests locally.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING.md document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] I have run composer run-script test locally, and there were no failures or errors.

Thank you for contributing! 🎉


Add Hostinger user interview

Signed-off-by: Brian Brazil<EMAIL_ADDRESS>

Updated.


Nodes drop from map poll.

Bug description
They register correctly, but drop from map poll.
These nodes work without issues when using the TS coordination server.
Environment

OS: F38

Headscale version: RPM reports dev :-/

Tailscale version: 0.44.1

[ ] Headscale is behind a (reverse) proxy

[ ] Headscale runs in a container

To Reproduce

register nodes to headscale
systemctl restart tailscaled
tailscale status

$ tailscale status
fd7a:115c:a1e0::3 t460p-debsys         spotsnel     linux   -
fd7a:115c:a1e0::1 t460p-devsys         spotsnel     linux   -
$ tailscale status
fd7a:115c:a1e0::3 t460p-debsys         spotsnel     linux   offline
fd7a:115c:a1e0::1 t460p-devsys         spotsnel     linux   -
$ tailscale status
fd7a:115c:a1e0::3 t460p-debsys         spotsnel     linux   offline
fd7a:115c:a1e0::1 t460p-devsys         spotsnel     linux   -

# Health check:
#     - not in map poll

$ journalctl -u tailscaled
...
Jul 02 12:45:50 t460p-debsys tailscaled[956]: health("overall"): ok
Jul 02 12:46:20 t460p-debsys tailscaled[956]: health("overall"): error: not in map poll

Jul 02 12:44:56 t460p-devsys tailscaled[3520]: health("overall"): ok
Jul 02 12:45:30 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:45:35 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:45:40 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:45:45 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:45:50 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:45:52 t460p-devsys tailscaled[3520]: health("overall"): error: not in map poll
Jul 02 12:45:55 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:46:00 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...
Jul 02 12:46:01 t460p-devsys tailscaled[3520]: ping(<IP_ADDRESS>): sending disco ping to [/2tfD] t460p-debsys ...

$ headscale nodes list
ID | Hostname     | Name         | MachineKey | NodeKey | User     | IP addresses                  | Ephemeral | Last seen           | Expiration          | Online | Expired
3  | t460p-debsys | t460p-debsys | [g2o9T]    | [/2tfD] | spotsnel | <IP_ADDRESS>, fd7a:115c:a1e0::3 | false     | 2023-07-02 13:03:49 | 0001-01-01 00:00:00 | online | no
4  | t460p-devsys | t460p-devsys | [hgvC8]    | [HZpg7] | spotsnel | <IP_ADDRESS>, fd7a:115c:a1e0::1 | false     | 2023-07-02 13:03:47 | 0001-01-01 00:00:00 | online | no

I added another node and can ping both VMs without an issue. They also show as online now.
What causes not in map poll ?
Is this related to: #1501 ?

Tested in a larger setup, restarted some of the nodes. Not seeing the same problem.
I will close it until this happens again.


[PyPi] Error when getting information about docutils

Cog
PyPi
Details
The pypi command errored saying that the classifier embed value went over max length - this is because docutils has a LOT of language classifiers which causes it to hit this cap. Best option would probably be to create a menu for libraries that exceed this cap.
Traceback details (if applicable)
Exception in command 'pypi'
Traceback (most recent call last):
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "/home/ubuntu/.local/share/Red-DiscordBot/data/kreusada/cogs/CogManager/cogs/pypi/pypi.py", line 118, in pypi
    await ctx.send(**kwargs)
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/redbot/core/commands/context.py", line 93, in send
    return await super().send(content=content, **kwargs)
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/abc.py", line 1045, in send
    data = await state.http.send_files(channel.id, files=[file], allowed_mentions=allowed_mentions,
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/http.py", line 254, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In embed.fields.4.value: Must be 1024 or fewer in length.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/home/ubuntu/redenv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In embed.fields.4.value: Must be 1024 or fewer in length.

Since I have some time this weekend I'll be looking at this issue.


[Almayer] Requisitions has no power and an incorrect disposals line

Description
Title. Nothing has power, and the right-most disposals chutes don't line up.

Screenshots
The APC and wires in this picture were admin-placed

Power is fixed now, disposals line I don't think is fixed yet

fixed in next update


not uploading files for serverless versions newer than 1.32.0

I've tried to upgrade from serverless 1.32.0 to the following versions but the assets aren't being uploaded to the S3 bucket:
1.33.2
1.34.1
1.35.1
1.36.3
1.37.1
1.38.0
So 1.32.0 seems to be the latest version of serverless with which this plugin works.
Can anyone confirm that it has been using a version older than serverless 1.32.0 with serverless-s3-deploy successfully?
serverless.yml config
      "assets": {
            "auto": true,
            "targets": [{
                "bucket": "${self:custom.bundlesS3BucketName}",
                "files": [{
                    "source": "./bundles-${self:provider.stage}",
                    "globs": ["**/*.css", "**/*.css.map", "**/*.js", "**/*.js.map", "**/*.png"]
                }]
            }]
        },```

This plugin works https://github.com/k1LoW/serverless-s3-sync

I narrowed the issue down to this serverless PR breaking this plugin: https://github.com/serverless/serverless/pull/5349
This thread has some solutions for solving the problem from the plugin's end: https://github.com/marcy-terui/serverless-alexa-skills/issues/24

Whoops, my bad. I was still on 0.7.0. It looks like 0.8.0 fixed it for me.

Using serverless 1.54.0 and this issue is not appearing anymore. Going to close this issue.


LED Matrix

(It was posted before I wrote the content, sorry...)
This header file does not contain include guards, so multiple includes will result in redefinition errors.
Also, currently, the library consists only of header files.
I believe that separating it into header and source files would enhance maintainability.
This is my first time contributing to this Arduino OSS.
Are there any procedures I need to follow to contribute, or is someone else planning to address this improvement?


Multiline Find and Replace Support

Please add multi-line find and replace support, vscode is fantastic editor, it lacking this feature which makes me switch to other editors.

/Duplicate of #15727


Add the GitOps section to mkdcos

We need to create separate doc with description about GitOps repo capabilities and patterns.

The Manage GitOps page has been added to the GitOps subsection of User Guide. It describes the process of establishing the GitOps repository and outlines its benefits.


Disabling days does not work as expected when used with "weekStartsOn" option

Hi,
Let me start by saying how much I like react infinite calendar and how useful this has turned out to be. This is a life saver.
There is a minor issue here. Disabling days using "disabledDays" attribute does not work well with "weekStartsOn" attribute. Without the latter, it works fine.
I wanted to disable the weekend dates, so I initially wrote it as disabledDays = {[0, 6]}  corresponding to sun and sat days. And then I wanted my week to start on Monday, so I had added
locale={{
        weekStartsOn: 1
      }}

This does change the week's starting day but enables clicking on sundays. It does not fully disable them, and the click eventhandler is triggered.
Try this with having locale attribute on and off.

return (
    <InfiniteCalendar
      disabledDays={[0, 1, 2, 3, 4, 5, 6]}
      locale={{
        weekStartsOn: 1
      }}
    />
  );

You can see it happening in the given sandbox.
https://codesandbox.io/s/modest-sinoussi-6s85o?file=/src/index.js:263-305
Thanks.

disabledDays={[0, 1, 2, 3, 4, 5, 6, 7]}

seems to work, while disabledDays={[1, 2, 3, 4, 5, 6, 7]} leaves nov 1st enabled, but sundays disabled 🤔


 Oh dear lord.

Basic posession works
TODO:

[ ] Disappear Wraith's body/hitbox. We can try making him invincible for now.
[ ] Damage
[ ] Death/Getting Kicked back to your body. Maybe we bring his body back to wherever the NPC died.
[ ] Health Bar
[ ] Attacks
[ ] Any special abilities?

Do we want the Wraith to be able to hold an object while possessing someone? Should we end that effect if it's active?

If I decide to keep the wraith visible/vulnerable, it should have a custom animation for that.

What if the wraith was not able to attack with the NPCs, but instead was just able to use them to hide? And then the wraith would disappear when posessing someone, and when the medium trapped the wraith, it was kicked out of the NPC?

If you possess someone while holding a cube, the cube will float away because it will not be anchored to the wraith.

Also the wraith should kill the NPC when he exits.


pretrained BERT checkpoint file

Hello.
I am looking for "../BERT/checkpoint-1969000" checkpoint file, but I cannot find it.
Could you tell me where I can find it?
Thank you very much!

me too! did you manage to solve this?

I just trained BERT on my side from scratch.

Hi, how many steps did you manage to train on BERT? and did you trained with the complete dataset, a fraction of it, or another one? Did you get generation results yet?

Hi, I trained BERT for 187,000 steps with the complete dataset (maestro_magenta_s5_t3).
And evaluation result of BERT was loss = 0.9930851551848399, perplexity = tensor(2.6996) on test set.
But I paused experimenting transformer-gan (this repo) due to heavy computational cost. Instead, I am trying simpler models for music generation like 'Compound Word Transformer'.

Hi zzingae, did you find any simpler models for generating MIDI sequences with success and with lower computational cost?


[Feat] Support PythonCodesOperator and BashCodesOperator that wraps an existing python file, or some code snippets to be executed, such as the existing DJ tools.

Search before continuing 先搜索，再继续

[X] I have searched the Data-Juicer issues and found no similar feature requests. 我已经搜索了 Data-Juicer 的 issue 列表但是没有发现类似的功能需求。

Description 描述
Often, users require the integration of specific Data-Juicer tools, custom functionalities encapsulated within some helper_func.py, or some short Python scripts, such as a few lambda functions. These may not warrant the creation of a dedicated Operator due to the additional overhead involved, including subclassing, documentation, and unit testing.
To enhance flexibility and cater to diverse user needs, introducing some OPs that seamlessly incorporates existing Python files or executes code snippets would be beneficial. This approach enables users to enrich their data recipe configurations with a wider array of tools and custom code, which can be managed through a streamlined PythonCodesOperator and BashCodesOperator mechanism.
Use case 使用场景
No response
Additional 额外信息
No response
Are you willing to submit a PR for this feature? 您是否乐意为此功能提交一个 PR？

[X] Yes I'd like to help by submitting a PR! 是的！我愿意提供帮助并提交一个PR！

WIP: add basic abstraction and implementation for ScriptOP and some leaf classes such as PythonCodesOperator and BashCodesOperator, @drcege @BeachWang

This feature request has been implemented in #492 and #493 by @drcege and @BeachWang .


walkthrough: Walkthrough charts fails due to NameError: name 'matching_blocks' is not defined

One-liner
Walkthrough charts fails due to NameError: name 'matching_blocks' is not defined
Environment

Python 3.9.4
MacOS 11.6.2
Working on live

Context & details
When trying to replace the variables of dataset Learning costs, J. Doyne Farmer and François Lafond (2016) with Cost of different technologies (Farmer & Lafond (2016), 2023), I get the error:
An internal error occurred in the application
×
Traceback (most recent call last):
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/pywebio/session/threadbased.py", line 86, in main_task
    target()
  File "/Users/prosado/Documents/owid/repos/etl/walkthrough/cli.py", line 53, in <lambda>
    lambda: phase_func(run_checks=run_checks, dummy_data=dummy_data),
  File "/Users/prosado/Documents/owid/repos/etl/walkthrough/charts.py", line 64, in app
    nav.get_suggestions_and_mapping()
  File "/Users/prosado/Documents/owid/repos/etl/walkthrough/charts.py", line 367, in get_suggestions_and_mapping
    self.suggestions = find_mapping_suggestions(missing_old, missing_new, similarity_name)
  File "/Users/prosado/Documents/owid/repos/etl/etl/match_variables.py", line 323, in find_mapping_suggestions
    missing_new["similarity"] = [matching_function(old_name, new_name) for new_name in missing_new["name_new"]]
  File "/Users/prosado/Documents/owid/repos/etl/etl/match_variables.py", line 323, in <listcomp>
    missing_new["similarity"] = [matching_function(old_name, new_name) for new_name in missing_new["name_new"]]
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/fuzzywuzzy/utils.py", line 38, in decorator
    return func(*args, **kwargs)
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/fuzzywuzzy/utils.py", line 29, in decorator
    return func(*args, **kwargs)
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/fuzzywuzzy/utils.py", line 47, in decorator
    return func(*args, **kwargs)
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/fuzzywuzzy/fuzz.py", line 47, in partial_ratio
    blocks = m.get_matching_blocks()
  File "/Users/prosado/Documents/owid/repos/etl/.venv/lib/python3.9/site-packages/fuzzywuzzy/StringMatcher.py", line 58, in get_matching_blocks
    self._matching_blocks = matching_blocks(self.get_opcodes(),
NameError: name 'matching_blocks' is not defined

This should have been fixed by https://github.com/owid/etl/pull/747. Are you using the up-to-date environment? If not, run poetry install.
Let me know if this solves your issue.

Indeed, problem solved, thanks!


TaskProvider serialization support for Configuration cache

I'm trying to adapt Gradle Docker Compose plugin to the Configuration cache feature.
We have an extension that defines regular properties set by users and read by tasks, and also few TaskProvider instances that are useful for users, mainly to setup correct dependencies between tasks. Thus used in configuration phase only.
As we reference this extension from our tasks, the Configuration cache fails on error messages like cannot serialize object of type com.avast.gradle.dockercompose.tasks.ComposeBuild, a subtype of org.gradle.api.Task, as these are not supported with the configuration cache.
Expected Behavior
We are able to enable Configuration cache for projects with plugins that expose TaskProvider in their extensions.
Current Behavior
Configuration cache fails on error like cannot serialize object of type com.avast.gradle.dockercompose.tasks.ComposeBuild, a subtype of org.gradle.api.Task, as these are not supported with the configuration cache.
Context

A task holding a reference to another task will never be supported with the configuration cache. One way to fix things in the context you described would be to stop referencing your extension from your task and instead wire only the required properties.


Fix windows build

Done. Required custom build of gtest linking to the msvc c runtime the same way as the example project, ie dynamically (MD[d]). See the .github/actions/gtest-install action for how this was done


Exception when running on OCaml 4.08

Hi,
I use mdx for one of my projects (routes) and I notice that for travis builds running against 4.08 there is the following error:
- (cd _build/default && /home/opam/.opam/4.08/bin/ocaml-mdx test --direction=infer-timestamp README.md)
- ocaml-mdx-test: internal error, uncaught exception:
-                 Failure("incomplete OCaml version")

Link to the failed build: https://api.travis-ci.com/v3/job/221454058/log.txt
When i try to run the tests locally under 4.08 i don't have the same exception. The builds for ocal versions 4.05 through 4.07 also succeed (https://api.travis-ci.com/v3/job/221454057/log.txt -> build log for 4.07)
I'm not sure if this is a problem with mdx or with my test setup and i'd be happy to help debug more.
Thanks!

Can you try with #145 ? I didn't expect the OCaml version to not always be of the form x.y.z.

 For some reason i only saw this exception in the travis build. When trying to see the OCaml version in the top level on my local switch, i see "4.08.0".

Just tried a travis build with your changes, the build passes now: https://api.travis-ci.com/v3/job/221462948/log.txt

So can be closed I guess?

Closing as a fix was merged


Availabilty quick info filters plugs if power exactly matches min power from filter

Create a filter for "Minimum power x kW".
Select a charging station on the map.
Check the availability quick info. It will not include plugs with exactly x kW power - so the min value set in the filter. This can lead to "0/0" availability being shown in red if "x" is the maximum power of that charging station.

In other words: The availabilty quick info checks for "plug power > filter min power" instead of "plug power >= filter min power"
I can only confirm this bug for EnBW availabilty data. Unsure if other availability providers are affected too.
App version 1.3.3

Thanks! Should be fixed with https://github.com/johan12345/EVMap/commit/3ac7b4aaee6ebf43b92678f073ef7ea1698c17f1


NeuralDaredevil-8B-abliterated

mlabonne/NeuralDaredevil-8B-abliterated (or QuantFactory/NeuralDaredevil-8B-abliterated-GGUF) is one of the highest ranked (and currently the highest ranked uncensored) model according to this leaderboard.

Just use the search input box at the top of the website, not the one on the library/models page. You'll find two (one from me :rofl:):

https://ollama.com/lstep/neuraldaredevil-8b-abliterated
https://ollama.com/closex/neuraldaredevil-8b-abliterated


To add new feature at home page

I would like to improve the features of the home page by adding some more attractive buttons and background it is very dull to look.
assign me this issue.

First Complete issues assigned to you
https://github.com/Susmita-Dey/Sukoon/issues/40
https://github.com/Susmita-Dey/Sukoon/issues/43
https://github.com/Susmita-Dey/Sukoon/issues/47


Res folder splash and icons not working properly

I tried adding splash and icons and some how have hit an issue of it not copying the resources properly. If I run gulp --cordova "run android" the app runs properly, however the splash and icons do not copy into the platform folder and it creates a bunch of extra folders inside the root res folder as shown below. This is off the latest copy of the generator.

Relevant part of config.xml
`

`

Hi @myspivey. This is exactly how it's supposed to work. What's the problem you're having?

I guess it seems odd to create all of these extra folders outside of the ios and android folder that are specific to one platform. It greatly increases what GIT wants to pickup and add which defeats the purpose of having the default and custom folder setup. It also is building these files here, and never copying them into the build folder, it has to be done manually. I assumed that was a bug as those folders were not in .gitignore and I could not find anything to do the actual copy into the device platform desired.

Hi @myspivey, my reply is a little delayed since I've got a lot in my pipeline right now... So my reply will be brief. I hope I can still provide some clarity.
I'm still not quite sure I understand what the problem or your question is. You could give me a little more context what you're trying to achieve.
Just to be sure we're on the same page:
The purpose of the res folder is to provide different sets of icons or screens based on the --res build parameter. If you just want to add icons and splashscreens there's any easier setup: https://github.com/mwaylabs/generator-m-ionic/blob/master/docs/guides/icons_splash_screens.md#simple-example
To pick up some of your statements:

They're outside the platform folders because they get completely removed if you update the platform version and since they're on gitignore you might lose your images
it does add to git a little bit, yes
if you correctly reference these images in the config.xml they correctly become part of your build, they don't need to be copied anywhere manually.
the res/*/current folder is on gitignore https://github.com/mwaylabs/generator-m-ionic-demo/blob/master/.gitignore#L19

I guess the issue is why are they allowed to be added to git? I can just add them to ignore but as generated files, rollback does not make sense on something that is generated at build time and treated as a dynamic file being that it can shift as to what sort of build you do run. I will close this issue and I will simply add them to the gitignore on my end.


Should the default evaluation method of considerations be to multiply?

Just a thought if you have any plans for a v2 breaking change release in future, from everything I’ve read on utility ai and my own (admittedly very limited) experience, should the default evaluation strategy for considerations under a behaviour be to multiply rather than add scores? Then you have easy inbuilt vetos (any zero scoring consideration nullifies the option) and more importantly you are always dealing with a normalised score, so adding more considerations doesn’t implicitly skew the weighting of a behaviour.
Alternatively, could the behaviour have an option for its evaluation method, rather than needing to add a consideration group to set that?

I've now added the selection of the evaluation method also to the Behaviour and BehaviourGroup nodes. To keep compatibility with previous versions, the default will be SUM but there are the same choices available as with consideration groups.
I originally went with the sum with the thought that the Consideration Groups can be used to select the evaluation method if something else is needed. But as you suggest, it is better to just avoid the extra node and have the selection at the Behaviour/B.group level.
For all of you reading this: if you feel MULTIPLY should be the default evaluation choice, add a thumbs up to @madeleineostoja post and if there are many who want it that way, I'll do the switch for the next version.

Amazing, thank you!!

@JarkkoPar is the Behaviour and BehaviourGroup evaluation method feature released anywhere? Keen to try it

Not yet, but I can compile a test version during the weekend and post it here. I'm working also on the debugging overlay, so that will be included in the test version.

Here's a test build. As usual with these, please make a backup of your project and then copy the contents in to the addons/utility_ai folder. I had less time than I originally thought for testing, but hopefully everything works as expected without any issues.
This build also includes a version of the debugging overlay. If you want to try it, add a Control-node to your scene, stretch it to cover 100% of the window width. Then, in the _ready() method of the scene where you added it, add the following (assuming you named your Control-node as Control):
if OS.is_debug_build():
		AIDebuggerOverlay.add_as_child_of($Control)

And this should result in the Debug Overlay showing up in your game:

On the left side of the screen you'll see the AI structure and the weights, and the node names blinking based on what gets selected on each tick.
utility_ai_20240218_test.zip