[BUG]  when call MQTTAgent_Publish  it is necessary waiting portMAX_DELAY  in xTaskNotifyWait ..otherwhise application crash. Why?

Describe the bug
during MQTTAgent_Publish,  can happen that mqtt connection goes down (wifi is connected) and happen that the task calling the MQTTAgent_Publish is blocked waiting the Publish notification in xTaskNotifyWait( 0,  0, &ulNotification,  portMAX_DELAY ).
if this xTaskNotifyWait is changed ot some timeout like  xTaskNotifyWait( 0,  0, &ulNotification, pdMS_TO_TICKS(2000) );
I faced that the MQTTAgent_Publish fastly cause a crash as we can see in the screenshot .
who can avoid to wait portMAX_DELAY that block my task?
System information

Hardware board: ESP32-S3  /ESP32
IDE used: 5.2.2
Operating System: Windows
Code version:  69d13095924854a86510ffb0a2025589b64eb4b3  (after https://github.com/FreeRTOS/iot-reference-esp32/pull/103)
Project/Demo: temp_sub_pub_and_led_control_demo
If your project is a custom application, please add the relevant code snippet(s) in the section titled "Code to reproduce bug".

Expected behavior
i'm expecting that the MQTTAgent_Publish exit for some timeout always.
presently i can set only a timeout:  xCommandParams.blockTimeMs = waitTimeoutMsec;  that seem to be not working if the publish is already queues.
if i try to avoid the notification xTaskNotifyWait( 0,  0, &ulNotification,  portMAX_DELAY )  by commenting the line
the application fastly going in crash
there is a way to allow the Publish wait for a timeout only without crashing?
Screenshots or console output
If appropriate, please paste the console output/error log explaining the issue. If possible, include the call stack.

Steps to reproduce bug
Example:
1. "I am using project [ ... ], and have configured with [ ... ]"
2. "When run on [ ... ], I observed that [ ... ]"
Code to reproduce bug
  xCommandContext.xTaskToNotify = xTaskGetCurrentTaskHandle();

  xCommandContext.ulNotificationValue = ulPublishMessageId;
  xCommandParams.blockTimeMs = waitTimeoutMsec;
  xCommandParams.cmdCompleteCallback = prvPublishCommandCallback;
  xCommandParams.pCmdCompleteCallbackContext = &xCommandContext;

  /* To ensure ulNotification doesn't accidentally hold the expected value
     * as it is to be checked against the value sent from the callback.. */
    ulNotification = ~ulValueToNotify;

    xCommandAdded = MQTTAgent_Publish( &xGlobalMqttAgentContext,
                                       &xPublishInfo,
                                       &xCommandParams );
    configASSERT( xCommandAdded == MQTTSuccess );

    /* For QoS 1 and 2, wait for the publish acknowledgment.  For QoS0,
     * wait for the publish to be sent. */
    ESP_LOGI( TAG,
              "Task %s waiting for publish %" PRIu32 " to complete.",
              pcTaskName,
              ulValueToNotify );

    //prvWaitForCommandAcknowledgment( &ulNotification );
   xTaskNotifyWait( 0,  0, &ulNotification,  portMAX_DELAY );

//  xCommandParams.cmdCompleteCallback = prvPublishCommandCallback;

Additional context
Include any additional context relevant to the issue here.

Thanks for reporting, I'll have the team to review your findings and get back to you.

The reason for the crash you observe is -

xCommandContext is created on stack.
This context is passed to the MQTT_Agent.
MQTT Agent stores it -

https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L492
https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L362

This context is later accessed when an ACK is received for the command -

https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L688
https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L629
https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L802

If the function prvPublishToTopic, returns before the PUBACK is received, this xCommandContext created in step 1 goes out of scope and results in crash when it is later accessed during PUBACK handling. portMAX_DELAY ensures that prvPublishToTopic does not return before PUBACK is received and therefore,  xCommandContext is not accessed after gonig out of scope. If you do not want to use portMAX_DELAY, you need some other way to ensure that the  xCommandContext remains in scope till the time PUBACK is received.

The option is to queue messeges to send into a queue and use a different task for publish them. In this way the main task can continue to work.
Beside all, the publish is very slow (as already discussed in https://github.com/FreeRTOS/iot-reference-esp32/issues/44) also for QoS0 when we should expect to be very fast.

The option is to queue messeges to send into a queue and use a different task for publish them. In this way the main task can continue to work.

Note that MQTT Agent also has a queue, so this will be 2 level of indirection. Is it possible to have only task doing all the publishes?

Beside all, the publish is very slow (as already discussed in https://github.com/FreeRTOS/iot-reference-esp32/issues/44) also for QoS0 when we should expect to be very fast.

This is something that needs to be investigated. Can you try to put some logs at the following places for QoS0 -

When MQTTAgent_Publish is called - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L509.
When the command is added to the MQTT_Agent's command queue - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L529.
When the command is picked up for processing - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L569.
When the command execution is complete - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L802.
When the command completion callback is called - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L336.
When MQTTAgent_Publish  returns - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L513.

This will help us understand what part is taking more time.

Hello @aggarg
I uses these tags:
LOGW - "PLACEHOLDER_issues#112_001" : When MQTTAgent_Publish is called - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L509.
LOGW - "PLACEHOLDER_issues#112_002": When the command is added to the MQTT_Agent's command queue - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L529.
LOGW - "PLACEHOLDER_issues#112_003": When the command is picked up for processing - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L569.
LOGW - "PLACEHOLDER_issues#112_004": When the command execution is complete - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L802.
LOGW - "PLACEHOLDER_issues#112_005": When the command completion callback is called - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L336.
LOGW - "PLACEHOLDER_issues#112_006":When MQTTAgent_Publish returns - https://github.com/FreeRTOS/iot-reference-esp32/blob/main/main/demo_tasks/sub_pub_unsub_demo/sub_pub_unsub_demo.c#L513.

LOGW - "PLACEHOLDER_issues#112_007"  After the not    the wait notification " xReceivedEvent = prvWaitForEvent( xMqttEventGroup, MQTT_PUBLISH_COMMAND_COMPLETED_BIT );

as far as i can log We start at  (29252) and finish at (33472) = taking about 4 seconds
this is the relevant piece of log
PLACEHOLDER_issues#112_001:
[2024-09-01 23:06:14.192] I (26542) sub_pub_unsub_demo: Task "SubPub0" sending subscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 4
[2024-09-01 23:06:14.203] W (26552) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
[2024-09-01 23:06:14.620] W (26982) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
[2024-09-01 23:06:14.713] W (27072) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
[2024-09-01 23:06:14.719] I (27072) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
[2024-09-01 23:06:14.725] I (27072) coreMQTT: State record updated. New state=MQTTPublishDone.
[2024-09-01 23:06:14.730] W (27082) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
[2024-09-01 23:06:14.736] I (27082) temp_sub_pub_and_led_control_demo: Rx'ed ack for QoS1 publish from Tx to /filter/TempSubPubLED (P4:F0).
[2024-09-01 23:06:14.747] I (27102) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
[2024-09-01 23:06:14.758] I (27102) coreMQTT: State record updated. New state=MQTTPubAckSend.
[2024-09-01 23:06:14.763] I (27112) temp_sub_pub_and_led_control_demo: Received incoming publish message {"temperatureSensor":{ "taskName": "TempSubPubLED", "temperatureValue": 0.000000, "iteration": 3}}
[2024-09-01 23:06:16.780] W (29142) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
[2024-09-01 23:06:16.892] W (29252) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
[2024-09-01 23:06:16.898] I (29252) sub_pub_unsub_demo: Subscribe 4 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
[2024-09-01 23:06:16.904] I (29252) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 5.
[2024-09-01 23:06:16.922] W (29272) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
[2024-09-01 23:06:16.926] W (29272) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
[2024-09-01 23:06:16.931] W (29282) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
[2024-09-01 23:06:16.937] I (29292) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 5 to complete.
[2024-09-01 23:06:18.899] W (31262) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
[2024-09-01 23:06:18.905] W (31262) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
[2024-09-01 23:06:19.381] I (31742) temp_sub_pub_and_led_control_demo: Sending publish request to agent with message "{"temperatureSensor":{ "taskName": "TempSubPubLED", "temperatureValue": 0.000000, "iteration": 4}}" on topic "/filter/TempSubPubLED"
[2024-09-01 23:06:19.396] W (31752) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
[2024-09-01 23:06:19.402] I (31752) temp_sub_pub_and_led_control_demo: Task TempSubPubLED waiting for publish 4 to complete.
[2024-09-01 23:06:20.910] W (33272) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
[2024-09-01 23:06:21.099] W (33462) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
[2024-09-01 23:06:21.105] I (33462) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
[2024-09-01 23:06:21.110] I (33462) coreMQTT: State record updated. New state=MQTTPublishDone.
[2024-09-01 23:06:21.116] W (33472) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
[2024-09-01 23:06:21.126] W (33472) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
[2024-09-01 23:06:21.127] I (33482) sub_pub_unsub_demo: Publish 5 succeeded for task "SubPub0".
[2024-09-01 23:06:21.138] I (33482) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
[2024-09-01 23:06:21.143] W (33492) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007

others logs
start 27526 --> end  31706  -- 4200 msec
> I (27506) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 5.
> W (27526) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
> W (27526) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
> W (27536) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
> I (27546) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 5 to complete.
> W (29516) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
> W (29516) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
> W (31526) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
> W (31686) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
> I (31686) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
> I (31686) coreMQTT: State record updated. New state=MQTTPublishDone.
> W (31696) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
> W (31706) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
> I (31706) sub_pub_unsub_demo: Publish 5 succeeded for task "SubPub0".
> I (31706) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
> W (31726) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007

start 166776--> end  170986-- 4200 msec
> I (166776) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 29.
> W (166786) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
> W (166796) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
> W (166806) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
> I (166806) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 29 to complete.
> W (168776) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
> W (168776) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
> W (170786) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
> W (170956) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
> I (170956) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
> I (170956) coreMQTT: State record updated. New state=MQTTPublishDone.
> W (170966) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
> W (170966) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
> I (170976) sub_pub_unsub_demo: Publish 29 succeeded for task "SubPub0".
> I (170976) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
> W (170986) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007

Thank you for capturing and sharing these logs. It seems that there are multiple sub_pub tasks running which make the analysis difficult. Would you please change the number of sub_pub tasks to 1 and change the QoS to 0. Please capture the log again with these changes and share.

Hello @aggarg
yes i confim that the log has only one task: #define CONFIG_GRI_SUB_PUB_UNSUB_DEMO_NUM_TASKS_TO_CREATE 1
and all the others demo disabled
ad double check this is a new log

`ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2810,len:0x11b8
load:0x403c8700,len:0x4
load:0x403c8704,len:0xab8
load:0x403cb700,len:0x2c2c
entry 0x403c8890
I (218) cpu_start: Multicore app
I (227) cpu_start: Pro cpu start user code
I (227) cpu_start: cpu freq: 160000000 Hz
I (227) app_init: Application information:
I (230) app_init: Project name:     iot-reference-esp32c3
I (236) app_init: App version:      v202212.00-111-g6ace727-dirty
I (243) app_init: Compile time:     Sep  2 2024 00:00:36
I (249) app_init: ELF file SHA256:  90472addc...
I (254) app_init: ESP-IDF:          v5.3-dirty
I (259) efuse_init: Min chip rev:     v0.0
I (264) efuse_init: Max chip rev:     v0.99
I (269) efuse_init: Chip rev:         v0.2
I (274) heap_init: Initializing. RAM available for dynamic allocation:
I (281) heap_init: At 3FCA3010 len 00046700 (281 KiB): RAM
I (287) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM
I (293) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (299) heap_init: At 600FE100 len 00001EE8 (7 KiB): RTCRAM
I (306) spi_flash: detected chip: generic
I (310) spi_flash: flash io: dio
I (314) sleep: Configure to isolate all GPIO pins in sleep state
I (321) sleep: Enable automatic switching of GPIO sleep configuration
I (328) coexist: coex firmware version: dab85ae96
I (356) coexist: coexist rom version e7ae62f
I (356) main_task: Started on CPU0
I (366) main_task: Calling app_main()
I (366) esp_secure_cert: Pre-provisioned partition information:
I (366) esp_secure_cert: partition format: CUST_FLASH_TLV, partition name: esp_secure_cert
I (376) main:
Device Cert:
Length: 1221
-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxx
-----END CERTIFICATE-----

I (486) main:
CA Cert:
Length: 1207
-----BEGIN CERTIFICATE-----
xxxxx
-----END CERTIFICATE-----
I (596) main:
Private Key:
Length: 1676
-----BEGIN RSA PRIVATE KEY-----
xxxx
-----END RSA PRIVATE KEY-----
I (786) pp: pp rom version: e7ae62f
I (786) net80211: net80211 rom version: e7ae62f
I (796) wifi:wifi driver task: 3fcb01a8, prio:23, stack:6656, core=0
I (806) wifi:wifi firmware version: 0caa81945
I (806) wifi:wifi certification version: v7.0
I (806) wifi:config NVS flash: enabled
I (806) wifi:config nano formating: disabled
I (816) wifi:Init data frame dynamic rx buffer num: 32
I (816) wifi:Init static rx mgmt buffer num: 5
I (826) wifi:Init management short buffer num: 32
I (826) wifi:Init dynamic tx buffer num: 32
I (826) wifi:Init static tx FG buffer num: 2
I (836) wifi:Init static rx buffer size: 1600
I (836) wifi:Init static rx buffer num: 10
I (846) wifi:Init dynamic rx buffer num: 32
I (846) wifi_init: rx ba win: 6
I (846) wifi_init: accept mbox: 6
I (856) wifi_init: tcpip mbox: 32
I (856) wifi_init: udp mbox: 6
I (866) wifi_init: tcp mbox: 6
I (866) wifi_init: tcp tx win: 5760
I (866) wifi_init: tcp rx win: 5760
I (876) wifi_init: tcp mss: 1440
I (876) wifi_init: WiFi IRAM OP enabled
I (886) wifi_init: WiFi RX IRAM OP enabled
I (886) app_wifi: Already provisioned, starting Wi-Fi STA
I (896) phy_init: phy_version 680,a6008b2,Jun  4 2024,16:41:10
I (936) wifi:mode : sta (dc:da:0c:18:21:fc)
I (936) wifi:enable tsf
I (946) wifi:new:<4,0>, old:<1,0>, ap:<255,255>, sta:<4,0>, prof:1, snd_ch_cfg:0x0
I (946) wifi:state: init -> auth (0xb0)
I (956) wifi:state: auth -> assoc (0x0)
I (966) wifi:state: assoc -> run (0x10)
I (986) wifi:connected with Vodafone-XXXXXXXXX, aid = 4, channel 4, BW20, bssid = e4:8f:34:8f:1c:75
I (986) wifi:security: WPA2-PSK, phy: bgn, rssi: -49
I (986) wifi:pm start, type: 1
I (986) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us
I (996) wifi:set rx beacon pti, rx_bcn_pti: 14, bcn_timeout: 25000, mt_pti: 14, mt_time: 10000
I (1016) wifi:AP's beacon interval = 102400 us, DTIM period = 1
I (3066) wifi:idx:0 (ifx:0, e4:8f:34:8f:1c:75), tid:0, ssn:0, winSize:64
I (4006) core_mqtt_agent_manager: WiFi connected.
I (4006) app_wifi: Connected with IP Address:<IP_ADDRESS>
I (4006) esp_netif_handlers: sta ip: <IP_ADDRESS>, mask: <IP_ADDRESS>, gw: <IP_ADDRESS>
I (4016) main_task: Returned from app_main()
I (5026) core_mqtt_agent_manager: TLS connection established.
I (5286) coreMQTT: MQTT connection established with the broker.
I (5286) core_mqtt_agent_manager: Session present: 0
I (5286) sub_pub_unsub_demo: coreMQTT-Agent connected.
I (5296) core_mqtt_agent_manager: coreMQTT-Agent connected.
W (5296) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
I (5296) sub_pub_unsub_demo: Task "SubPub0" sending subscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 1
W (5316) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (7316) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (7546) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (7546) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
I (7546) sub_pub_unsub_demo: Subscribe 1 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (7556) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 2.
W (7566) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
W (7576) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (7576) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
I (7586) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 2 to complete.
W (9556) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (9556) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (11566) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
I (11656) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
I (11656) coreMQTT: State record updated. New state=MQTTPublishDone.
W (11656) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (11666) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
I (11666) sub_pub_unsub_demo: Publish 2 succeeded for task "SubPub0".
W (11676) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007
I (11686) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
I (11696) coreMQTT: State record updated. New state=MQTTPubAckSend.
I (11696) sub_pub_unsub_demo: Task "SubPub0" received: SubPub0
I (11706) sub_pub_unsub_demo: Task "SubPub0" sending unsubscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 3
W (11716) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (13716) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (13806) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (13816) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
I (13816) sub_pub_unsub_demo: Unsubscribe 3 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (13826) sub_pub_unsub_demo: Task "SubPub0" completed a loop. Delaying before next loop.
W (15826) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (15826) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (17846) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (19866) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (21886) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
I (23826) sub_pub_unsub_demo: Task "SubPub0" sending subscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 4
W (23826) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (23896) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (24126) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (24126) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
I (24126) sub_pub_unsub_demo: Subscribe 4 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (24136) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 5.
W (24146) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
W (24156) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (24156) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
I (24166) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 5 to complete.
W (26136) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (26136) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (28146) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (28306) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
I (28306) coreMQTT: Ack packet deserialized with result: MQTTSuccess.
I (28306) coreMQTT: State record updated. New state=MQTTPublishDone.
W (28316) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (28316) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
I (28326) sub_pub_unsub_demo: Publish 5 succeeded for task "SubPub0".
W (28336) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007
I (28336) coreMQTT: De-serialized incoming PUBLISH packet: DeserializerResult=MQTTSuccess.
I (28346) coreMQTT: State record updated. New state=MQTTPubAckSend.
I (28356) sub_pub_unsub_demo: Task "SubPub0" received: SubPub0
I (28356) sub_pub_unsub_demo: Task "SubPub0" sending unsubscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 6
W (28376) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (30366) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (30366) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004

just  checking with QoS= 0   --> 44836  - 40836  = 4000 msec again

I (40816) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 8.
W (40836) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001
W (40836) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (40846) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
I (40846) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 8 to complete.
W (42816) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (42816) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (44826) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (44826) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (44826) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
I (44826) sub_pub_unsub_demo: Publish 8 succeeded for task "SubPub0".
W (44836) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007

the time lost seem in the double loop into:

LOGW - "PLACEHOLDER_issues#112_003": When the command is picked up for processing - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L569.
and
LOGW - "PLACEHOLDER_issues#112_004": When the command execution is complete - https://github.com/FreeRTOS/coreMQTT-Agent/blob/main/source/core_mqtt_agent.c#L802.

#define CONFIG_GRI_SUB_PUB_UNSUB_DEMO_QOS_LEVEL 0
#define CONFIG_GRI_SUB_PUB_UNSUB_DEMO_NUM_TASKS_TO_CREATE 1

Did you change this flags manually? I think you are supposed to use idf.py menuconfig?
Can you try to increase the MQTT Agent task's priority?

i used menuconfig (project is in espress-ide )
as double check i printed now the Qos in PLACEHOLDER_issues#112_001
I (38776) sub_pub_unsub_demo: Subscribe 7 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (38786) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 8.

W (38806) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001, QoS =0
W (38806) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (38816) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
I (38816) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 8 to complete.
W (40786) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (40786) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (42796) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (42796) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (42796) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
I (42796) sub_pub_unsub_demo: Publish 8 succeeded for task "SubPub0".
W (42806) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007

Also changed the CONFIG_GRI_MQTT_AGENT_TASK_PRIORITY to 6 (using menuconfig) but the result seem the same
I (11886) sub_pub_unsub_demo: Unsubscribe 3 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (11896) sub_pub_unsub_demo: Task "SubPub0" completed a loop. Delaying before next loop.
W (13906) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (15926) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (17946) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (19966) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
I (21896) sub_pub_unsub_demo: Task "SubPub0" sending subscribe request to coreMQTT-Agent for topic filter: /filter/SubPub0 with id 4
W (21896) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (21976) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (22086) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
I (22096) sub_pub_unsub_demo: Subscribe 4 for topic filter /filter/SubPub0 succeeded for task "SubPub0".
I (22096) sub_pub_unsub_demo: Task "SubPub0" sending publish request to coreMQTT-Agent with message "SubPub0" on topic "/filter/SubPub0" with ID 5.
W (22106) sub_pub_unsub_demo: PLACEHOLDER_issues#112_001, QoS =0
W (22116) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002
W (22126) sub_pub_unsub_demo: PLACEHOLDER_issues#112_006
I (22126) sub_pub_unsub_demo: Task "SubPub0" waiting for publish 5 to complete.
W (24106) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (24106) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (24106) sub_pub_unsub_demo: PLACEHOLDER_issues#112_005
I (24106) sub_pub_unsub_demo: Publish 5 succeeded for task "SubPub0".
W (24116) sub_pub_unsub_demo: PLACEHOLDER_issues#112_007
W (24326) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_002

hello @aggarg
going deeper seem that there is a forced timeout of 2000 msec between #2 to #3 and 3# to #4

so changing recvTimeoutMs  in timeouts of
path	/iot-reference-esp32c3/components/esp-aws-iot/libraries/coreMQTT/port/network_transport/network_transport.c

line 14 from 2000 to  Timeouts_t timeouts = { .connectionTimeoutMs = 4000, .sendTimeoutMs = 10000, .recvTimeoutMs = 500/WFR 2000/ };

now the Publish take 83026 - 82026  = 1000 sec instead of 4000 msec
so it seem something related to the network_transport.c recvTimeoutMs value.

@aggarg  Why this received always have to goes in timeout?
@aggarg  is it reliabled to set it to a value like 100 msec?

here the log

I (71456) sub_pub_unsub_demo: Task "SubPub0" completed a loop. Delaying before next loop.
W (71956) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (71956) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_004
W (72476) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (72996) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (73516) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (74036) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (74556) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (75076) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (75596) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (76116) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (76636) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (77156) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (77676) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (78196) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (78716) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (79236) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (79756) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (80276) CORE_M QTT_AGENT: PLACEHOLDER_issues#112_003
W (80796) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003
W (81316) CORE_MQTT_AGENT: PLACEHOLDER_issues#112_003

going deeper seem that there is a forced timeout of 2000 msec between https://github.com/FreeRTOS/iot-reference-esp32/pull/2 to https://github.com/FreeRTOS/iot-reference-esp32/pull/3 and 3# to https://github.com/FreeRTOS/iot-reference-esp32/pull/4

Thank you for diving deep and finding that!

so it seem something related to the network_transport.c recvTimeoutMs value.
@aggarg Why this received always have to goes in timeout?
@aggarg is it reliabled to set it to a value like 100 msec?

This should be fine and this PR seems to be doing that - https://github.com/FreeRTOS/iot-reference-esp32/pull/104.
Does this PR solve your issue?

Hello. Confirmed PR  https://github.com/FreeRTOS/iot-reference-esp32/pull/104 resolve the issue.
now QoS=0 publish  take 100-200 msec max
thanks for the support

Hello. Confirmed PR https://github.com/FreeRTOS/iot-reference-esp32/pull/104 resolve the issue.
now QoS=0 publish take 100-200 msec max
thanks for the support

Thank you for doing all the debugging!


WIP: Untested: Add applyTorqueCenter

Seems to be fine in Starfall ( https://github.com/thegrb93/StarfallEx/blob/fac3127157d91e0efa92bd37040989424e15f85d/lua/starfall/libs_sh/physobj.lua#L342 )

I forgot if it behaviors differently from the regular e2 'applyTorque'. Probably need something to distinguish their differences.

The only difference I see is applyTorque is local, while ApplyTorqueCenter is in world frame
https://wiki.facepunch.com/gmod/PhysObj:ApplyTorqueCenter
IMO should just update the existing applyTorque to use ApplyTorqueCenter (converting the vector to world space)

Yeah that'd work

Raven told me that he uses applyTorque 60/80% of the time and that ApplyTorqueCenter feels much more stable especially at high rpms.

Unsurprising, the current implementation is using two ApplyForce on opposite sides of the centre of mass.
https://github.com/wiremod/wire/blob/7dc9f10a570096e7a04e0df1c8c863baa1a33f3c/lua/entities/gmod_wire_expression2/core/entity.lua#L628-L658
Unsurprising that that's not too stable.

Yah we know. That's because gmod didn't have an ApplyTorqueCenter function when that was written.

if applyTorqueCenter is more stable and/or more efficient I'd definitely be in favor of replacing the existing function and just toWorlding the vector or whatever it needs

LocalToWorldVector yeah

I forgot there's also a factor of 12*180/pi or something because torque in source is like foot degrees or something. Will have to double check.


Unable to await slotted child.updateComplete (undefined)

Description
I have an issue waiting on a child.updateComplete which is slotted. I tried the method proposed here (through issue #365) with updateSubtreeComplete(), and using event <slot @slotchange="..."></slot>, but the problem remains the same :
I don't know if updateComplete promise should be use with projected elements, but I can't find any way of doing this (waiting slotted children ready) properly. The only two ways I found are :

Using a setTimeout() in the connectedCallback() of the parent.
Each child element fires a custom dom event saying 'ready' after their own updateComplete. The parent listen to those events to retrieve child information. There's still a problem if the child fires before the parent start to listen (with projection it can happen). So with that solution I also used @property() ready: boolean on the child element in case it's ready before parent start listening.

Live Demo
I am totally unable to reproduce the issue on stackblitz, the same code works in stackblitz but not in my project ! I think what is making the difference is that I use TypeScript files. I changed dependencies to have the exact same as my project and as stated at the end of the description.
Demo : https://lit-element-example-1yomfb.stackblitz.io
Edit : https://stackblitz.com/edit/lit-element-example-1yomfb?file=index.js
Please help me on this I didn't found how to use TS files in the stackblitz example.
In the meantime I have created a github repo to reproduce the issue. Just use `npm install && npm run tsc && npm start.
Steps to Reproduce
Use a parent component like that :
import { LitElement, html, customElement } from "lit-element";
import { ChildElement } from "./child";

@customElement('my-parent')
class ParentElement extends LitElement {

    render() {
      return html`<slot></slot>`;
    }

    async connectedCallback() {
      super.connectedCallback();
      await super.updateComplete;
      let children = <ChildElement[]>Array.from(this.querySelectorAll('my-child'));
      for (let child of children) {
        // child.updateComplete -> gives undefined at this point.
        // But ok if wrapping in a setTimeout.
        console.log('child.updateComplete -> ', child.updateComplete);
        await child.updateComplete;
        // Any child property even initialized in constructor also gives undefined.
        console.log('Child property value : %s', child.prop1)
      }
    }
  }

A child component like that :
import { LitElement, html, property, customElement } from "lit-element";

@customElement('my-child')
export class ChildElement extends LitElement {
    @property()
    prop1: string;

    constructor() {
        super();
        this.prop1 = 'VALUE';
    }

    render() {
        return html`<h2>${this.prop1}</h2>`;
    }
}

And use the following code in index.html :
<my-parent>
  <my-child></my-child>
  <my-child></my-child>
</my-parent>

My tsconfig.json :
{
    "compilerOptions": {
        "sourceRoot": "src",
        "target": "es6",
        "module": "esnext",
        "sourceMap": true,
        "outDir": "dist",
        "removeComments": true,
        "moduleResolution": "node",
        "experimentalDecorators": true,
        "declaration": true,
        "preserveSymlinks": true,
        "lib": [
            "dom",
            "es2017"
        ]
    },
    "exclude": [
        "node_modules",
        "dist",
        "build"
    ]
}

Expected Results
I can access the updateComplete promise on the child element to await that the child is complete (properties readable and updated).
Actual Results
Every slotted child.updateComplete is undefined.
Browsers Affected
I'm using chrome 70 and Firefox 68, I don't know about the other browsers.

[ x] Chrome
[ x] Firefox
[ ] Edge
[ ] Safari 11
[ ] Safari 10
[ ] IE 11

Versions

lit-element: v2.2.1
webcomponents: v2.2.10

This problem has been stated in polymer slack channel. The only reason a custom element would not have LitElement properties like updateComplete is because it's not yet defined in the page (script not imported). So custom parent element should be imported after its children elements.


[Bug] [Website] An error occurred at the site link hop

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
https://dolphinscheduler.apache.org/#/en-us/docs/3.1.2/guide/installation/standalone

What you expected to happen
empty
How to reproduce
empty
Anything else
empty
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

solved by this #858


Bookstore: connect to API

Bookstore: connect to API
Hi Reviewer,

Learning objectives

Understand the concept of state management.
Use store, actions and reducers in React.
Connect React and Redux.
Connect an existing API via Redux and use the data to display something in a UI.

Description
In this project, I connected my React-Redux application to an existing API to create and remove books in a remote server.
General requirements

Made sure that there are no linter errors.
Made sure that I used correct Gitflow.
Made sure that I documented my work in a professional way.

JavaScript requirements

Followed the list of best practices for JavaScript.

Project requirements
In the previous project, I developed the add book and remove book features directly in my application using Redux and React state. Now I have refactored my code to use the Bookstore API to add and remove books.

Read the Bookstore API documentation to learn how to use the API.
Used fetch with createAsyncThunk for making API calls.
Fetched book list from Bookstore API on Books page load.

Added an Action Creator, that returns a function.
Fetched list of books.
Dispatched another action (added an action type) that will pass API response to the reducer and update the state.

Refactored my add book and remove book features to persist my changes in the server.

Changed my existing Action Creators, so they return functions.
Made changes by using API.
Dispatched an action (action type that existed before refactoring) that will update the state accordingly.

Add book and remove book works in the same way after the refactoring.
No styling is required.

Work and submission mode

I submitted this activity individually.

Appreciation

Thanks for the review, it means a lot 🙃

Thanks @Ismailco


Add registry adaptor interface and sourcer definitions

Add registry adaptor interface and sourcer definitions

Coverage decreased (-0.07%) to 56.304% when pulling abe3d37a33bf46d6d5ae83328b98886cbf44525a on steven-zou:master into 87d966e369f20c05fac62b632d82e5fa972b3819 on vmware:replication_enhancement.


[MISC] Don't use planned units for single unit cluster upgrade

Planned units are not correct for subordinate charms juju bug, so upgrade will not start on a single unit subordinate charm.

CI should get fixed once  https://github.com/canonical/charm-logdump-action/pull/9 gets merged.


Build/unit e2e tests

Implemented unit & e2e pipelines for running tests every time someone pushes/pull request

[ ] Does the PR description accurately reflect the changes made?
[ ] Do the commit messages accurately reflect the changes made?
[ ] Is the changelist for this pull request under ~200 lines? (Excepting automatically generated code and package installations)
[ ] Does the code follow the coding style guidelines that we have set up?
[ ] Does the coder include unit tests for his functions?
[ ] Does the QA who reviews the code include his unit tests for all the functions?
[ ] Is there a documentation in place if the functions is related to how users build, test, interact with, or release code?

Codecov Report

Merging #23 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #23   +/-   ##
=======================================
  Coverage   88.37%   88.37%
=======================================
  Files           1        1
  Lines         129      129
  Branches       13       13
=======================================
  Hits          114      114
  Misses          8        8
  Partials        7        7

Flag
Coverage Δ

#unittests
88.37% <ø> (ø)

Impacted Files
Coverage Δ

assets/common/js/tree.js
88.37% <ø> (ø)

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 12d17ae...ed5c7c3. Read the comment docs.

:tada: This PR is included in version 1.2.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


DNS_Poisoner.ino Does not Work.

DNS_Poisoner.ino Does not Work on my windows 10 machine. it opens the administrator privilege asking menu and since that nothing happens and my hosts file doesnt get changed. i'll be glad to let me fix it after you confirm this issue exists.

cause it`s trying to send keystroke to open "cmd" as an admin , and to be able to changes the host file , you should have an administrator privilege ,
DigiKeyboard.sendKeyStroke(0);
//This opens an administrator command prompt   <<<<<<<<<<<<<<<
DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
therefore you could try any privilege escalation vulnerabilities , or use a hardware keylogger , to get admin password , to be able to break into admin user on the pc , or use the linux boot , or even try another way , for example in verci-spy-system , use disable UAC ,
to disable UAC
Open "CMD" as Administrator
then type the command below
"C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f"

cause it`s trying to send keystroke to open "cmd" as an admin , and to be able to changes the host file , you should have an administrator privilege , DigiKeyboard.sendKeyStroke(0); //This opens an administrator command prompt <<<<<<<<<<<<<<< DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
therefore you could try any privilege escalation vulnerabilities , or use a hardware keylogger , to get admin password , to be able to break into admin user on the pc , or use the linux boot , or even try another way , for example in verci-spy-system , use disable UAC , to disable UAC Open "CMD" as Administrator then type the command below
"C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f"

Thanks for your response. You did not get what i said at all.


Setup example with sdk-java

Setup example with sdk java and test it's correctly working with lambda.

@pcholakov has this been done?

Not quite but very close! PR incoming – I worked on it on Friday but never posted an update to the issue.
What's included:

add a new kotlin-cdk-lambda example to https://github.com/restatedev/examples
trivial hello-world code
based on the CDK code in https://github.com/restatedev/restate-holiday but without the self-hosted Restate+EC2 stack

Thanks for the update @pcholakov.

https://github.com/restatedev/examples/pull/50 - @slinkydeveloper thanks for the feedback!

https://github.com/restatedev/examples/pull/50 is just missing the update to the final artifact versions from the public maven repo but is otherwise ready for review.


Support HTTP_PROXY

Support of HTTP proxy (on backend services) is a critical component of a HTTP client.
It is a simple abstraction to implement using http(s)-proxy-agent libraries, https://github.com/gajus/xfetch/blob/fe4b5a6c258fedc6d28f873368d7e06ea625b6bc/src/index.js#L99-L109.

Is there any way to get this support with the standard fetch API?
If not, is passing in a custom fetch function a good solution for you?

Is there any way to get this support with the standard fetch API?

No.

If not, is passing in a custom fetch function a good solution for you?

Yes.

@gajus is there anything you need beyond the current ability to pass in a custom fetch function to integrate your xfetch library?

If that is a good solution, it would be great to add some documentation about how to use that!

@gajus is there anything you need beyond the current ability to pass in a custom fetch function to integrate your xfetch library?

Just added it to my project – it works great.

If that is a good solution, it would be great to add some documentation about how to use that!

Do you need help with an example showing how to setup HTTP_PROXY with node-fetch?

@gajus yeah a PR to add an example about that in the README would be awesome!

@gajus I'm going to close this issue, since it seems we've come to a solution with passing a custom solution. It would be incredible if you add an example into the docs folder for using HTTP_PROXY! Please let me know if you want any support.

Sorry guys, I am completely overloaded the past 2 months. I have this one on personal Trello board.


Target reticle

For combat and edit modes.

It's not hooked up yet; merging should have no effect.


[api] update message API to create message with priority

@abtink @jwhui Could you give me comments about this PR at you convenience?


Run arbitrary main in scala feature has been broken

Hi,
The ability to right click any main in a scala_library and run it has been broken recently. Unfortunately it wasn't recently enough so it was before the fine grain commits and we don't know which commit did it.
The current situation is that the run configuration is created with a correct before task (I see from the console the right _deploy jar is built) but then the run configuration is somehow configured incorrectly.
I'd love to contribute an e2e for this to cover future regression but not sure where to start.
@jin @brendandouglas would you accept an e2e for this feature? If so can you share a few pointers?
Thanks!

This seems to fail finding artifact after this change:
https://github.com/bazelbuild/intellij/commit/98d0504fa70b3536184f610f5cee00391f772543#diff-c924e38cec968aa15f096048cb42b57fR185

@brendandouglas @jin @liucijus found that if we revert that one line the feature goes back to working. Would you be open to a PR reverting this?
We'd still love adding a test to protect from such a regression if you can point us towards where

@ittaiz @liucijus can you provide a Scala repro example for this? For future issue reports, it will really help us if you can provide Scala repro projects as we don't really have expertise on the language.

https://github.com/liucijus/bazel-scala-example can be used to reproduce the problem:
Import Bazel project, unselect scala in project view then click on the green run arrow next to Main class in com.example.Main.
Expected: runs and prints "Hello!"
Actual: Red notification "Failed to find deployable jar when building //:mainlib"

@jin, FYI, I had problems importing example project on custom build from master source: https://github.com/bazelbuild/intellij/issues/1183

Thanks, @jin!


Issue with CI : "safe to test" label isnt running as expected

Describe the bug
Adding a "safe to test" label isnt running the CI tests for users with no write access to the astro-sdk repo. For example, take a look at https://github.com/astronomer/astro-sdk/pull/1144
Version

Astro: [e.g. 0.6.0]
OS: [eg. Debian]

To Reproduce
Steps to reproduce the behavior:

Write the DAG  '...'
Create connection '....'
Run using  '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Codecov is also not running when this label is added. Need to investigate this.

This is done


Use Query offset in raw query, fix file name of local cluster

What does this PR change?

This PR re applies offset env variable to prom querys and removes a leading space which was causing local cluster infor to not load from the file it is one.

Does this PR relate to any other PRs?

How will this PR impact users?

Does this PR address any GitHub or Zendesk issues?

Closes ...

How was this PR tested?

Tested on hosted cluster

Does this PR require changes to documentation?

Have you labeled this PR and its corresponding Issue as "next release" if it should be part of the next Kubecost release? If not, why not?

So removing the allocation context thing doesn't seem to cause a problem but this change in general seems to be causing an issue with hourly stores for both asset and allocation.

So removing the allocation context thing doesn't seem to cause a problem but this change in general seems to be causing an issue with hourly stores for both asset and allocation.

2022-07-02T00:25:52.443994606Z WRN Asset ETL: disk 'pvc-39407696-6052-4542-8cf4-bab6ac4811ab' start outside window: 2022-06-30T21:00:00 not in [2022-07-01T00:00:00, 2022-07-02T00:00:00]

2022-07-02T00:25:52.444024089Z WRN Asset ETL: disk 'pvc-214b2763-76d3-4694-be00-eb60db029bb9' start outside window: 2022-06-30T21:00:00 not in [2022-07-01T00:00:00, 2022-07-02T00:00:00]

2022-07-02T00:25:52.44406299Z WRN Asset ETL: disk 'pvc-8c7e7657-0d85-4a0a-953b-c39c1a08a511' start outside window: 2022-06-30T21:00:00 not in [2022-07-01T00:00:00, 2022-07-02T00:00:00]

2022-07-02T00:25:52.444090963Z WRN Asset ETL: disk 'pvc-7f605132-c503-437e-8c11-c015b0dec308' start outside window: 2022-06-30T21:00:00 not in [2022-07-01T00:00:00, 2022-07-02T00:00:00]

2022-07-02T00:25:52.444119051Z WRN Asset ETL: disk 'pvc-9d0c11ed-eaee-4c0f-af7a-d8724b1c824a' start outside window: 2022-06-30T21:00:00 not in [2022-07-01T00:00:00, 2022-07-02T00:00:00]

...

Looking into it

I guess this is because we query a time period by setting offset, the time offset parameter offsets it further. It seems like it wouldn't matter since it's relative times. It does seem like it could maybe be a problem if we're reading time stamps directly from the prom metrics query results.

@Sean-Holcomb Are we still aiming to get this into v1.96?

@michaelmdresser @teevans Sean has a solution and is working with Bolt on the details.  Would keep an eye on this PR tomorrow.


Fix notebook diff editor dispose

This PR fixes https://github.com/microsoft/vscode/issues/127738#issuecomment-873216177
NotebookDiffEditorInput now inherits from base DiffEditorInput, it should not dispose the editor models resolved by original and modified editor inputs explicitly. The original and modified editor inputs know how to dispose the ref of the text models correctly.

@roblourens thanks!


SQLSRV - varchar output parameters are always declared as varchar(max)

Just started to migrate my projects from PHP 5.6/Freetds driver to PHP 7.3.8/SQLSRV laters driver (5.6.1), Odbc 17. The SQL Server version is 2008 R2 SP2.
Noticed that the driver always declares varchar(n) output parameters as varchar(max), althout fixed char(n) ouput parameters are declared correctly.

Please provide a repro script. Just so you know, as indicated in our documentation for retrieving output parameters,

Data truncation can occur when stream types such as SQLSRV_SQLTYPE_VARCHAR('max') are used as output parameters. Stream types are not supported as output parameters. For non-stream types, data truncation can occur if the length of the output parameter is not specified or if the specified length is not sufficiently large for the output parameter.

No, I mean the following: if I call a procedure with a varchar(n) output parameter, in SQL Server Profiler this parameter is declared as varchar(max).
My function in php:
function get_city($city_id)
{
global $linkid;
$city_id=intval($city_id);
$c='';
if ($stmt=sqlsrv_query($linkid,'{CALL [dbo].[get_city] (?,?)}',array(array($city_id),
array(&$c,SQLSRV_PARAM_OUT,SQLSRV_PHPTYPE_STRING(SQLSRV_ENC),SQLSRV_SQLTYPE_VARCHAR(50))))) sqlsrv_free_stmt($stmt);
return $c;
}
The SQL Server Profiler output:
declare @p2 varchar(max)
set @p2='Иркутск'
exec [dbo].[get_city] 2,@p2 output
select @p2

Interesting. If it is by design, then why specify the length of parameters at all (SQLSRV_SQLTYPE_VARCHAR(length))? And in SQL Server, does it make no difference with what length to declare a variable?

Closing this issue @george-slastnoy. Please feel free to reopen if necessary.


Move AreDirsEqual to testutils package

Implementation PR
No response
Reference Issues
No response
Summary
The AreDirsEqual function was added in:
https://github.com/facebookincubator/TTPForge/pull/467
Experiment with the following as a training task:

Move the AreDirsEqual function to the testutils package and ensure that the existing tests which use it still pass
Add some unit tests for AreDirsEqual itself

Basic Example
N/A
Drawbacks
N/A
Unresolved questions
No response

https://github.com/facebookincubator/TTPForge/pull/484


feat: get flair selections for subreddit

Subreddit#getLinkFlairTemplates does now have ability to get all flair templates if no linkId was given

Oh wow thanks! Are both of the changes merged? And is it also released?
Thank you!!!
On Sat, May 15, 2021, 8:29 AM Eric Gustavsson @.***>
wrote:

Merged #317 https://github.com/not-an-aardvark/snoowrap/pull/317 into
master.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/not-an-aardvark/snoowrap/pull/317#event-4749376267,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AT2N3MDJF6YZU3HR2FS45KTTNW57TANCNFSM43REU5ZA
.

Happy coding! Feel free to open an issue if you find any bugs


Automate validation of simulator containers within submission GitHub action workflow

I outlined an issue-based workflow for accepting contributions of simulation tools.
Validation of the container needs to be incorporated here: https://github.com/biosimulations/Biosimulations_utils/blob/align-with-api/Biosimulations_utils/ci_actions/validate_commit_simulator.py#L41
This should use the Biosimulations_utils.simulator.testing module.

The workflow now pulls the image -- this checks that the image URL is valid.
The workflow calls the validation suite. However, this needs updating.
Once the validation suite is updated, the action just needs to be tested.

Move to biosimulators, biosimulators-test-suite repos


Refactor usages of unsafe

There are usages of unsafe which could be made safe
https://github.com/microsoft/retina/blob/078d15b3612dc2abacd77b01dc9e6413dd3dbb2a/pkg/utils/utils_linux.go#L41
may be refactored as
func htons(i uint16) uint16 {
  b := make([]byte, 2)
  binary.BigEndian.PutUint16(b, i)
  return binary.BigEndian.Uint16(b)
}

Hi, could you please assign this issue to me?

@Troy-Butler Assigned the issue to you.


All Cards Features and Ability to Move in Lightyears

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

379 of 379 (100.0%)  changed or added relevant lines in 19 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.6%) to 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.6%

Covered Lines:
773

Relevant Lines:
773

💛  - Coveralls


Different external swear word files aren't allowed

Since the external swear word files are stored in local storage with the same key "localSwears" it is not possible to use different external swear words files in the same browser/host name. I have fixed this on a local branch with
...

                data = [],
                localSwearsKey = 'localSwears' + options.externalSwears;

            if (options.externalSwears !== null) {
                if (localStorageIsEnabled) {
                    if (localStorage.getItem(localSwearsKey) === null) {
                        // stringify the array so that it can be stored in local storage
                        localStorage.setItem(localSwearsKey, JSON.stringify(readJsonFromController(options.externalSwears)));
                    }
                    badWords = JSON.parse(localStorage.getItem(localSwearsKey));
                } else {

...

in jquery.ProfanityFilter.js

This looks good, would you also consider adding a PR on this as well?

Sure, just give me the access rights @ChaseFlorell

It's just a pull request.
Fork the repo to your own account.
Make the changes
Submit a PR.

Ah ok, I'll try that, thanks. New to this process :)

#23 closes this issue.

Actually https://github.com/ChaseFlorell/jQuery.ProfanityFilter/pull/24 closes this issue

My Mistake.
Always good to add it in the PR message... I just overlooked it.


Important note about Bower and the asset plugin

In yii site a new news released: Important note about Bower and the asset plugin
but in yii2 guide in installation section link of bower assets is old
http://www.yiiframework.com/doc-2.0/guide-start-installation.html :
composer global require "fxp/composer-asset-plugin:^1.3.1"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

Thank you for your note, but the latest version 1.4.2 satisfies constraint ^1.3.1, so everything should work smoothly.

We've raised this to 1.4.1 a few days ago.


Add/Delete individual global variables

Global variables is your place to stick extra bits of information you might need in your workflows. We're only intending to have one table of them, but that table should be modifiable.
Users should have the ability to add a new key:value pair and set the type of the value (see FireCloud for the list of available types). Users should also have the ability to remove one or more rows. Removing row(s) should trigger an 'are you sure' confirmation.
Only workspace WRITERs or OWNERs should be able to perform these actions. Otherwise the affordances should be greyed out with the message (as hovertext) "You do not have access modify data in this workspace." Note- we're going to put a link here to request access. Separate story.

Interaction design for this is shown in the rolling UX deck and approved by Brad. See speaker notes for details.


BACKLOG-20529 Allow header to shrink

JIRA

https://jira.jahia.org/browse/BACKLOG-20529
Description
Allow header to shrink. Changes in CE and PC have already ben merged in. We were waiting for release of jContent to merge these changes.

After discussion with felix, the MenuLabelActionComponent should actually be in moonstone - it should be a MenuItem variant="title"

moonstone upgraded, included some feedbacks from @ffffffelix regarding layouts and buttons


OpenAI Compatible API returning "429 status code (no body)"

I am using a custom Open AI compatible proxy with no api key (i put in "noop"). It works fine using "continue" vscode extension.
I don't really understand why is claude dev not making any requests but simply says that request has failed

Getting the same issue, api works with aider and continue but not ClaudeDev

I'm using openai's node sdk under the hood, it's working fine for most APIs so I'm not sure what's causing this issue. If anybody has insight pls share. Gonna keep this issue open and on my radar if I find a fix

I saw a video on using Hyperbolic's API and tried to do the same, but it didn't work out for me even though I did the exact same steps?
Video

我使用了源码构建来观测请求的输入和输出，根据实际的情况，我们需要去除createParams中的tools 以及tool_choice两个参数项，这样opai相关的模型就可以使用了，但由于缺少了工具，后续的ask_followup_question会进入错误计数（consecutiveMistakeCount++），导致抛出异常

Same as me, I got 400 status code (no body). Not sure whether it's because I used Clause Dev behind a proxy.

same here, any fix?

same error 429 with Azure AI

I have the update to 2.08 but i am getting this messge for preview and mini -  400 Unsupported value: 'temperature' does not support 0 with this model. Only the default (1) value is supported.

This is working now on v2.15. Thanks for fixing!

I saw a video on using Hyperbolic's API and tried to do the same, but it didn't work out for me even though I did the exact same steps?
Video

Not sure if already got it to work, but resetting the API key did the trick for me.


very slow SELECT when vertex include quite populated embedded set

System: OrientDB v 2.1.16, Python 3.4, pyorient, Gentoo kernel 4.5.1, i5-6400, 16GB RAM, 2TB HDD
Consider class with one embeddedset property:
CREATE VERTEX TestClass
CREATE PROPERTY TestClass.Name string
CREATE INDEX TestClass.Name unique
CREATE PROPERTY numbers embeddedset integer
When creating new vertex of TestClass, numbers are populated by 65000 items (say 1..65000). Then after I do simple select from TestClass by name:
SELECT FROM TestClass WHERE Name = 'somename'
query takes about 1.7 seconds to complete, which is extremly slow. But when I exclude embedded set from result:
SELECT expand(@this.exclude('numbers')) FROM TestClass WHERE Name = 'somename'
query takes about 0.01 seconds, which looks ok.
Is there any reason, why is simple select returning vertex with populate embeddedset soo slow ?

Hi @karel-un
It seems to be a problem of record encoding/decoding. Could you please try to execute the same query on OrientDB Studio with an EXPLAIN? It will give you information about OrientDB internal performance for that query
Thanks
Luigi

Hi @luigidellaquila
From console everything looks fine, but exactly the same SELECT FROM TestClass WHERE name = 'somename' via pyorient is slow. EXPLAIN doesnt get through pyorient, so I cant provide pyorient EXPLAIN result here. On pyorient page there is mentioned that pyorient uses OrientDB binary protocol. Could this be a problem or should I repost issue on pyorient project ?
Thanks
Karel
orientdb {db=test}> select from TestClass where name = 'somename'

----+-----+---------+--------+-------
#   |@RID |@CLASS   |name    |numbers
----+-----+---------+--------+-------
0   |#11:0|TestClass|somename|[64999]
----+-----+---------+--------+-------

1 item(s) found. Query executed in 0.004 sec(s).
orientdb {db=test}> select expand(@this.exclude('numbers')) from TestClass where name = 'somename'

----+-----+---------+--------
#   |@RID |@CLASS   |name
----+-----+---------+--------
0   |#11:0|TestClass|somename
----+-----+---------+--------

1 item(s) found. Query executed in 0.014 sec(s).
orientdb {db=test}> select expand(@this) from TestClass where name = 'somename'

----+-----+---------+--------+-------
#   |@RID |@CLASS   |name    |numbers
----+-----+---------+--------+-------
0   |#11:0|TestClass|somename|[64999]
----+-----+---------+--------+-------

1 item(s) found. Query executed in 0.012 sec(s).
orientdb {db=test}> explain select from TestClass where name = 'somename'

Profiled command '{documentReads:1,fullySortedByIndex:false,compositeIndexUsed:1,current:#11:0,documentAnalyzedCompatibleClass:1,recordReads:1,involvedIndexes:[1],limit:-1,fetchingFromTargetElapsed:0,indexIsUsedInOrderBy:false,evaluated:1,elapsed:1.294433,resultType:collection,resultSize:1}' in 0,003000 sec(s):
{"@type":"d","@version":0,"documentReads":1,"fullySortedByIndex":false,"compositeIndexUsed":1,"current":"#11:0","documentAnalyzedCompatibleClass":1,"recordReads":1,"involvedIndexes":["TestClass.name"],"limit":-1,"fetchingFromTargetElapsed":0,"indexIsUsedInOrderBy":false,"evaluated":1,"elapsed":1.294433,"resultType":"collection","resultSize":1,"@fieldTypes":"documentReads=l,compositeIndexUsed=l,current=x,documentAnalyzedCompatibleClass=l,recordReads=l,involvedIndexes=e,fetchingFromTargetElapsed=l,evaluated=l,elapsed=f"}

Hi @karel-un
Yes, both pyorient and the console use the binary protocol, so the problem is not there. The only difference here is on the driver, so I suspect the problem is there
Thanks
Luigi

Issue moved to pyorient:
https://github.com/mogui/pyorient/issues/191
Thanks for help
Karel


Allow discarding notifications

In some rare cases, only the latest version of a message is useful, so it's not important to preserve messages that are currently being retried.
Concerns

This might be a micro-optimization, depending on the amount of expected messages that will be sent while a target isn't ready
The retry logic is handled by p-retry and it might not be easy to check whether a message is currently in queue. Maybe an AbortSignal could be used to automatically cancel any messages in queue

Prior art
Discarding logic:
https://github.com/pixiebrix/pixiebrix-extension/blob/main/src/actionPanel/native.tsx#L167:L167
Used as a notification only:
https://github.com/pixiebrix/pixiebrix-extension/blob/ea335a13e28a8c63ab1c73a6e4c2c2ba27a65da9/src/background/browserAction.ts#L150-L158

I would put this as low priority — I haven't seen the overhead for the only current usage have any impact on performance


prompts/alignment_video.txt is missing

same as title

My bad. Just updated the video_llama_stage2_finetune.yaml.


Allow hot reload to be triggered from Xcode console without "flutter attach"

This would be particularly useful for add-to-app.
Maybe we could teach the engine to interpret SIGUSR1 or SIGUSR2 signals as hot reload, and document how to send that signal with lldb via process signal SIGUSR1?

How do you run the compiler without a flutter tool instance running somewhere?

How do you run the compiler without a flutter tool instance running somewhere?

You're right the sources to reload need to get there somehow.  This feature request doesn't make sense. 😛


wallet inscribe --destination accepts addresses from other chains

I just made an inscription on regtest with a --destination to a mainnet address. The address was silently converted to a regtest address. This should probably be an error since it can result in loss of funds.
ord 0.6.1

Nice find! Just opened #2189 with a fix.


Zookeeper Example on Minikube missing Memory Requirements

Running zookeper example on the minikube started with the default memory options results in:
kubectl get pod
NAME      READY   STATUS    RESTARTS   AGE
zk-zk-0   1/1     Running   0          7m7s
zk-zk-1   0/1     Pending   0          7m7s
zk-zk-2   0/1     Pending   0          7m7s

Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  105s (x5 over 106s)  default-scheduler  pod has unbound immediate PersistentVolumeClaims
  Warning  FailedScheduling  97s (x20 over 105s)  default-scheduler  0/1 nodes are available: 1 Insufficient memory.

Suggestion: document memory requirements for minikube environment. For example
minikube start --memory 4096, etc.

Hi @ichekrygin! Thanks for this. Agreed, we usually start in dev with 4-8GB of RAM and 4 cores. We've been moving pretty fast and have been trying to start shaping things up.
We'd love to welcome you as a contributor to submit a docs PR for this. Shortly, we'll also be getting some community meetings together to start doing more planning for this, and all involvement is welcome.
If not, we'll get this fixed in the docs - but let us know! Thanks again.


Fix arg type mapping for pod args

This is a fix for the patch in #105

Tested on Release and Debug builds
LGTM


Make trace logging configurable

Enabling and disabling trace logging should be possible with configuration options. The output should also be structured, and generally be treated as a feature, not as something to be deleted after getting things working.

I'm going to close this, in favor of more focused issues around particular issues.


Write unit tests for module manager

Do it! :)

Please guys :D @tobiscr @adityabhatia why is this even an issue in progress


refactor constants for portal wire message limits

What was wrong?
fixes #523
How was it fixed?

move constants for portal wire message limits to top of overlay_service.rs
renaming:

from MAX_NODES_SIZE to MAX_PORTAL_NODES_ENRS_SIZE
from MAX_CONTENT_NODES_SIZE to MAX_PORTAL_CONTENT_ENRS_SIZE

add constant for MAX_PORTAL_CONTENT_CONTENT_SIZE
use MAX_PORTAL_CONTENT_CONTENT_SIZE when constructing a portal content response to determine whether uTP transmission is necessary
the following values were changed:

discv5 talk request overhead: from 103 to 109
portal nodes enrs overhead: from 2 to 6
portal content enrs overhead: from 5 to 6

To-Do

[ ] Add entry to the release notes (may forgo for trivial changes)
[ ] Clean up commit history

it would be appreciated if someone could sanity check the SSZ overhead calculations

How do we feel about moving those constants to a separate file inside the portalnet crate?

I don't mind doing that, but where else would the constants be used? if the only use is within OverlayService, then it makes sense to me for those constants to reside in the same file. I thought about defining the message-specific constants as associated constants for the message structs (e.g. Content::MAX_ENRS_SIZE), but I decided against it.


Update python.yaml with dependecy for gTTS

the entries need to be listed alphabetically in the file, I think that is the reason travis is failing.
Could you also add a debian rule ? thanks!


[Suggestion] Adding config options to enable/disable cobblestone rock formations in certain biomes.

Traverse has without a doubt many beautiful biomes to look at, but there's one thing that i think ruins the beauty of some biomes. It's the random cobblestone rock formations seen in the Badlands, Rocky Plains/Plateau and Cliffs biomes.
Rocky Plains already lock rocky enough to me without the cobblestone rock formations but do the Cliffs and Badlands biomes really need those too? The Rocky Plateau i can completely understand having the cobblestone rock formations because then it would be just a Plateau biome. Still i always have this biome disabled, so it doesn't bother me that much.
I hope i don't come off as rude. I only wanted to share my suggestion because i really would love to use all of the biomes the mod offers but then i would have at least 4 biomes in my worlds that i don't find particularly good to look at or to build in.

Sure, I'll add a config.

This will be added in version 1.5.3, when that will be out I'm not sure

Thanks a lot! Really appreciate it! :D


Tracker don't receive data [Wemos D1 Mini + MPU6050]

Hello I'm creating a set of trackers form Wemos D1 Mini and MPU6050 and IDK why I have info like this:
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false

IDK why tracker don't receive any data.
I test it with i2c_scanner and MPU was found. GY-521 examples all works and return the data.
The defines.h file content:
#define IMU IMU_MPU6050
#define SECOND_IMU IMU
#define BOARD BOARD_WEMOSD1MINI
#define IMU_ROTATION DEG_180
#define SECOND_IMU_ROTATION DEG_90

#define MAX_IMU_COUNT 1

#ifndef IMU_DESC_LIST
#define IMU_DESC_LIST \
    IMU_DESC_ENTRY(IMU,        PRIMARY_IMU_ADDRESS_ONE,   IMU_ROTATION,        PIN_IMU_SCL, PIN_IMU_SDA, PIN_IMU_INT  )

#endif

// Battery monitoring options (comment to disable):
// BAT_EXTERNAL for ADC pin, BAT_INTERNAL for internal - can detect only low battery, BAT_MCP3021 for external ADC
#define BATTERY_MONITOR BAT_EXTERNAL
#define BATTERY_SHIELD_RESISTANCE 180 //130k BatteryShield, 180k SlimeVR or fill in external resistor value in kOhm

#define PIN_IMU_SDA 0
#define PIN_IMU_SCL 2
#define PIN_IMU_INT 14
#define PIN_IMU_INT_2 12
#define PIN_BATTERY_LEVEL A0

Is like that because with D's trackes don't achieve even second state of configuration so i use GPIOs.
Whole logs:
[INFO ] [SlimeVR] SlimeVR v0.3.3 starting up...
[INFO ] [Configuration] Found up-to-date configuration v1
[INFO ] [Configuration] Loaded configuration
[INFO ] [MPU6050Sensor:0] Connected to MPU6050 (reported device ID 0x68) at address 0x68
[DEBUG] [MPU6050Sensor:0] Enabling DMP...
[DEBUG] [MPU6050Sensor:0] DMP ready! Waiting for first interrupt...
[INFO ] [SensorManager] Sensor 1 configured
[INFO ] [SensorManager] 1 sensor(s) configured
[INFO ] [WiFiHandler] Setting up WiFi
[INFO ] [WiFiHandler] Loaded credentials for SSID dlink-BEB1 and pass length 11
[DEBUG] [WiFiHandler] Status: 7
[NOTICE] OTA updates allowed
...........[ERROR] [WiFiHandler] Can't connect from saved credentials, status: 7.
[DEBUG] [WiFiHandler] Trying saved credentials with PHY Mode G...
...........[ERROR] [WiFiHandler] Can't connect from saved credentials, status: 7.
[DEBUG] [WiFiHandler] Trying hardcoded credentials...
....[INFO ] [WiFiHandler] Connected successfully to SSID 'dlink-BEB1', ip address <IP_ADDRESS>
[INFO ] [UDPConnection] Searching for the server on the local network...
[DEBUG] [UDPConnection] Handshake successful, server is <IP_ADDRESS>:6969
[DEBUG] [UDPConnection] Server supports packet bundling
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[NOTICE] OTA updates disabled by timeout, this is not an error
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false
[INFO ] [SerialCommands] SlimeVR Tracker, board: 6, hardware: 1, build: 16, firmware: 0.3.3, address: <IP_ADDRESS>, mac: A0:20:A6:23:15:21, status: 0, wifi state: 3
[INFO ] [SerialCommands] Sensor[0]: MPU6050 (0.000 0.000 0.000 0.000) is working: true, had data: false

Anything else what I can give?

Thanks for your report.
It is not working as you did mention.
Please use the Firmware Version 0.3.2
currently in main it seems to be broken.

Ok, I got confused.
For me the MPU6050 and WemosD1 mini works.
It just got down to 2 tps because of movement recolonization.
So you have probably a broken MPU or a new "version" or just a fake chip, that is not compatible.


PR template

Description
I would like to add a "How to make a PR" template
Kindly assign me this issue
Best regards
Screenshots
No response

@Ridhima10 Thank you for providing your insight but it is not required as of now.


quest cooldown not working

What is your Quests version / build number (do not say "latest")?
Quests version : 4.8.3 Yuzu Update
Describe the problem and how to replicate it.
I added a quest to my Citizen 2 NPC.
I set the cooldown for 9 hours/32400 before players can take the quest again but,
The quest icon says completed but can be taken again by players right after finishing it without going to cooldown.
Any console errors to share?
Nope

If applicable, can you provide an example quest from quests.yml?
# For non-English characters, this file MUST stay encoded in UTF-8
quests:
  custom1:
    name: Coal Miner
    ask-message: Challenge objectives!
    finish-message: Well done!
    npc-giver-uuid: 3a514d3a-b40b-4cd7-9ee7-1de524c765f1
    gui-display:
      ==: org.bukkit.inventory.ItemStack
      v: 3465
      type: COAL_ORE
    stages:
      ordered:
        '1':
          npc-uuids-to-talk-to:
          - 3a514d3a-b40b-4cd7-9ee7-1de524c765f1
        '2':
          break-block-names:
          - COAL_ORE
          break-block-amounts:
          - 24
          break-block-durability:
          - 0
        '3':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3465
            type: COAL
            amount: 24
          npc-delivery-uuids:
          - c0475fa5-d89f-4a7f-9483-0a0f171beb5b
          delivery-messages:
          - Thank you. Only <amount> more to go!
    rewards:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3465
        type: TORCH
        amount: 64
      - ==: org.bukkit.inventory.ItemStack
        v: 3465
        type: TORCH
        amount: 64
      - ==: org.bukkit.inventory.ItemStack
        v: 3465
        type: TORCH
        amount: 64
      exp: 500
    planner:
      start: 3:7:2023:6:0:0:Asia/Singapore
      end: 3:7:2023:22:0:0:Asia/Singapore
      repeat: 86400
      cooldown: 32400
      override: true
    options:
      allow-commands: true
      allow-quitting: true
      ignore-silk-touch: true
      use-parties-plugin: false
      share-progress-level: 1
      same-quest-only: true
      share-distance: 0.0
      handle-offline-players: true
      ignore-block-replace: true

Thanks for the report. Does this still happen if you disable "Ignore cooldown after repeat" in the Planner?

Yes. I've tried turning it to false but no luck.

I suspect this is related to #2152
Please try https://ci.codemc.io/job/PikaMug/job/Quests/431/


fix: stop using deprecated buildVimPluginFrom2Nix

I tested it by doing
neovim-flake = {
    url = "github:jacekpoz/neovim-flake/plugin-thingy-deprecation";
    inputs.nixpkgs.follows = "nixpkgs";
};

and rebuilding, it built and the plugins work

uhhhhhh
vimplugin-diffview-nvim-master> Sourcing vim-command-check-hook.sh
vimplugin-diffview-nvim-master> Using vimCommandCheckHook
vimplugin-diffview-nvim-master> Sourcing vim-gen-doc-hook
vimplugin-diffview-nvim-master> Sourcing neovim-require-check-hook.sh
vimplugin-diffview-nvim-master> Using neovimRequireCheckHook
vimplugin-diffview-nvim-master> unpacking sources
vimplugin-diffview-nvim-master> unpacking source archive /nix/store/bkdnk4sddvdyzygaxmlj9lmyw012qy6n-source
vimplugin-diffview-nvim-master> source root is source
vimplugin-diffview-nvim-master> patching sources
vimplugin-diffview-nvim-master> updateAutotoolsGnuConfigScriptsPhase
vimplugin-diffview-nvim-master> configuring
vimplugin-diffview-nvim-master> no configure script, doing nothing
vimplugin-diffview-nvim-master> building
vimplugin-diffview-nvim-master> build flags: SHELL=/nix/store/p6dlr3skfhxpyphipg2bqnj52999banh-bash-5.2-p15/bin/bash
vimplugin-diffview-nvim-master> nvim --headless -i NONE -n -u scripts/minimal_init.lua -c \
vimplugin-diffview-nvim-master>         "PlenaryBustedDirectory tests/ { minimal_init = './scripts/minimal_init.lua' }"
vimplugin-diffview-nvim-master> Installing nvim-lua/plenary.nvim
vimplugin-diffview-nvim-master> Error detected while processing /build/source/scripts/minimal_init.lua:
vimplugin-diffview-nvim-master> E5113: Error while calling lua chunk: Vim:E475: Invalid value for argument cmd: 'git' is not executable
vimplugin-diffview-nvim-master> stack traceback:
vimplugin-diffview-nvim-master>         [C]: in function 'system'
vimplugin-diffview-nvim-master>         /build/source/scripts/minimal_init.lua:15: in function 'load'
vimplugin-diffview-nvim-master>         /build/source/scripts/minimal_init.lua:29: in function 'setup'
vimplugin-diffview-nvim-master>         /build/source/scripts/minimal_init.lua:36: in main chunk
vimplugin-diffview-nvim-master> Error detected while processing /nix/store/m8walnvbazdfl0aza26j614xx734rsvg-neovim-unwrapped-0.9.1/share/nvim/runtime/plugin/rplugin.vim[70]..function <SNR>12_LoadRemotePlugins[5]..<SNR>12_GetManifest[1]..<SNR>12_GetManifestPath:
vimplugin-diffview-nvim-master> line   10:
vimplugin-diffview-nvim-master> E739: Cannot create directory /homeless-shelter: permission denied
vimplugin-diffview-nvim-master> Error detected while processing command line:
[1/0/39 built] building vimplugin-diffview-nvim-master (buildPhase)

diffview stuck in buildPhase
other plugins seem broken as well

(confirmed working in fc8206e7a61d7eb02006f9010e62ebdb3336d0d2, this PR is the culprit)

oops it was just caused by old nixpkgs version
@NotAShelf bump nixpkgs thanks

@horriblename bumping nixpkgs break docs building at the moment, but you can override nixpkgs input manually on your own end with inputs.nixpkgs.follows


[Feature request] Power of 2 texture limitation

Hi, would it be possible to add simple option to force power of two resulting texture size when width/height are not forced?
Thank you!

Done :) powerOfTwo option is added

Works great, thank you!


feat(dependabot/cli): scaffold dependabot/cli

dependabot/cli: A tool for testing and debugging Dependabot update jobs
$ aqua g -i dependabot/cli

Check List

[x] Read CONTRIBUTING.md

[x] Read OSS Contribution Guide

[x] All commits are signed

This repository enables Require signed commits, so all commits must be signed

[x] Avoid force push
[x] Do only one thing in one Pull Request
[x] Execute cmdx s to scaffold code
[x] Install and execute the package and confirm if the package works well

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output
root@5e3ca1471b4d:/workspace# dependabot
Run Dependabot jobs from the command line.

Usage:
  dependabot [command]

Examples:
$ dependabot update go_modules rsc/quote
$ dependabot test -f input.yml

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  test        Test scenarios
  update      Perform an update job

Flags:
      --collector-image string   container image to use for the OpenTelemetry collector (default "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest")
  -h, --help                     help for dependabot
      --proxy-image string       container image to use for the proxy (default "ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy:latest")
      --updater-image string     container image to use for the updater
  -v, --version                  version for dependabot

Use "dependabot [command] --help" for more information about a command.

If files such as configuration file are needed, please share them.
Reference

https://github.com/dependabot/cli/blob/main/README.md

https://github.com/aquaproj/aqua-registry/releases/tag/v4.245.0


GifRecorder doesn't work in Chrome Extension's background script

Hello! First of all, thank you for a great job!
I'm working on chrome extension right now and using RecordRTC to capture screen. I stuck with the one problem: video works fine, but gif functionality is not working. It always returns me empty blob (6 bytes). I did small research and found where the problem comes from: it's related to using requestAnimationFrame method inside GifRecorder.record. I found that function drawVideoFrame was never executed. I tried to remove usage of requestAnimationFrame and make it with simple setInterval, that works actually. So maybe you have any clue why that happens? Would be nice to make some patch to handle this case... Thanks!

Hi, i've got the same problem.
I found that  the execution context of requestAnimationFrame  (window) is very important.
https://stackoverflow.com/questions/20791219/window-requestanimationframe-silently-fails-to-invoke-callback-but-generates-a
I tried some hacks with window and sending RecordRTC.startRecording callback to content and popup scripts (not background script) - nothing works.
But if i include background script to popup.html and call RecordRTC.startRecording manually (not via chrome.runtime.sendMessage) - it works(gifs recorded correctly), because at this moment context is popup window.
I understand that setTimeout and setInterval is much worse than requestAnimationFrame in performance cases, so i want to find a way to use rAF.
Hope @muaz-khan can help us with it.
And sorry for my english


Add method to disable logging

I use productFlavors to shave of everything I don't need in debug builds, things like languages other than english, multiple resolution drawables, ARM native dependencies and fonts.
So I don't care about fonts in most of my debug builds so I remove them and Calligraphy complains and clutters up my logcat. Would love an option disable this :)

Won't fix here, but if it's still an issue in V3 please raise an issue over there.


Prefix sum 2dArray added | c++ | cp

Have you read the   Contributing Guidelines on Pull Requests?
Yes
Description
Program Prefix Sum 2DArray in C++/cp added
Checklist

[x]  I've read the contribution guidelines.
[x]  I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Issue : #6267
pull request : #6309

Read the instructions mentioned on Gssoc discord yesterday. Do the changes as per that.


[target] Use native architecture for llvm target

Set the default -device= key for llvm targets based on the native architecture rather than hard coding to cpu which is x86 specific. This means that when llvm target triples are not specified  we will test arm_cpu schedules on Arm®-based architectures and cpu schedules on x86 based architectures.
Fix any schedule test failures that result from this fix.

Closing as superseded by: https://github.com/apache/tvm/pull/16513


Performance issues related to schema building

This issue gathers info about performance issues related to schema building. This strongly relates to https://github.com/pydantic/pydantic/discussions/6748. Only time performance is in scope.
More context is given in https://github.com/pydantic/pydantic/issues/10285, and won't be repeated here.
This is a working document and will evolve over time.
TL;DR: We could introduce a caching mechanism to avoid building a core schema for the annotations over and over. This can get really challenging for two reasons:

We need to find a way to compute a cache key. It needs to be smart enough to avoid collisions (e.g. hash(Union[int, str]) should be different than hash(Union[str, int])), and performant.
We need to keep track of definitions collected during schema generation of an annotation.

Context
As said in https://github.com/pydantic/pydantic/issues/10285, half of the time is usually spent in core schema generation. To produce flamegraphs, we will make use of the aiotdlib library, which includes a generated file (aiotdlib.api.types.all) containing 1529 models.
Here is the output flamegraph when importing the library:

Command: py-spy record -o aiotdblib.json -f speedscope -- python -c 'import aiotdlib'
Output file: aiotdblib.json
View with speedscope.app ("Left Heavy" view)

Only focusing on schema building (see https://github.com/pydantic/pydantic/issues/10285 for schema cleaning), we can clearly see _apply_annotations is taking almost all the time. During schema generation, _apply_annotations can be called from various places, but the flamegraph shows it almost always come from _common_field_schema (called for every field of a model).
At first sight, it is hard to tell if these calls can be optimized. The flamegraph is too large to be shown on the screenshot, but we can notice time is spent in several code paths. However, we can check if all of them are necessary.
Implementing a cache mechanism
Consider the following example:
# Setup:

from typing import Union

from pydantic import create_model

simple_models = [
    create_model(
        f"SimpleModel{i}",
        **{f"f{j}": (int, ...) for j in range(10)},
    )
    for i in range(20)
]

UnionModels = Union[*simple_models]

# Statement:

Model = create_model(
    "Model",
    **{f"f{i}": (UnionModels, ...) for i in range(30)}
)

When Model is being created, _apply_annotations is called 30 times, each time with the same source_type (UnionModels). Using timeit and running the above statement 100 times takes around 1.5s.
The idea is thus to define a cache to return early in _apply_annotations.
The cache key
For now, we are going to use hash((source_type, *annotations)) as a cache key. This is a really naive approach that I'm taking for now:

for most types and annotations, the hash can be computed.
there are several cases where the hash can key can collide with different source type and annotations:

unions: hash(Union[int, str]) == hash(Union[str, int]) (see https://github.com/python/cpython/issues/103749)
annotated-types: hash(Gt(0)) == hash(Lt(0)) (because they are implemented as dataclasses).
many more, probably.

Using a correct cache key is a challenging problem. It needs to be accurate (no collision that would result in invalid schemas being returned), performant, etc.
Using a local cache
By local, I mean a cache scoped to each GenerateSchema instance. Here is an example implementation:

Show diff
diff --git a/pydantic/_internal/_generate_schema.py b/pydantic/_internal/_generate_schema.py
index 40ac2ddb..7a4465a6 100644
--- a/pydantic/_internal/_generate_schema.py
+++ b/pydantic/_internal/_generate_schema.py
@@ -361,6 +361,7 @@ class GenerateSchema:
         '_config_wrapper_stack',
         '_types_namespace_stack',
         '_typevars_map',
+        '_annotations_cache',
         'field_name_stack',
         'model_type_stack',
         'defs',
@@ -376,6 +377,7 @@ class GenerateSchema:
         self._config_wrapper_stack = ConfigWrapperStack(config_wrapper)
         self._types_namespace_stack = TypesNamespaceStack(types_namespace)
         self._typevars_map = typevars_map
+        self._annotations_cache: dict[int, CoreSchema] = {}
         self.field_name_stack = _FieldNameStack()
         self.model_type_stack = _ModelTypeStack()
         self.defs = _Definitions()
@@ -394,6 +396,7 @@ class GenerateSchema:
         obj._types_namespace_stack = types_namespace_stack
         obj.model_type_stack = model_type_stack
         obj._typevars_map = typevars_map
+        obj._annotations_cache = {}
         obj.field_name_stack = _FieldNameStack()
         obj.defs = defs
         return obj
@@ -2064,7 +2067,7 @@ class GenerateSchema:
         self,
         source_type: Any,
         annotations: list[Any],
-        transform_inner_schema: Callable[[CoreSchema], CoreSchema] = lambda x: x,
+        transform_inner_schema: Callable[[CoreSchema], CoreSchema] | None = None,
     ) -> CoreSchema:
         """Apply arguments from `Annotated` or from `FieldInfo` to a schema.

@@ -2073,6 +2076,18 @@ class GenerateSchema:
         (in other words, `GenerateSchema._annotated_schema` just unpacks `Annotated`, this process it).
         """
         annotations = list(_known_annotated_metadata.expand_grouped_metadata(annotations))
+
+        cache_key = (source_type, *annotations)
+        cache_key_hash: int | None = None
+        if transform_inner_schema is None:
+            try:
+                cache_key_hash = hash(cache_key)
+            except Exception:
+                pass
+            else:
+                if cache_key_hash in self._annotations_cache:
+                    return self._annotations_cache[cache_key_hash]
+
         res = self._get_prepare_pydantic_annotations_for_known_type(source_type, tuple(annotations))
         if res is not None:
             source_type, annotations = res
@@ -2090,7 +2105,7 @@ class GenerateSchema:
                 metadata_schema = resolve_original_schema(schema, self.defs.definitions)
                 if metadata_schema is not None:
                     self._add_js_function(metadata_schema, metadata_js_function)
-            return transform_inner_schema(schema)
+            return transform_inner_schema(schema) if transform_inner_schema is not None else schema

         get_inner_schema = CallbackGetCoreSchemaHandler(inner_handler, self)

@@ -2105,6 +2120,10 @@ class GenerateSchema:
         if pydantic_js_annotation_functions:
             metadata = CoreMetadataHandler(schema).metadata
             metadata.setdefault('pydantic_js_annotation_functions', []).extend(pydantic_js_annotation_functions)
+
+        if cache_key_hash is not None:
+            self._annotations_cache[cache_key_hash] = schema
+
         return _add_custom_serialization_from_json_encoders(self._config_wrapper.json_encoders, source_type, schema)

     def _apply_single_annotation(self, schema: core_schema.CoreSchema, metadata: Any) -> core_schema.CoreSchema:

With the above example code, we get a ~2x improvement (0.7s). This works well, but is only relevant when annotations are reused within the same model. This will have no effect with the following statement:
# 30 models, each with one field to `UnionModels`:
models = [
    create_model(
        f"Model{i}",
        field=(UnionModels, ...)
    )
    for i in range(30)
]

Using a global cache
Using a global cache would allow for more cache hits, even on separate models. However, this has different implications:

Potential memory leaks: a global cache will have to be defined at the module level. We'll have to make sure it doesn't grow too much over time (especially considering the second point below).
When a resulting schema is generated at the end of _apply_annotations, some references can be collected and stored in the _Definitions instance of the GenerateSchema class. With a local cache, this wasn't an issue:

the first time the annotation is encountered, it doesn't exist in the cache. The schema is generated, and definitions may be collected in self.defs.
the second time the annotation is encountered, the cache value is returned. self.defs is still the same and is guaranteed to contain the required definitions for this annotation.

However, with a global cache, we also have to keep track of the collected definitions for a specific annotation and inject them back in self.defs before returning the cached schema.
An implementation can be found here:

https://github.com/pydantic/pydantic/pull/10302

with more details about the pain points I encountered.

Also strongly related: https://github.com/pydantic/pydantic/issues/10036 and https://github.com/pydantic/pydantic/issues/10074

Though the performance benefits might not be significant, I'd argue https://github.com/pydantic/pydantic/issues/10299 is related :). The less fluff we can have in that process, the better.

https://github.com/pydantic/pydantic/issues/10036 is indeed closely related. It is especially messy for application of constraints and some specific types (Mapping, Path, etc). Here is a draft API that we could use:
Currently, almost all the core schema generation logic is stored under the GenerateSchema class. Introducing a caching mechanism is quite hard, and maybe we need to decouple the logic a bit. Basically, having the GenerateSchema acting as a dispatcher to different type handlers, defined in isolation. These handlers can control the allowed constraints [^1], the caching behavior, etc.
This could be implemented as a decorator:
# Constraints scoped to the `handle_int` function, easy to read and understand
INT_CONSTRAINTS = {'strict', 'allow_inf_nan', 'multiple_of', 'le', 'ge', 'lt', 'gt'}

@register_type_handler(int, allowed_constraints=INT_CONSTRAINTS)
def handle_int(known_constraints: KnownConstraints, other_metadata: list[Any]) -> core_schema.IntSchema:
    return core_schema.int_schema(**known_constraints.as_dict())

# And for generic types:

@register_generic_type_handler(list, allowed_constraints=...)
def handle_list(args: tuple[Any], known_constraints: KnownConstraints, other_metadata: list[Any]) -> core_schema.ListSchema:
    ...

And the implementation of the decorator:

See code
class KnownConstraints:

    def __hash__(self) -> int:
        ...

    # TODO, maybe `KnownConstraints` should
    # be a `collections.abc.MutableMapping`?
    def as_dict(self) -> dict[str, Any]:
        ...

type TypeHandler = Callable[[KnownConstraints, list[Any]], core_schema.CoreSchema]
TypeHandlerT = TypeVar('TypeHandlerT', bound=TypeHandler)

TYPES_REGISTRY: dict[Any, TypeHandler] = {}

def register_type_handler(*types: Any, allowed_constraints: set[str] | None = None) -> Callable[[TypeHandlerT], TypeHandlerT]:

    def _reg(handler: TypeHandlerT, /) -> TypeHandlerT:

        schema_cache: dict[int, core_schema.CoreSchema] = {}

        def _wrapper(known_constraints: KnownConstraints, other_metadata: list[Any]) -> core_schema.CoreSchema:
            if not other_metadata:
                cache_key = hash(known_constraints)
                schema = schema_cache.get(cache_key, None)
                if schema is None:
                    _check_constraints(allowed_constraints, known_constraints)
                    schema = handler(known_constraints, other_metadata)
                    schema_cache[cache_key] = schema
            else:
                # Unknown metadata is present, it might not be hashable.
                # For simplicity, we always call the handler in this case:
                _check_constraints(allowed_constraints, known_constraints)
                schema = handler(known_constraints, other_metadata)

            return schema

        for tp in types:
            TYPES_REGISTRY[tp] = _wrapper

        return _wrapper  # pyright: ignore[reportReturnType]

    return _reg

The decorator implementation is responsible for checking the compatible constraints, and implements a simple caching mechanism.
This also introduces a new KnownConstraints class. Currently, with the following:
TypeAdapter(Annotated[int, Strict(), Field(gt=0), Field(lt=10), Field(multiple_of=2)])

Every constraint is applied one by one, by wrapping every _apply_single_annotation in a CallbackGetCoreSchemaHandler. It is inefficient, hard to understand, and the underlying apply_known_metadata function being called is starting to be impossible to maintain. So the idea would be to collect every constraint in a single KnownConstraints class, so that a single call to the handle_int handler is necessary.
We could start by making this new handler registry API private, only use it for the types we know about. But making it public to register custom types would have several benefits:

For a custom type <type>, no need to create a subclass or use a custom annotation, just use field: <type>. The added value is great especially for some libraries with a lot of types to support (e.g. numpy: simply use field: np.ndarray).
Custom types can make use of known constraints: field: Annotated[<type>, Strict()] can be supported (https://github.com/pydantic/pydantic/issues/5475).
Maybe it needs better docs (https://github.com/pydantic/pydantic/issues/7534), but the current pattern is confusing for some users (https://github.com/pydantic/pydantic/issues/9876, https://github.com/pydantic/pydantic/issues/8279, https://github.com/pydantic/pydantic/issues/10706, https://github.com/pydantic/pydantic/issues/8007).

On the other hand, having this as a public API will introduce two ways to do similar things. There's also the question of JSON Schema generation for these custom types.
[^1]: This will greatly simplify the current logic in collect_known_metadata, which is messy.


Class-specific amd for Prism

Added note about this to 5.3 (and moved previous Heal AMD faq here).
Added two notes in Prism section.