2022-02-07 17:48:04 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=1>
2022-02-07 17:48:04 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x80 seq -- probably duplicate response
...
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'079fb1a96b2a1573d9904b25455493099c4e2715b0ce67f9e67e'
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8160597e'
2022-02-07 17:48:05 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 63 (messageSentHandler) received: b'00c180040100ef010140000000be5d0000'
2022-02-07 17:48:05 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 32961, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY: 64>, groupId=0, sequence=190), 93, <EmberStatus.SUCCESS: 0>, b'']
2022-02-07 17:48:05 DEBUG (MainThread) [bellows.ezsp.protocol] Send command readCounters: ()
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'719c21a9a52aa6d97e'
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'109ca1a9a52aabb23994ee25b65595499c4e27abedcee28be1c67089fc7e35a7ebcdde6f8effc7dbd5d2698c4623a9ec763ba5ea758241984c2613b1e070381c0e07bbe5ca658a459a4d9e4f9ff7c3d9d46a35a251904824b5f07e'
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'82503a7e'
2022-02-07 17:48:05 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 241 (readCounters) received: b'be006000a4001c00070000000000000085001c00130000000a000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
2022-02-07 17:48:05 DEBUG (MainThread) [bellows.ezsp.protocol] Send command getValue: (<EzspValueId.VALUE_FREE_BUFFERS: 3>,)
2022-02-07 17:48:05 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'029d21a9fe2a16c9a77e'
...
2022-02-07 17:48:06 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'219da1a9fe2a15b3ad3ec97e'
2022-02-07 17:48:06 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'83401b7e'
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 170 (getValue) received: b'0001f4'
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.zigbee.application] Free buffers status EzspStatus.SUCCESS, value: 244
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.zigbee.application] ezsp_counters: [MAC_RX_BROADCAST = 45924, MAC_TX_BROADCAST = 19060, MAC_RX_UNICAST = 32330, MAC_TX_UNICAST_SUCCESS = 5184, MAC_TX_UNICAST_RETRY = 1542, MAC_TX_UNICAST_FAILED = 320, APS_DATA_RX_BROADCAST = 0, APS_DATA_TX_BROADCAST = 0, APS_DATA_RX_UNICAST = 27348, APS_DATA_TX_UNICAST_SUCCESS = 4984, APS_DATA_TX_UNICAST_RETRY = 3665, APS_DATA_TX_UNICAST_FAILED = 29, ROUTE_DISCOVERY_INITIATED = 2092, NEIGHBOR_ADDED = 8, NEIGHBOR_REMOVED = 0, NEIGHBOR_STALE = 118, JOIN_INDICATION = 0, CHILD_REMOVED = 0, ASH_OVERFLOW_ERROR = 0, ASH_FRAMING_ERROR = 0, ASH_OVERRUN_ERROR = 0, NWK_FRAME_COUNTER_FAILURE = 0, APS_FRAME_COUNTER_FAILURE = 0, UTILITY = 0, APS_LINK_KEY_NOT_AUTHORIZED = 0, NWK_DECRYPTION_FAILURE = 0, APS_DECRYPTION_FAILURE = 0, ALLOCATE_PACKET_BUFFER_FAILURE = 0, RELAYED_UNICAST = 0, PHY_TO_MAC_QUEUE_LIMIT_REACHED = 0, PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 0, TYPE_NWK_RETRY_OVERFLOW = 0, PHY_CCA_FAIL_COUNT = 14, BROADCAST_TABLE_FULL = 0, PTA_LO_PRI_REQUESTED = 0, PTA_HI_PRI_REQUESTED = 0, PTA_LO_PRI_DENIED = 0, PTA_HI_PRI_DENIED = 0, PTA_LO_PRI_TX_ABORTED = 0, PTA_HI_PRI_TX_ABORTED = 0, ADDRESS_CONFLICT_SENT = 0, EZSP_FREE_BUFFERS = 244]

Off from device
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef01010001000069a4c5c180ffff0a09810100410701000100'
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=105), 164, -59, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:06 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:06 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=65, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x00', *payload=<Bool.false: 0>))]
2022-02-07 17:48:06 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=light.bathroom_dimmer_level_on_off_2, old_state=<state light.bathroom_dimmer_level_on_off_2=on; supported_color_modes=['brightness'], color_mode=brightness, brightness=155, off_brightness=None, friendly_name=Bathroom dimmer level, on_off, supported_features=33 @ 2022-02-07T17:48:03.825712+01:00>, new_state=<state light.bathroom_dimmer_level_on_off_2=off; supported_color_modes=['brightness'], off_brightness=None, friendly_name=Bathroom dimmer level, on_off, supported_features=33 @ 2022-02-07T17:48:06.942714+01:00>>
2022-02-07 17:48:06 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0x80C1, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY|APS_OPTION_RETRY: 320>, groupId=0, sequence=129), 94, b'\x18\x81\x0b\x01\x00')
2022-02-07 17:48:06 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'14a221a9602a1573d9904b25455493099d4e272ab3cb7f0af6c763e29a7e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'42a2a1a9602a150dfeca7e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8520dd7e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 52 (sendUnicast) received: b'00bf'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'52a2b1a9112a15b65894a524ab5593499c24e7672c4e9874f7cfe288fc3f38a6ebccde672a7e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8610be7e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006ac0ccc180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=106), 192, -52, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
...
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'72a2b1a9112a15b65894a524ab5593499c2297632c4e9874f7cfe288fc3f38a6ebccde9a377e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006cb0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=108), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'02a2b1a9112a15b65894a524ab5593499c2397632c4e9874f7cfe288fc3f38a6ebccde10e47e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8160597e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006db0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=109), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'12a2b1a9112a15b65894a524ab5593499c2097632c4e9874f7cfe288fc3f38a6ebccde03007e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'82503a7e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006eb0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=110), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'22a2b1a9112a15b65894a524ab5593499c2193622c4e9874f7cfe288fc3f38a6ebccde2c277e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'83401b7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006fb4c9c180ffff0a09810100410701000100'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=111), 180, -55, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'32a2b1a9112a15b65894a524ab5593499c3e97632c4e9874f7cfe288fc3f38a6ebccde27587e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8430fc7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef01010001000070b0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=112), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'42a2b1a96b2a1573d9904b25455493099c4e2714b3ce67b50d7e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8520dd7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 63 (messageSentHandler) received: b'00c180040100ef010140000000bf5e0000'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 32961, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY: 64>, groupId=0, sequence=191), 94, <EmberStatus.SUCCESS: 0>, b'']
...
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'72a2b1a9112a15b65894a524ab5593499c2297632c4e9874f7cfe288fc3f38a6ebccde9a377e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006cb0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=108), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'02a2b1a9112a15b65894a524ab5593499c2397632c4e9874f7cfe288fc3f38a6ebccde10e47e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8160597e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006db0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=109), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'12a2b1a9112a15b65894a524ab5593499c2097632c4e9874f7cfe288fc3f38a6ebccde03007e'
2022-02-07 17:48:07 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'82503a7e'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006eb0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:07 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=110), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:07 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'22a2b1a9112a15b65894a524ab5593499c2193622c4e9874f7cfe288fc3f38a6ebccde2c277e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'83401b7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef0101000100006fb4c9c180ffff0a09810100410701000100'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=111), 180, -55, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'32a2b1a9112a15b65894a524ab5593499c3e97632c4e9874f7cfe288fc3f38a6ebccde27587e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8430fc7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 69 (incomingMessageHandler) received: b'00040100ef01010001000070b0c8c180ffff0a09810100410701000100'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received incomingMessageHandler frame with [<EmberIncomingMessageType.INCOMING_UNICAST: 0>, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY: 256>, groupId=0, sequence=112), 176, -56, 0x80c1, 255, 255, b'\t\x81\x01\x00A\x07\x01\x00\x01\x00']
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-02-07 17:48:08 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'42a2b1a96b2a1573d9904b25455493099c4e2714b3ce67b50d7e'
2022-02-07 17:48:08 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8520dd7e'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 63 (messageSentHandler) received: b'00c180040100ef010140000000bf5e0000'
2022-02-07 17:48:08 DEBUG (MainThread) [bellows.zigbee.application] Received messageSentHandler frame with [<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 32961, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY: 64>, groupId=0, sequence=191), 94, <EmberStatus.SUCCESS: 0>, b'']
...
2022-02-07 17:48:16 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 241 (readCounters) received: b'be006100ad001d0007000000000000008d001d00140000000a000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
2022-02-07 17:48:16 DEBUG (MainThread) [bellows.ezsp.protocol] Send command getValue: (<EzspValueId.VALUE_FREE_BUFFERS: 3>,)
2022-02-07 17:48:16 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'36a021a9fe2a1630237e'
2022-02-07 17:48:16 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'64a0a1a9fe2a15b3ad06647e'
2022-02-07 17:48:16 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'87009f7e'
2022-02-07 17:48:16 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 170 (getValue) received: b'0001f4'
2022-02-07 17:48:16 DEBUG (MainThread) [bellows.zigbee.application] Free buffers status EzspStatus.SUCCESS, value: 244
2022-02-07 17:48:16 DEBUG (MainThread) [bellows.zigbee.application] ezsp_counters: [MAC_RX_BROADCAST = 45924, MAC_TX_BROADCAST = 19061, MAC_RX_UNICAST = 32339, MAC_TX_UNICAST_SUCCESS = 5185, MAC_TX_UNICAST_RETRY = 1542, MAC_TX_UNICAST_FAILED = 320, APS_DATA_RX_BROADCAST = 0, APS_DATA_TX_BROADCAST = 0, APS_DATA_RX_UNICAST = 27356, APS_DATA_TX_UNICAST_SUCCESS = 4985, APS_DATA_TX_UNICAST_RETRY = 3666, APS_DATA_TX_UNICAST_FAILED = 29, ROUTE_DISCOVERY_INITIATED = 2092, NEIGHBOR_ADDED = 8, NEIGHBOR_REMOVED = 0, NEIGHBOR_STALE = 118, JOIN_INDICATION = 0, CHILD_REMOVED = 0, ASH_OVERFLOW_ERROR = 0, ASH_FRAMING_ERROR = 0, ASH_OVERRUN_ERROR = 0, NWK_FRAME_COUNTER_FAILURE = 0, APS_FRAME_COUNTER_FAILURE = 0, UTILITY = 0, APS_LINK_KEY_NOT_AUTHORIZED = 0, NWK_DECRYPTION_FAILURE = 0, APS_DECRYPTION_FAILURE = 0, ALLOCATE_PACKET_BUFFER_FAILURE = 0, RELAYED_UNICAST = 0, PHY_TO_MAC_QUEUE_LIMIT_REACHED = 0, PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 0, TYPE_NWK_RETRY_OVERFLOW = 0, PHY_CCA_FAIL_COUNT = 14, BROADCAST_TABLE_FULL = 0, PTA_LO_PRI_REQUESTED = 0, PTA_HI_PRI_REQUESTED = 0, PTA_LO_PRI_DENIED = 0, PTA_HI_PRI_DENIED = 0, PTA_LO_PRI_TX_ABORTED = 0, PTA_HI_PRI_TX_ABORTED = 0, ADDRESS_CONFLICT_SENT = 0, EZSP_FREE_BUFFERS = 244]

On from HA
2022-02-07 17:48:22 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=light, service=turn_on, service_data=entity_id=light.bathroom_dimmer_level_on_off_2>
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] Sending Tuya Cluster Command... Cluster Command is 1, Arguments are ()
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=2, cluster_attr='on_off', attr_value=1)
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] get_dp_mapping --> found DP: 7
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] from_cluster_data: 7, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=<TuyaDPType.BOOL: 1>, converter=None, dp_converter=None, endpoint_id=2)
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] ztype: Bool.true
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] from_value: [1, 1]
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] raw: b'\x01'
2022-02-07 17:48:22 DEBUG (MainThread) [custom_tuya_quirk] tuya_command: TuyaCommand(status=0, tsn=0, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))
2022-02-07 17:48:22 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0006]: executed 'on' command with args: '()' kwargs: '{}' result: Status.SUCCESS
2022-02-07 17:48:22 DEBUG (MainThread) [homeassistant.components.zha.entity] light.bathroom_dimmer_level_on_off_2: turned on: {'on_off': <Status.SUCCESS: 0>}
2022-02-07 17:48:22 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0x80C1, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_ENABLE_ROUTE_DISCOVERY|APS_OPTION_RETRY: 320>, groupId=0, sequence=95), 96, b'\x05A\x11_\x00\x00\x00\x07\x01\x00\x01\x01')
2022-02-07 17:48:22 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'47a121a9602a1573d9904b25455493099d4e27f48dc262caec996389fc793ea7eacc56147e'
2022-02-07 17:48:22 DEBUG (bellows.thread_0) [bellows.uart] Data frame: b'75a1a1a9602a157228f47e'
2022-02-07 17:48:22 DEBUG (bellows.thread_0) [bellows.uart] Sending: b'8070787e'
2022-02-07 17:48:22 DEBUG (MainThread) [bellows.ezsp.protocol] Application frame 52 (sendUnicast) received: b'00c0'

Off from HA
2022-02-07 17:48:23 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=light, service=turn_off, service_data=entity_id=light.bathroom_dimmer_level_on_off_2>
2022-02-07 17:48:23 DEBUG (MainThread) [custom_tuya_quirk] Sending Tuya Cluster Command...

Thats weird, I suddenly have other devices with similar problem, but they worked fine before (except for a few delays/hiccups sometimes).  Feb. 2022 22:09:20; unit_of_measurement=, friendly_name=Datum Uhrzeit der Heizung Heizung @ 2022-02-07T23:09:23.651933+01:00>, new_state=<state sensor.heizung_datum_uhrzeit=Montag, 07.  Total 2 neighbours
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy.topology] Scanning neighbors of a4:c1:38:a3:68:a2:5f:32/0xaa66 device
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy.util] Tries remaining: 3
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0xAA66, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>)
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.FAIL: 1>)
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteDisc.Req(Dst=0xAA66, Options=<RouteDiscoveryOptions.UNICAST: 0>, Radius=30)
2022-02-07 23:11:23 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteDisc.Rsp(Status=<Status.SUCCESS: 0>)
2022-02-07 23:11:23 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.heizung_datum_uhrzeit, old_state=<state sensor.heizung_datum_uhrzeit=Montag, 07. Feb. 2022 22:10:19; unit_of_measurement=, friendly_name=Datum Uhrzeit der Heizung Heizung @ 2022-02-07T23:10:23.458735+01:00>, new_state=<state sensor.heizung_datum_uhrzeit=Montag, 07. Feb. 2022 22:11:19; unit_of_measurement=, friendly_name=Datum Uhrzeit der Heizung Heizung @ 2022-02-07T23:11:23.469863+01:00>>
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xAA66), DstEndpoint=0, DstPanId=0x0000, SrcEndpoint=0, ClusterId=49, TSN=122, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x7A\x00')
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MgmtLqiRsp.Callback(Src=0xAA66, Status=<Status.SUCCESS: 0>, Neighbors=Neighbors(entries=2, start_index=0, neighbor_table_list=[Neighbor(extended_pan_id=23:08:00:b3:e6:23:06:2b, ieee=00:12:4b:00:22:a5:3a:5a, nwk=0x0000, device_type=<DeviceType.Coordinator: 0>, rx_on_when_idle=<RxOnWhenIdle.On: 1>, relationship=<RelationShip.Parent: 0>, reserved1=0, permit_joining=<PermitJoins.Unknown: 2>, reserved2=0, depth=0, lqi=34), Neighbor(extended_pan_id=23:08:00:b3:e6:23:06:2b, ieee=a4:c1:38:77:b9:d2:68:6d, nwk=0x696F, device_type=<DeviceType.EndDevice: 2>, rx_on_when_idle=<RxOnWhenIdle.Off: 0>, relationship=<RelationShip.Child: 1>, reserved1=0, permit_joining=<PermitJoins.Unknown: 2>, reserved2=0, depth=2, lqi=136)]))
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy_znp.api] Command was not handled
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0xAA66, IsBroadcast=<Bool.false: 0>, ClusterId=32817, SecurityUse=0, TSN=122, MacDst=0x0000, Data=b'\x00\x02\x00\x02\x2B\x06\x23\xE6\xB3\x00\x08\x23\x5A\x3A\xA5\x22\x00\x4B\x12\x00\x00\x00\x04\x02\x00\x22\x2B\x06\x23\xE6\xB3\x00\x08\x23\x6D\x68\xD2\xB9\x77\x38\xC1\xA4\x6F\x69\x12\x02\x02\x88')
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy.neighbor] [0xaa66] request status: Status.SUCCESS. response: Neighbors(entries=2, start_index=0, neighbor_table_list=[Neighbor(extended_pan_id=23:08:00:b3:e6:23:06:2b, ieee=00:12:4b:00:22:a5:3a:5a, nwk=0x0000, device_type=<DeviceType.Coordinator: 0>, rx_on_when_idle=<RxOnWhenIdle.On: 1>, relationship=<RelationShip.Parent: 0>, reserved1=0, permit_joining=<PermitJoins.Unknown: 2>, reserved2=0, depth=0, lqi=34), Neighbor(extended_pan_id=23:08:00:b3:e6:23:06:2b, ieee=a4:c1:38:77:b9:d2:68:6d, nwk=0x696F, device_type=<DeviceType.EndDevice: 2>, rx_on_when_idle=<RxOnWhenIdle.Off: 0>, relationship=<RelationShip.Child: 1>, reserved1=0, permit_joining=<PermitJoins.Unknown: 2>, reserved2=0, depth=2, lqi=136)])
2022-02-07 23:11:24 DEBUG (MainThread) [zigpy.neighbor] [0xaa66] Done scanning. Total 2 neighbours

Could it be that the ZZH-Stick i got is shit? I read many good things about it before.

I was seen one of your log with very low LIQ but i did not remember where.
If the device is near you shall have good LIQ but it can being hardware problem on the stick.
Open the network map and looking for the LIQ.

@Tropaion I was looking in the sniffs and all frames is having  LQI but its looks like its the same on all frame in the sniff set:
Frame 14: 61 bytes on wire (488 bits), 61 bytes captured (488 bits) on interface \\.\pipe\zboss_sniffer_COM3, id 0
ZBOSS dump, IN, page 0, channel 11
IEEE 802.15.4 Data, Dst: 0x7d4a, Src: 0x0000
    Frame Control Field: 0x8861, Frame Type: Data, Acknowledge Request, PAN ID Compression, Destination Addressing Mode: Short/16-bit, Frame Version: IEEE Std 802.15.4-2003, Source Addressing Mode: Short/16-bit
    Sequence Number: 103
    Destination PAN: 0x8359
    Destination: 0x7d4a
    Source: 0x0000
    [Extended Source: SiliconL_ff:fe:bb:f0:e4 (5c:02:72:ff:fe:bb:f0:e4)]
    [Origin: 14]
    [Ack In: 15]
    TI CC24xx-format metadata: FCS OK
        FCS Valid: True
        RSSI: -39 dB
        LQI Correlation Value: 81
ZigBee Network Layer Data, Dst: 0x7d4a, Src: 0x0000
ZigBee Application Support Layer Data, Dst Endpt: 1, Src Endpt: 1
ZigBee Cluster Library Frame, Command: Read Attributes, Seq: 35

And in my easy is very low but i thing this what the CC-2531 is "seeing" but it shall being different from the coordinator and the other devices you have sniffing so i thing the CC-2531 is tagging all with the same = not individual for different frames.
Normal is the CC-2531 and 2530 having  very bad radio and antennas so the sniffing can being little week but your ZZH-Stick shall being one true 20 dbm TX and good RX if the antenna part is working OK
In my production network i have 3 devices that is listed having under 100 in LQI and tha is sleeping end devices that is using very low power.
Look is you have router device how the LQI is and is is under 50 its having major problems communicating.
Also look in the log then the system is doing network scans its getting list with the LQI from the devices (It can being triggered from the network map but is being canceled is done to oft)
One thing is that Silabs devices and NCP is using one other algorithm the TI so normally is getting higher LQI.
If you is getting the <Status.MAC_NO_ACK: 233> can you sniffing it so can  see if the coordinator is sending anything at all or if the network dont like talking with it ?

@MattWestb Most of my devices have LQI  below 60. I did a few tests, when I placed one next to the Coordinator I have LQI 160, one room next to it is already 65 and directly on floor under it it is 36, so the signal loss is extremely high.
The coordinator stick is in the same room as my hotspot, but the ZigBee uses channel 15 and wlan uses channel 11 so I don't think it should be interference.

Sorry for spamming the device request with other hardware probes !!
Under 60 is very low but can being OK for one sleeping end device that is having on good router around that can relaying the traffic to the coordinator.
Looks from the antenna that all shouldering and components is OK also if you is having one spare antenna changing it.

@MattWestb I asked here because I thought i has something to do with the dimmer.
Since other devices with low LQI have now similar problems it would make sense that the low LQI of the dimmer could be the problem, I thought.

For My is OK but i thing the devs dont like to much off topics.
You can try the CC-2531 as coordinator but it shall being worse but never say never . . .
The the network having problems then the device can doing crazy things ans that is not good then debugging the code.

Despite having tried, I can't get anything clear from the sniffs (I don't even know how to get the messages that cross the device and the ZBGW).
However, I think there is a path worth exploring.
The error message is pretty clear UNSUP_MANUF_CLUSTER_COMMAND. I can't be sure if it's the reason why it doesn't work or it's just a random message caught in the sniff. But there is an "unsupported manufacturer_cluster command".
Tuya messaging has some defined commands and it could be that this device is not implementing them correctly (or implements them differently to others devices).
All the commands that Tuya implements are defined as variables:
https://github.com/zigpy/zha-device-handlers/blob/23a166902e50d5c32019e0d4d32a968715041bb6/zhaquirks/tuya/__init__.py#L25-L36
Well, the Tuya implementation (the new and the clasical ones) sends a TUYA_SET_DATA command:
https://github.com/zigpy/zha-device-handlers/blob/23a166902e50d5c32019e0d4d32a968715041bb6/zhaquirks/tuya/mcu/__init__.py#L206
As far as I have been able to check this is correct, but we could try to see what happens when we send any of the other commands to the device and check if accepts any.
To do this, simply change the command value in the tuya_mcu_command method of the TuyaMCUCluster class (custom_zha_quirks/tuya/mcu/__init__.py file):
    def tuya_mcu_command(self, cluster_data: TuyaClusterData):
        """Tuya MCU command listener. Only manufacturer endpoint must listen to MCU commands."""

        self.debug(
            "tuya_mcu_command: cluster_data=%s",
            cluster_data,
        )

        tuya_command = self.from_cluster_data(cluster_data)
        self.debug("tuya_command: %s", tuya_command)
        if tuya_command:
            self.create_catching_task(
                self.command(TUYA_SET_DATA, tuya_command, expect_reply=True)
            )
        else:
            self.warning(
                "MCU command not call for data %s",
                cluster_data,
            )

Replacing TUYA_SET_DATA for the values (as is, without quotes):

0x01
0x02
0x04

Logs of attempts with each value are welcome.

@javicalle unrelated to this in particular… did you see the links I sent you on discord? Tuya DP are documented on their site. I sent the links over. Let me know if they help at all with these devices.

One comment on wireshark sniffs:
Wireshark is "decoding" 95% if all Zigbee commands (some ZLL is not implanted) and the newest ZCL R8 is not in. And all that is not  standard is unknown like tuya DP manufacture cluster and tuya Zigbee manufacture cluster commands and attributes all must being "decoded" by hand but as long the frame and the handling of them is standard its OK.

@Tropaion thanks for testing.
With your logs I have reviewed the code again and I have made the following clear:
0x01 and 0x02
The commands are not among the manufacturer_server_commands in the Tuya cluster and an error occurs. Possibly the message is not sent.
https://github.com/zigpy/zha-device-handlers/blob/23a166902e50d5c32019e0d4d32a968715041bb6/zhaquirks/tuya/__init__.py#L1248-L1252
Also at 0x02 messages repetitions are generated, but I suspect this is a different message than the original.
0x04
The message is accepted, and the device responds:
- <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=13 command_id=Command.Default_Response>
- [4, <Status.UNSUP_MANUF_CLUSTER_COMMAND: 131>]

I find this interesting because the first value could refer to what the UNSUP_MANUF_CLUSTER_COMMAND is.
If in this case it is 0x04, the previous cases could refer to the 0x00 command, that is, the TUYA_SET_DATA command.

@javicalle So, can you get something out of this? Since I have holidays now, I have much time for tests when you need some.

If my theory is correct, we would have evidence that the commands 0x00 and 0x04 are not accepted by the device.
In order to do more tests, more changes need to be made.
To test the rest of the commands, you have to add them to the server_commands of the cluster TuyaNewManufCluster (custom_zha_quirks/tuya/init.py file):
    manufacturer_server_commands = {
        TUYA_SET_DATA: ("set_data", (TuyaCommand,), False),
        TUYA_SEND_DATA: ("send_data", (TuyaCommand,), False),
        TUYA_SET_TIME: ("set_time", (TuyaTimePayload,), False),
        TUYA_GET_DATA: ("get_data", (TuyaCommand,), True),
        TUYA_SET_DATA_RESPONSE: ("set_data_response", (TuyaCommand,), True),
    }

Please, repeat the test for 0x00, 0x01 and 0x02 commands.
All logs are important, but these Received command: AF.IncomingMsg.Callback have valuable information.

Test with 0x00:
2022-02-11 00:59:52 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=light, service=turn_on, service_data=entity_id=light.esszimmer_dimmer_325fa268_level_on_off>
2022-02-11 00:59:52 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0x0006] Sending Tuya Cluster Command...    Cluster Command is 1, Arguments are ()
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=1, cluster_attr='on_off', attr_value=1)
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] get_dp_mapping --> found DP: 1
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] from_cluster_data: 1, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=<TuyaDPType.BOOL: 1>, converter=None, dp_converter=None, endpoint_id=None)
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] ztype: Bool.true
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] from_value: [1, 1]
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] raw: b'\x01'
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=16, dp=1, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))
2022-02-11 01:10:04 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xAA66:1:0x0006]: executed 'on' command with args: '()' kwargs: '{}' result: Status.SUCCESS
2022-02-11 01:10:04 DEBUG (MainThread) [homeassistant.components.zha.entity] light.esszimmer_dimmer_325fa268_level_on_off: turned on: {'on_off': <Status.SUCCESS: 0>}
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0xAA66), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=61184, TSN=17, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x05\x41\x11\x11\x02\x00\x10\x01\x01\x00\x01\x01')
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>)
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=17)
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=61184, SrcAddr=0xAA66, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=18, SecurityUse=<Bool.false: 0>, TimeStamp=10367214, TSN=0, Data=b'\x18\x11\x0B\x02\x83', MacSrcAddr=0xAA66, MsgResultRadius=29)
2022-02-11 01:10:04 DEBUG (MainThread) [zigpy.zcl] [0xaa66:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=17 command_id=Command.Default_Response>

0x00
- <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=16 command_id=Command.Default_Response>
- [0, <Status.UNSUP_MANUF_CLUSTER_COMMAND: 131>]

The same in the second test
0x01
- <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=17 command_id=Command.Default_Response>
- [1, <Status.UNSUP_MANUF_CLUSTER_COMMAND: 131>]

0x02
- <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=17 command_id=Command.Default_Response>
- [2, <Status.UNSUP_MANUF_CLUSTER_COMMAND: 131>]

Another dead end. The command_id doesn't seem to be the problem.
It may be at a messaging higher layer, but for now I haven't reviewed how it works at that level.
Enough for today for me. Goodnight.

@Tropaion Look on your stick production date then its one batch that  is having large LQI problems https://github.com/Koenkk/zigbee2mqtt/issues/3819.

@MattWestb Thanks for the tip, i know contacted the manufacturer.

@javicalle Is there something we can still try/do? I really hope I don't have to throw away these dimmers.

Last week I contacted the manufacturer asking for help.
All have been nice words, but I have not received a response to the questions raised. I will insist again to see if they can guide us in knowing what is special about these devices.
I believe that the difference lies in a higher layer than the MCU payload, but I have not get time yet to understanding messaging at this level.
I think the provided sniffings are valuable at that level (I want to compare the differences between ZBGW messaging and HA messaging), but I haven't been able to decipher the data you've provided yet.

I really hope I don't have to throw away these dimmers.

I don't think it's necessary, at some point we'll be able to understand what's happening, but I don't think I'll be able to come up with a short-term solution.

@javicalle Install wireshark and then you need adding the network key and also the well known secret keys by: edit, preferences, protocol and Zigbee. then edit keys and adding them.

In the end we have only gotten a polite response and nothing more:

Our device don't support HA at present, our technology department are surveying now.
Will let you know once we have any updated information.

It doesn't look like we can get more this way.
@MattWestb I already have Wireshark installed but until now I had not used the keys, thanks for guiding me.
Until now I have tried to compare the HA and ZBGW messages to detect any difference. At the level of the IEEE and Zigbee layer I have not seen anything suspicious (I did not expect to find anything either).
Yes, it is true that some Ack messages are missing from HA, but I suspect that it is related to the debug log level (more write to disk --> more delay in HA responses --> device resends).
@Tropaion , if it's not too much trouble, could you re-generate the sniffs from HA and from ZBGW, but disabling traces in HA?
I want to review the messages without the possible delays caused by the logs.

@javicalle I can, but what do you mean with disabling traces?


Sorting problem.

Hi!
Looks like Fly not respects files order.
I'm trying to implement ng-filesort plugin, code works fine and returns files in right order, but .concat can't see it.
Plugin code:
const ngDeps = require('ng-dependencies')
const R = require('ramda')

function collectFileDep(file) {
  var deps = ngDeps(file.data);
  return {
    file: file,
    deps: deps,
    dependencies: deps.dependencies,
    modules: R.keys(deps.modules)
  }
}

function sortDeps(depFiles){
  if(!depFiles || depFiles.length === 0){
    return []
  } else {
    var declaredModules = R.uniq(R.reduce(function(modules, dep){
      return modules.concat(dep.modules)
    }, [], depFiles))

    var classifiedByDeps = R.groupBy(function(dep){
      if (0 <  R.intersection(declaredModules, dep.dependencies).length){
        return 'depended'
      } else {
        return 'independed'
      }
    }, depFiles)

    return classifiedByDeps.independed.concat(sortDeps(classifiedByDeps.depended))
  }
}

function sortFiles(files){
  return R.map(function(depFile){
    return depFile.file
  }, sortDeps(R.map(function(file){
    return collectFileDep(file)
  }, files)))
}

module.exports = function (){
  this.ngFilesort = function(options){
    this.unwrap().then(function(files){
      return sortFiles(files)
    })
    return this
  }
}

c @bucaran

@aki-russia
Hi. If you have a chance, would you mind trying this again against the latest distrubution<EMAIL_ADDRESS>There was a mayor API change from 0.2.0 in Fly's implementation and as a result unwrap() was simplified.
module.exports = function (){
  this.ngFilesort = function(options){
    this.unwrap(function(files){
      return sortFiles(files)
    })
    return this
  }
}

If this still does not work, ping me again and thanks for raising this issue!

@bucaran
Hi. I did try new<EMAIL_ADDRESS>it is still not works, but I found something interesting.
 Have you had any new advances after this?
I am not familiar with ng-filesort, what is this supposed to do?

@bucaran Hi!
ng-filesort is sorter that puts files in right order based on angular modules dependences.
I'll try last version and reply you soon.


No way to check "DontAskAgain" without prompting

Even if the user hasn't previously been prompted, when checking a permissions, the returnvalue is "Denied" instead of "ShouldAsk".
When checking the class in the aar, it looks like RequestPermission does check the "shouldShowPermissionDialog"-value (but it might be hard-coded in there in the C#?).
Is there any way to check if a User can still be prompted for a permission, without actually prompting them?

Please keep in mind the source code here hasn't been updated for 6 years. Since then, Unity introduced own permission system, a new type of activity (GameActivity), and Android requirements have evolved a lot too.

Even if the user hasn't previously been prompted, when checking a permissions, the returnvalue is "Denied" instead of "ShouldAsk".

Did you declare the permission you are asking for in the manifest?

When checking the class in the aar, it looks like RequestPermission does check the "shouldShowPermissionDialog"-value (but it might be hard-coded in there in the C#?).
Is there any way to check if a User can still be prompted for a permission, without actually prompting them?

Could you explain? - I don't follow the code references, and the last question is curious. :)


update base image to multiarch and fix doc.

update base image to multiarch - https://github.com/open-cluster-management/backlog/issues/11324
fix doc for MCO CR apply

/lgtm


modified confusion of cert and key.

Cert and key may be confused in some rows.

@liztio pretty sure this is an excellent catch, but can you PTAL? Thanks!
/assign

/lgtm
thanks a bunch @oke-py!

thanks for your review!

/approve


Create a new request state called "staged"

Along the same lines as of https://github.com/dmwm/WMCore/issues/9134 , this new request status will be needed as part of the MicroService Transferor design, such that it's clear the overall status of the input data (read primary/secondary/parent) placement. Allowing the next component in the chain (GQ) to proceed.
From
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py#L20
new request status transition would be:
"staging": ["staged",
                 "aborted"],
"staged": ["acquired",
                 "aborted"],

Fixed by https://github.com/dmwm/WMCore/pull/9209


fix root * pattern observers on mapped data (#1978)

Mapped data now correctly fires the pattern observer (see #1978, #1990):
const widget = Ractive.extend({
	oninit () {
		this.observe( '*', v => t.equal( v, expect ) );
	}
});

const r = new Ractive({
	el: fixture,
	template: `<widget value='{{foo}}'/>`,
	data: {
		foo: 'foo'
	},
	components: { widget }
});

Still an outstanding broader issue that keypaths are wrong, so mark this NOT READY FOR MERGE

:+1:


Structures spawning on custom world

Hi,
I have a problem here. I recently imported a custom world I made for my roleplay server and no matter what, structures spawn. I want to try and get rid of them, but Multiverse won't let me change the "structures" part from true to false.
Is there some way to turn off structures in Multiverse?

 For mv create command I believe its the -a false flag.

Also closing this issue as its inactivity. Feel free to create a new issue if needed or join our discord at https://discord.gg/NZtfKky


Error in LCOV after latest release

Version
28.0.0-next.2
Steps to reproduce
before upgrading to this latest next.x version i had no problem in coverage and sonarqube
comparing the situation before and after the ts-jest upgrade i think this is a bug
situation of a file and path in lcov.info with version 27.x
SF:src/server/config/mail.ts

situation of the same file and path in lcov.info with version 28.x
SF:src/server/src/server/config/mail.ts

as you can see src/server got duplicated with this latest version
I did not change anything in my tsconfig file
thanks
Expected behavior
correct file path
Actual behavior
root path get's duplicated
Debug log
extract
{"context":{"logLevel":20,"namespace":"config","package":"ts-jest","tsconfig":{"compileOnSave":false,"errors":[],"fileNames":["/src/server/config/mail.ts"]

Additional context
No response
Environment
"typescript": "^4.6.4"

node v16.13.2

Would you please try with next.3? We fixed a problem with source map which might be related

All good !


Use a cross-platform build system

This particular project has been created in Visual Studio, but the Vulkan API and all the dependencies work on many platforms. A cross-platform build system should be used instead.

Hello @xbohdan, I would like to work on this one. I am thinking of using CMake. How does that sound ? assign this task to me, I'll complete it in a day or two.


Authorize account before added as uploader

The current single-page will be split into two:

First an "uploader approval" view is presented, with a link to Google OAuth and a disclaimer about being added will also display the e-mail address.
After approval the same page will check the auth credentials and if authorized, the new uploader will be added to the package.

URLs:

The uploader confirmation URL is in the structure of: /admin/confirm/new-uploader/<package>/<uploader-email>/<nonce>.
The OAuth redirect/callback URL will be /oauth/callback
The OAuth state parameter will be the URL of the original confirmation page.
The OAuth callback handler uses the state parameter and redirects the request to the original uploader confirmation page.

The uploader confirmation handler updates/confirms the request only if a valid auth code is present AND the verified user e-mail is the same as was on the invite.

PTAL.

PTAL

I did quick edit through the github UI, it probably associated the wrong email with the commit, cla/yes.

Merged through #2134


Seeking doesn't work when zoomed

Description
The seeking indicator leads the mouse at zoom > 100% and lags the mouse at zoom < 100%. This is usability issue for people who use zoom as an accessibility feature.
Reproduction

Run the Storybook.
Navigate to any Waveform story.
Change the zoom level using the zoom +/- buttons.
Hover over the waveform and notice the positioning of the black bars.

Expectation

The bars should be directly under the mouse, as they are at 100% zoom.
Screenshots

Zoom 90%:
https://user-images.githubusercontent.com/16580576/145172323-d2a63808-325b-4c9e-a34c-2413c19f6cb3.mov
Zoom 100%:
https://user-images.githubusercontent.com/16580576/145172062-feaa7a93-7edc-4490-85ce-dd36f11a0a98.mov
Zoom 110%:
https://user-images.githubusercontent.com/16580576/145172191-1ced2bdf-3fd0-4a70-b4e0-22886f2cd36f.mov
Additional context

I believe the getPosition logic in the Waveform component is sus.
Resolution

[ ] 🙋 I would be interested in resolving this bug.

It seems this was Storybook specific. Seeking works normally when the browser's built-in zooming functionality is used.
Storybook's zoom functionality works using the zoom CSS property which, unlike CSS transforms, affects the layout size of the element.


plugin-sh: Ignored unknown option warning

Bug Description
After running either of the following commands: prettier --write . or prettier --check .,  my logs are filled with Ignored unknown option warnings. My shell files (and a .gitconfig file) are still being formatted, however.
Sample output from running prettier --write .
[warn] Ignored unknown option { functionNextLine: true }.
[warn] Ignored unknown option { indent: 4 }.
[warn] Ignored unknown option { keepComments: true }.
[warn] Ignored unknown option { keepPadding: false }.
[warn] Ignored unknown option { spaceRedirects: true }.
[warn] Ignored unknown option { switchCaseIndent: true }.
[warn] Ignored unknown option { variant: 0 }.
scripts/prepublish.sh 31ms
scripts/ts/debug.ts 26ms
scripts/ts/fix-node-module-paths.ts 69ms
scripts/ts/release.ts 258ms
[warn] Ignored unknown option { functionNextLine: true }.
[warn] Ignored unknown option { indent: 4 }.
[warn] Ignored unknown option { keepComments: true }.
[warn] Ignored unknown option { keepPadding: false }.
[warn] Ignored unknown option { spaceRedirects: true }.
[warn] Ignored unknown option { switchCaseIndent: true }.
[warn] Ignored unknown option { variant: 0 }.
scripts/zsh-install.sh 79ms

Steps to reproduce

Clone the repro repository
Remove @flex-development/exceptions and @flex-development/tutils from dependencies
Run yarn in the project root
Run yarn check:format or yarn fix:format
See error (extraneous warning logs)

Expected behavior

There should be no warnings in the console.
Relevant screenshots

Screenshot of logs after running prettier --check .

Environment

prettier version: v2.3.1
prettier-plugin-sh version: v0.6.1

Possible solution

Unsure of a possible solutions.
Additional context

Another user had this issue, but their problem seemed to disappear. See issue #106

In the screenshot above, you can see the second Prettier configuration I tried. The first looked like this:
module.exports = {
  arrowParens: 'avoid',
  bracketSpacing: true,
  functionNextLine: true,
  htmlWhitespaceSensitivity: 'css',
  indent: 4,
  jsxBracketSameLine: false,
  jsxSingleQuote: true,
  keepComments: true,
  keepPadding: false,
  parser: 'sh',
  printWidth: 80,
  proseWrap: 'always',
  quoteProps: 'as-needed',
  semi: false,
  singleQuote: true,
  spaceRedirects: true,
  switchCaseIndent: true,
  tabWidth: 2,
  trailingComma: 'none',
  variant: 0
}

I think this is a prettier usage question, you are passing sh specific options for all files including .ts files which is not related to the plugin.
Personally I think the warning strategy is bad.

I think this is a prettier usage question, you are passing sh specific options for all files including .ts files which is not related to the plugin.
Personally I think the warning strategy is bad.
If you think this is unexpected, please report to prettier instead.

@JounQin
This issue should be re-opened. I don’t think you interpreted it correctly. The screenshot I included shows my latest Prettier configuration (see above: “In the screenshot above, you can see the second Prettier configuration I tried”).
In the screenshot, you can see I set overrides[0].files to *.sh, thus, to my understanding, only passing plugin options to sh files. The code snippet you’re alluding to was included for context.

It's clear that a plugin has no control how prettier's warning, so please raise issue on their side.

<EMAIL_ADDRESS>released
I tried your reproduction, it's working now.

@JounQin
Thanks so much for the quick response and I appreciate you tackling this issue. I’ll install the latest version and drop a comment later just to confirm.

@JounQin everything works as expected! thanks again!


SyntaxError: Invalid or unexpected token in tasmota and zigbee2mqtt nodes when installing enocean node

I get errors when starting Node-RED 1.06 with two other nodes as soon as I install the enocean node and restart Node-RED.
My config:
Node-RED Version: v1.0.6
Node.js  Version: v12.16.3
Linux 5.4.35-v7+ arm LE  (Raspberry Pi 3b with Raspbian buster-lite)
Dashboard version 2.22.1 started at /ui
with or without SSL does not matter
[warn] [node-red-contrib-tasmota/Tasmota switch] SyntaxError: Invalid or unexpected token
[warn] [node-red-contrib-tasmota/Tasmota sensor] SyntaxError: Invalid or unexpected token
[warn] [node-red-contrib-tasmota/Tasmota light] SyntaxError: Invalid or unexpected token
[warn] [node-red-contrib-zigbee2mqtt/in] SyntaxError: Invalid or unexpected token (line:3)
[warn] [node-red-contrib-zigbee2mqtt/get] SyntaxError: Invalid or unexpected token (line:2)
[warn] [node-red-contrib-zigbee2mqtt/out] SyntaxError: Invalid or unexpected token (line:2)
[warn] [node-red-contrib-zigbee2mqtt/bridge] SyntaxError: Invalid or unexpected token (line:2)
[warn] [node-red-contrib-zigbee2mqtt/server] SyntaxError: Invalid or unexpected token (line:2)

But this combination has worked for 4-5 days. I was able to check the state of my Enocean based Hoppe door handle together with all other nodes.
After deinstallation of the node-red-contrib-enocean, both other nodes start and act like expected.
see the current discussion in the Node-RED forum:
https://discourse.nodered.org/t/tasmota-node-not-working-after-tasmota-8-30-firmware-update/26740/19

might be a clash of USB ports... make sure to always remove the config nodes as well... (Menu->Config nodes)


dotnet publish task won't parse build error

If there's a build issue in the project, the dotnet publish task will only display the following error:
Dotnet command failed with non-zero exit code: 1.
Would be nice if the actual build errors were shown in the build summary page instead of this (not so informative) error message.

This is fixed and will get updated in the next deployment.


OCP type-ahead support

Update the OCP details page and Cost Explorer to use new typeahead features (i.e., clusters, projects, & nodes) introduced via the resource-types API.

Codecov Report

Merging #2012 (73bec95) into master (3c1380c) will decrease coverage by 0.11%.
The diff coverage is 32.14%.

@@            Coverage Diff             @@
##           master    #2012      +/-   ##
==========================================
- Coverage   71.05%   70.94%   -0.12%
==========================================
  Files         387      388       +1
  Lines        7062     7086      +24
  Branches     1516     1525       +9
==========================================
+ Hits         5018     5027       +9
- Misses       2018     2033      +15
  Partials       26       26

Impacted Files
Coverage Δ

src/api/resources/resourceUtils.ts
17.14% <7.14%> (-2.86%)
:arrow_down:

src/api/resources/ocpResource.ts
40.00% <40.00%> (ø)

src/api/resources/resource.ts
100.00% <100.00%> (ø)

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 3c1380c...73bec95. Read the comment docs.


Get the current state

A new API method would be nice, where we can see the plugin's current state (unlocked, or locked to a specific orientation). There is a private property for this in the .js file, but it is not published on the screen object.
Example - why would anyone need this:
Someone developing a plugin, which has a screen where an orientation lock is required. When the plugin's screen has disappeared I want to restore the previous screen status. With the current API, I am not able to tell if the screen was locked or not and I don't want to unlock it if the main application had a good reason to lock it in the first place.
Code snippet required:
screenObject.getCurrentOrientation = function() {
return screenOrientation.currOrientation;
};

@TorokDaniel - If I understand correctly, you want to be able to know if the orientation is locked or unlocked.  I think this will be possible after the plugin is updated to the latest spec (see #102).  There are some details I'm not sure about.  For example, if the Orientation preference is set to Portrait and this plugin is installed but the orientation is not currently locked by the plugin, what behavior would you expect?  I guess in this case, the plugin should detect that the orientation is locked to portrait even though this was done via preference instead of via this plugin?

Migrated to Apache Cordova JIRA CB-11360


Emba installation “Error: for emba ‘ContainerConfig’

Hello. I am attempting to install Embark. Running on Kali 2024.3. I was able to install and execute EMBA successfully.
But when I attempt to execute the Embark installer the installation of EMBA fails with “Error: for emba ‘ContainerConfig’.
If I simply switch directories to the earlier clone of just EMBA, I am still able to successfully run the installer.
I thought perhaps the submodule update could be pulling a version of EMBA that is broken, so have checked out master (I build the recent 1.4.2 release tag of EMBA initially). The master branch fails with the same error when trying to build EMBA. However, I added some logic to the Embark installer, the install_emba function, to checkout the latest release for install, but it still failed:
…
cd emba
git fetch  —tags
LatestTag=$(git describe —tags “$(git rev-list —tags —max-count=1)”)
git checkout $LatestTag
./installer.sh -d …

Separately, at one point I thought I was hitting a rate limit on DockerHub and tried another registry using the -c option. In the process I ran into some new errors. I think you may need to add export CVE_SEARCH=0 and export DOCKER_SETUP=1 to the container argument switch case in installer.sh
I see that this error is related to the docker-compose transition. Does that mean I need to drop the kali docker packages and add the docker repo as noted in #216 ?

In short: Yes you are 100% correct, switch to the compose plugin.
Longer: for EMBA within EMBArk we use a alias for docker-compose to docker compose so we are able to run it.
This also means you would have an issue on your system if the old docker-compose binary still exists.
On EMBA side we like to keep kali-package versions where possible.

Currently we only support ubuntu for embark.
Sorry about that

Okay, no worries. I’ve made the switch to Ubuntu 22.04, and have been working through the install and various configs needed for my env.
I am now running into: docker: ‘compose’ is not a docker command. from the Embark installer.
I see that the Emba installer performs a check for ‘docker-compose’ vs ‘docker compose’. Should this check be added to the Embark installer?
My docker version reports 24.0.7 and my docker-compose version returns 1.29.2.
How should I proceed?

Changing to docker-compose in installer.sh didn’t work.
I was missing some of the packages from the Docker repo.
It’s up and running now.


2.13 refinement/explanation

§2.13 says:

[...]  the caller MUST raise this error condition in a fashion that is adequate for the runtime environment.

I've asked about this, and @viktorklang replied saying:

[...] instead of rethrowing the exception it should use whatever mechanisms provided to it, this may include things like logging.

This reply contains a vital point which I didn't get from reading the rule, namely that the caller should not rethrow the exception. To make this clear, I propose to add an additional phrase for this to the rule:

[...]  the caller MUST guarantee violating exceptions are not propagated further up the call stack and MUST raise this error condition in a fashion that is adequate for the runtime environment.

We need to avoid having negative rules, and instead focus on speccing the only compliant behavior.
Citing the full rule here:

Calling onSubscribe, onNext, onError or onComplete MUST return normally except when any provided parameter is null in which case it MUST throw a java.lang.NullPointerException to the caller, for all other situations the only legal way for a Subscriber to signal failure is by cancelling its Subscription. In the case that this rule is violated, any associated Subscription to the Subscriber MUST be considered as cancelled, and the caller MUST raise this error condition in a fashion that is adequate for the runtime environment.

In the last sentence caller is a Publisher and there would be nowhere for that Publisher to re-throw the exception to. Since It would either run async and would only be able to throw to the thread pool which runs it, or sync, in which case it would be in subscribe and that is governed by:

1.9: Publisher.subscribe MUST call onSubscribe on the provided Subscriber prior to any other signals to that Subscriber and MUST return normally, except when the provided Subscriber is null in which case it MUST throw a java.lang.NullPointerException to the caller, for all other situations [1] the only legal way to signal failure (or reject the Subscriber) is by calling onError (after calling onSubscribe).

Do you think adding a footnote for adequate for the runtime environment explain "eg. log"?

I'm probably missing something, but why can't a Publisher just ignore the exception and let it bubble up the call stack (except for the case where this occurs inside subscribe, which is indeed forbidden by §1.9)? Maybe this is actually adequate behavior for a runtime environment in which the thread pool handles any exceptions itself?

@anthonyvdotbe If you think about it: which capacity is the Thread which runs the Publisher equipped to handle the failures of the Subscriber (which could "run" on some other machine)?

@viktorklang couldn't the Publisher rely on e.g. ThreadPoolExecutor::afterExecute, or the Thread's UncaughtExceptionHandler?

@anthonyvdotbe How would that know what to do with it, and how would the Publisher recover if it blows its own stack?

I believe this:

how would the Publisher recover if it blows its own stack?

is what I'd been missing all along. So am I correct in saying the caller MUST be able to recover from violations of rule 2.13? If so, I fully get it & would like rule 2.13 to end as:

[...] and the caller MUST be able to recover from this error condition, and MUST raise it in a fashion that is adequate for the runtime environment (e.g. log).

Either way, thanks for your help @viktorklang

@anthonyvdotbe I'm not sure that solves your problem, it only shifts it to the definition of "be able to recover".
See it like this: The rule is about what the Publisher should do if the Subscriber violates the spec. Technically the spec could omit that, but for the sake of resilience, we don't want those exceptions to propagate, because imagine a "pipeline" of 1 publisher + 1 processor + 1 processor + 1 subscriber where each of these live in different JVMs, since there is no exception backchannel, only a demand backchannel, there's no way to propagate the exception "backwards" in the chain, which means that the exceptions need to be dealt with locally. This is why non-fatal exceptions are not allowed to be thrown (except for the rules which state otherwise).
I'd like to make these kinds of things (the rationale for each of the rules) as transparent as possible, and I regrettably still haven't had time to sit down and for each rule write a rationale so that the "casual reader" can gain a deeper understanding of why the rules are as they are.

Thanks @viktorklang, I'm starting to get it.
Yes, being a casual reader myself, it would definitely be helpful to have these rationales & insights (e.g. the fact that different components of a pipeline might run in different JVMs) available along with the specification. I learned about reactive streams by looking into Java 9's Flow API, and I'd guess the number of casual readers will grow substantially once Java 9 is released.

@anthonyvdotbe Perhaps this summer, during my vacation, I'll find some time to distill these things :)

Apologies for the delay here, fixed in #339


Added docstring to init to pass pydoctest

Sorry, I noticed in the last PR now the action fails on master because an init was missing a docstring. I added one to get the action passing on master! Thanks for the great repository!

Lol. Yeah, I missed that too until after I merged your other PR and the lint failed.  But, hey, a real world example of your fix in action!  I'm glad you're finding it useful.

Haha nice to see the change working 😅 : ). I don't think issues are enabled for this repository, but I was wondering if you'd be interested in me doing a refactor of the bash script so that all of the style checks run in the action and then it exits at the end if any one of them fail.  I think as it is now the action exits as soon as one lint fails, but I find for code reviews it can be nice to see a report of everything that went wrong. However, this comes with the downside of more action compute.  So I could see an argument for either way. Anyway, I'd love to tackle that if you're open to a PR :D.


Error decoding empty recent_context

I'm running Fedifetcher in a Docker container. After a few days of running, it fails almost immediately after starting. The recent_context file itself is empty (length 0) at that point in time.
2024-08-05T11:41:08.170486503Z 2024-08-05 11:41:08 UTC: Starting FediFetcher
2024-08-05T11:41:08.304353199Z 2024-08-05 11:41:08 UTC: Job failed after 0:00:00.134115.
2024-08-05T11:41:08.305561647Z Traceback (most recent call last):
2024-08-05T11:41:08.305586847Z   File "/app/find_posts.py", line 1585, in <module>
2024-08-05T11:41:08.305842088Z     recently_checked_context = json.load(f)
2024-08-05T11:41:08.305854448Z                                ^^^^^^^^^^^^
2024-08-05T11:41:08.305857848Z   File "/usr/local/lib/python3.11/json/__init__.py", line 293, in load
2024-08-05T11:41:08.306184970Z     return loads(fp.read(),
2024-08-05T11:41:08.306251691Z            ^^^^^^^^^^^^^^^^
2024-08-05T11:41:08.306267811Z   File "/usr/local/lib/python3.11/json/__init__.py", line 346, in loads
2024-08-05T11:41:08.306271131Z     return _default_decoder.decode(s)
2024-08-05T11:41:08.306329651Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-05T11:41:08.306336291Z   File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode
2024-08-05T11:41:08.306339371Z     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2024-08-05T11:41:08.306342051Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-08-05T11:41:08.306344731Z   File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode
2024-08-05T11:41:08.306508852Z     raise JSONDecodeError("Expecting value", s, err.value) from None
2024-08-05T11:41:08.306519252Z json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Why would you have an empty file there? Did you place it yourself?
The file should either be non-existent (before first run) or have valid JSON content (e.g. an empty array [] if there are no recently checked contexts).
Are you able to remove the file?

OK, I'll close this issue for now. Feel free to re-open if this happens again.


Syntax Highlighting

Very good plugin, I found an issue for specific file configuration with 11ty.
I'm using the before callback for a specific file, because I need to filter my variable for localisation, normally I do not need that, because I do create page in every languages.
But using ---js broke syntax highlighting but it is required for 11ty (https://www.11ty.dev/docs/pagination/#the-before-callback)
https://user-images.githubusercontent.com/23478544/173084613-3f14d43d-a957-4af3-8cc7-f7249d63f604.mp4

@michael-proulx That's interesting... I'm assuming the file extension is either html or njk ?

Yes it's index.njk

@michael-proulx
I have a working modification that extends the YAML support so the highlighting does not break.
As of right now, this is more of a workaround, since I just included some regex to accommodate the 11ty's custom frontmatter.
https://user-images.githubusercontent.com/402910/173113811-3b239081-0634-4425-ba84-3f39f12d608b.mp4

@michael-proulx
I'll do some more research on how to add additional syntax highlighting for embedded grammars like json/toml/js but right now I don't know if there is a way to do this inside of frontmatter.

Nice thank you !! :)

As of the current version, I see something like this:

When the specified language is HTML: Only the frontmatter has syntax highlighting. (It's a monochrome theme, but still.)
When the specified language is Nunjucks: Highlighting more broken.

Plus tooltips for HTML tags no longer work. I've added the emmet configs mentioned in multiple extensions but can't be sure this's even meant to re0enable tooltips or something else entirely.

As of the current version, I see something like this:
When the specified language is HTML: Only the frontmatter has syntax highlighting. (It's a monochrome theme, but still.)
When the specified language is Nunjucks: Highlighting more broken.
Plus tooltips for HTML tags no longer work. I've added the emmet configs mentioned in multiple extensions but can't be sure this's even meant to re0enable tooltips or something else entirely.

@munael Could you provide me a little more context or the file you're trying to get syntax highlighting working?


Make explicit the execution order of tasks

Tasks that are comprised of other tasks need to have an execution order

Fixed by using rdf:lists to model subtask lists in commit 8f735b6e80853094938f48e86b78523527c7eccf


PoS Hypersync Testing

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#1130  👈
#1122
#1089
#1124
feature/pos-hypersync-updates

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @AeonSw4n and the rest of your teammates on  Graphite


Automatically assign colours based on RegEx match

Could also do shapes, etc

Probably best to implement this in the following way:

Check the regex has only one capturing group. Bail if more than one.
Pass over tree building list of match values from that capturing group.
Apply the colours / shapes etc in each list.

A sophisticated extension might be to allow more than one capturing group - and use the, say, pair of values to assign a colour.

Supporting more than one capturing group turned out to be trivial.
Coding done.

Shipped in https://github.com/MartinPacker/filterCSV/releases/tag/v2.0.


Upgrade Yarn to v3 ?

Is your feature request related to a problem? Please describe.
Yarn v1 is in security maintenance mode only since few years now.
Yarn v2 offers new feature with better support of workspaces and more stable dependency resolver.
Is the migration to yarn v2/3 something you want ? If so, I can give a try to upgrade, I have recently done the migration on multiple repositories.
Describe the solution you'd like
You surely know that the main pain point in upgrading to V2 is PnP being the default linker.
The easier way to upgrade is to use the node_modules linker. This removes any imcompatibility (like with TypeScript).

We are quite happy with yarn v1 right now.


403 Forbidden

From what I can tell this has been patched. shame..

Pretty sure this is an abandoned project, someone is actively developing a Chrome extension to do the same thing though on github, so if anyone happens to see this, now you know, go find it.


[Documentation] Sync on Save vs Sync on Editor Save

Under "Synchronization Methods" there are two options available, namely Sync on Save vs Sync on Editor Save. I wonder what are the differences and what do they actually do.
I realized that there are two types of saving in Obsidian, automatical and manual. Manual save via command or hotkey will help some plugins to work more properly.
Probably related to #303.

Thank you for opening the issue!
As you mentioned, the difference between Sync on Save and Sync on Editor Save is reacting to storage events or UI events (which were a bit forcibly intercepted).
I will address to add some notes, thank you so much for your advice! And, I will also read the issue that you have mentioned!


Remove extra enter

Codecov Report

Merging #264 (a82b9bb) into master (c5663db) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #264   +/-   ##
=========================================
  Coverage     73.93%   73.93%
  Complexity      680      680
=========================================
  Files            96       96
  Lines          2122     2122
  Branches        264      264
=========================================
  Hits           1569     1569
  Misses          473      473
  Partials         80       80

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 c5663db...a82b9bb. Read the comment docs.


aks-preview: Add podMaxPids argument for node config

I decided to re-apply changes as there was a significant amount of rework before the last PR was attempted to be merged.

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

aks-preview


feat: add Devsite Javadoc profile

I'm not sure the best way to test this. I tried activating the profile, but it doesn't work because there are no packages to generate docs for, so the antrun replace and copy steps fail.
I copied this from prototypes for java-vision and java-bigtable, which worked.

Sounds good! We will need some additional configuration changes at a later date. But, this will be a great start.
Will one of you merge? I don't have permission.


Fix that SA1649 does not support simple names

Fixes #1730.

Current coverage is 79.48%

Merging #1743 into master will decrease coverage by -0.01% as of e905597

@@            master   #1743   diff @@
======================================
  Files          546     546
  Stmts        32741   32747     +6
  Branches      9070    9071     +1
  Methods
======================================
+ Hit          26028   26030     +2
- Partial       5269    5273     +4
  Missed        1444    1444

Review entire Coverage Diff as of e905597

Powered by Codecov. Updated on successful CI builds.

:+1: Looks good to me


Added HTML5 elements and tests

colorField
emailField
rangeField
urlField

Review status: 0 of 25 files reviewed at latest revision, 28 unresolved discussions.

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/ColorSetEvent.java, line 25 [r1] (raw file):
textToSet >> colorToSet
Also in field and set / get

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/EmailClearedEvent.java, line 9 [r1] (raw file):
text >> email field  or "text of an email field"

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/EmailSetEvent.java, line 11 [r1] (raw file):
text != email!

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/EmailSetEvent.java, line 32 [r1] (raw file):
textToSet >> emailToSet
Also in field and set / get

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/RangeClearedEvent.java, line 9 [r1] (raw file):
text != range

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/RangeClearedEvent.java, line 18 [r1] (raw file):
Range returns integers, why are strings stored?

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/RangeSetEvent.java, line 9 [r1] (raw file):
text != range

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/RangeSetEvent.java, line 23 [r1] (raw file):
rangeToSet
Also in field and set / get

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/UrlClearedEvent.java, line 10 [r1] (raw file):
text != url

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/UrlSetEvent.java, line 10 [r1] (raw file):
text != url

webtester-core/src/main/java/info/novatec/testit/webtester/eventsystem/events/pageobject/UrlSetEvent.java, line 23 [r1] (raw file):
textToSet >> urlToSet
Also in field and set / get

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/ColorField.java, line 58 [r1] (raw file):
method not necessary, getText() already does this...

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/ColorField.java, line 71 [r1] (raw file):
no separate method necessary, simply override TextField's clear() method

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/ColorField.java, line 120 [r1] (raw file):
toLowerCase() is redundant since the equals comparison is already done ignoring the casing

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/EmailField.java, line 53 [r1] (raw file):
method not necessary, simply extend textField and inherit the behavior. Take a look at PasswordField. This is basically the same usecase.

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/EmailField.java, line 81 [r1] (raw file):
method not realy necessary, since we are not providing a "setPassword" method on the password field this can be done in the same way. Simpley override and use super.setText(). Having this method will confuse the API since the setText() method will be inherited anyway...
the specialized events are also somewhat redundant. We do not provide specialized events for password field actions.

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/EmailField.java, line 104 [r1] (raw file):
toLowerCase() is redundant since the equals comparison is already done ignoring the casing

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 45 [r1] (raw file):
This null return is not documented!

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 60 [r1] (raw file):
This null return is not documented!

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 75 [r1] (raw file):
This null return is not documented

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 89 [r1] (raw file):
instead of a new method, this should be done by overriding clear()

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 117 [r1] (raw file):
setRange is missleading, since this method set a value..  a range requires 2 paramters ("to" and "from") and is not applicable in this context

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 118 [r1] (raw file):
since value is overridden via javascript the reset is redundant

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/RangeField.java, line 140 [r1] (raw file):
toLowerCase is redundant because equality comparison already ignores casing

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/UrlField.java, line 41 [r1] (raw file):
does the same as getTExt() therefor uneccessary

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/UrlField.java, line 54 [r1] (raw file):
shoudl be done by overriding clear() not providing a redundant second method

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/UrlField.java, line 82 [r1] (raw file):
method not really necessary, since we are not providing a "setPassword" method on the password field this can be done in the same way. Simply override and use super.setText(). Having this method will confuse the API since the setText() method will be inherited anyway...
the specialized events are also somewhat redundant. We do not provide specialized events for password field actions.

webtester-core/src/main/java/info/novatec/testit/webtester/pageobjects/html5/UrlField.java, line 83 [r1] (raw file):
value is set using javascript >> reset() is redundant

Comments from the review on Reviewable.io

Reviewed production classes. Since there were a number of things that should be changed i skipped the review of the test classes for now.

The changes in this pull request should also be documented in the user documentation

PR closed - will be re created when fixes are done..


add Node Security Platform (NSP) support

Motivation:
To help identify/discover known vulnerabilities in this project.
Modifications:
Added nsp to the CI configuration (Travis).
Result:
nsp check will be run as part of CI
JIRA:
https://issues.jboss.org/browse/RAINCATCH-189

Landed in: 8d5f3c54eaed4566e6d73564cf66ab8f3818077c


Loggly support

Has anyone tried to specialise XCGLogger to send to Loggly. I may have a go, so any pointers to similar would be appreciated.

Hi @sjpickup, I'm hoping to get an update out this weekend, with some additional log destinations. If I can fit it in, I'll add Loggly as well.

This would be great! Really appreciate looking into it!

If this is still actual I was using myself this for Loggly:
Destination:
https://gist.github.com/fassko/2e4852095a18498f8cd7a7c34b5e1836
Add destination:
https://gist.github.com/fassko/85bb78fc8ed8a74bdfaf3e6949a33a82
I could try to add a PR as well if this looks OK?


Update checksums

Updates checksums in manifests.xml and edgemicro-auth.xml

Looks like this is out of date. Closing.


ORC-1489: Assign a writer id to CUDF

This is a backport of #1594

This is resolved via 488184b33eb3d662e89ecc10f2c3e5fab6f34bf5


Improve test coverage in operator/pkg/manifest

Currently at 50.0%.

@ostromart I don't see operator/pkg/manifest anymore.
If it's refactored, can you point me to a new path?
If not, let's close this issue.


parseInt() returns NaN when the first argument is empty string.

ex) parseInt('', 10) -> NaN

Hi,
First of all, thank you for your interest on the plugin. However, I'm afraid I'm not sure why the result should be 0 when it gets an empty string. If it's an empty string which is surely not a proper integer string, the result should naturally be NaN.
Anyway, I'm sorry the PR can't be merged and thanks again.
Cheers,

Hi,
Actually, I've been encountering this issue in real works (I'm using the latest version of chrome). So this is not for "just in case" and my fix solved the issue indeed.
Please reconsider the request.

Hi,
If there is the issue you've been encountering, I'd fix the base reason that an empty string is indeed passed to the function, which shouldn't happen, rather than making it workaround.
Can you provide a stack trace of the problem for me to narrow down the reason why an empty string is passed?
Cheers,

OK. I've attached some screenshots.

As you see, window.getComputedStyle(element)[styleName] (in cssGet() function) returns empty string when styleName is marginRight, borderLeftWidth or some.

Oh, now I see. Cause getComputedStyle gets style values even though it's not been set, I wondered why it returns an empty string. But I found that if an element is detached from the DOM tree, it returns an empty string. I'll work on this and make a patch to cover the case.
Thanks for the report.

4a7f27356afb7814698c3804615f8c8d6b224f8f has been uploaded and I hope this patch fixes the problem by ensuring there are proper scrollbars in the container. The patch will be included in the next release.
If there's any further problem, feel free to contact me :smile:
Cheers,

I applied and tested the patch, unfortunately the issue still occurs. I will invest gate more, and have plan for creating some example or test about this issue later.
Thank you for the support, though :)


Chess: Move H4 to H5

Please do not change the title. Just click "Submit new issue". You don't need to do anything else :D

ok


test: implement test for countable component

Issue(s):
Description
Please provide a brief description of the changes made in this pull request and how they address the related issue.
Checklist

[x] CI Verifier: Run ./scripts/cairo_programs_verifier.sh successfully
[x] Contract Tests: Added tests to cover the changes

@julio4  ready for review

@julio4 ready for review

@NueloSE Do you need any help to finish this?

Yes I need help I haven't been able to figure how to add test to test emitted events for switchable and ownable

@julio4 Yes I need help I haven't been able to figure how to add test to test emitted events for switchable and ownable

Read the tests of this section. (Be sure to toggle hidden lines)

Hi @julio4

I have added the ANCHOR tags
Implemented the test for emitted events in the reference sample but the test keeps failing for the emitted events.
A screenshot has been attached of the error

Hi @julio4

I have added the ANCHOR tags
Implemented the test for emitted events in the reference sample but the test keeps failing for the emitted events.
A screenshot has been attached of the error

@julio4 I tested this locally and I experienced the same issues. It's like events are not being emitted from components.
@NueloSE could you try updating your tests to use Foundry (see Testing Smart Contracts)? Maybe these are some issues that they solved.

I tested this out with Foundry too, and found that there's a bug when spying on events emitted from components. Created a ticket for this to be investigated further, see starkware-libs/cairo#5861.

Good find, we can just comment the event spying for now.

Ready for Review

lgtm


Added load/save support (second attempt)

Hi guys, me again. I think I've reach the limits of my Git skills (still need honing those).  Thought I'd do better than my previous attempt (see: https://github.com/spotify/docker-client/pull/298) but could not get  the squashing right.
Aside from the squashing issue, I've factored in all comments. Here's a reminder of what the contribution is about:

DockerClient.load allows loading the tarball of an image as a stream. An image name must be passed in, and the load implementation internally tags the just loaded image with the provided name. The load implementation is passed on Docker API's pull, which takes a fromSrc parameter, indicating it to treat the request's body as the .tar payload of the image.

DockerClient.save allows pulling the .tar stream of an image (and saving it locally or whatever).

You'd be very kind to accept this contribution and rest assured I'll try to polish my Git skills for next time (I look forward to using your client in a current project, and would not hesitate contributing to it again).

BTW, one thing I don't get is that I dont see the "Fixed CircleCI" in my commits in my branch after my rebasing/squashing attempt. Yet it sill appears above. Not sure where that's taken from.

@yduchesne sounds like maybe you rebased/squashed locally but didn't push the updated branch to your fork? You would need to do git push -f to update it

That's the point, I did... So I'm not sure how the history above is "composed". It does not seem like an actual representation of the git repo's history. Strange.

@yduchesne It was a bit tricky, but I've opened a new PR here https://github.com/spotify/docker-client/pull/301 with all the commits squashed.


Added Dassault Systèmes SE (3DS)

Summary
< A quick summary of the associated pull request >
Quality Assurance Checklist
< Confirmation of this pull request meeting the following requirements, prior to merge >

Review Items
Y/N

Site has a publicly known bug bounty or vulnerability disclosure program
y

Disclosure policy is publicly available
y

Public URL
y

Submission follows the Diodb schema
y

Your Twitter handle (Optional):
@sickcodes

Thanks @sickcodes!


Feature Request : Ability to specify additional annotation as injecetion points

Hi Guys,
A few of the newer libraries are mixing and matching other annotations for injection points, such as MicroProfile Config,
Whereby the @ConfigProperty(name = "test") is both a named, and an injection point.
I have overcome this through shading the guice-core library, and adding a very simple SPI Interface to InjectionPoint class,
static Annotation getAtInject(AnnotatedElement member) {
    Annotation a = member.getAnnotation(jakarta.inject.Inject.class);
    a = a == null ? member.getAnnotation(Inject.class) : a;
    //#GedMarc update to allow alternative injection pointers
    if(a == null) {
      List<Class<? extends Annotation>> annotations = new ArrayList<>();
      ServiceLoader<InjectionPointProvider> load = ServiceLoader.load(InjectionPointProvider.class);
      load.forEach(iPoint -> {
        annotations.add(iPoint.injectionPoint(member));
      });
      for (Class<? extends Annotation> annotation : annotations) {
          //noinspection ConstantValue
          if (a == null) {
         a= member.getAnnotation(annotation);
          if (a != null) {
            a = new Inject(){
              @Override
              public Class<? extends Annotation> annotationType() {
                return annotation;
              }
              @Override
              public boolean optional() {
                return member.isAnnotationPresent(Nullable.class);
              }
            };
            break;
          }
        }
      }
    }
    return a;
  }

While I am sure there is probably a much cleaner way to implement this functionality, this rather simple extension works perfectly so far across the spectrum (of my visibility)
Would it be possible to consider such an update to the Guice framework for enabling this modification of Injectables, to allow any custom annotation binding to be used as an injection point according to a client service provider?
This has been done in the GuicedEE framework, to enable MicroProfile and meet the TCK requirements,
Many thanks

As we know PR's get resolved internally, I apologize for the white spaces, if it needs to be updated please let me know (y)


add --ignore-errors argument for copyright content making process stop

Do you have an example of a video that's affected by this?

Yeah, https://www.youtube.com/watch?v=33w-ojFXUbw. It will download the ytdl file and part file but after that it wont turn into an MP4, MKV, or any other type of video file.
As with some others, it won't download anything and stop. Using youtube-dl CLI, it says: "YouTube says that this videos contains copyright content from FOX causing it to be unable to be downloaded." It isn't those exact words but it is to that sort.


Validators define properties

This simplifies writing new Validators and defines all supported properties.

No need to override equals(), hashCode() and toString() - already implemented in Validator.java
Default properties are now provided in constructor, avoiding more of boiler-plate code
All default properties will become visible to Intellij and WordPress plugins via ConfigurationBuilder
Simplify all bundled Validators, so their code is much more readable now

Can you please merge origin master?

Rebased to master

Thanks!


how to config seperate aws credentials for s3 remote bucket and aws provider?

I just ran into a scenario where I want to store terragrunt/terraform state in the same s3 bucket as the rest of our dev/prod envs but manage aws resources under a different account.  I'm a bit loath to have to config credentials on the aws provider itself. I tried setting a profile on the tg remote state config but tg is still trying to use the AWS_* env vars.  shared_credentials_file seems to be ignored as well.  Is there any way to achieve a credentials split?
  remote_state {
    backend = "s3"

    config {
      profile        = "terragrunt-dm"
      ...

You could set the profile setting in your remote_state to a profile configured for that other account. Or, alternatively, an IAM Role to assume in the other account.

@jhoblitt & @brikis98 This sounds like the same issue as #616 ?


DataTables - selected rows are not distinguished

Hi,
as stated in the title - when using AdminLTE and DataTables with selectable rows the "tr.selected" style is properly applied in the code but no result is visible.
I've tried table-hover and table-striped styles for my table - none of them work properly, although table-hover does display kind of selection on hover which should also be visible when a row is selected.

Check this example from DataTables.

@REJack I have checked the examples and the documentation from DataTables website prior to posting.
As previously stated: "tr.selected" style is properly applied in the code but no result is visible.
Appropriate style definition is missing/broken.
I've fixed problem temporarily by adding another style, except the standard one:
tr.toggleClass('selected'); tr.toggleClass('bg-warning');
Since it's quite late (01:00) I'll probably remove additional style assignment and redefine appropriate tr.selected style in the morning but it would be nice to have that working as expected right out of the box.

Hello,
The version of DataTables that we use implements Bootstrap styling. You might find this link helpful:  https://datatables.net/examples/styling/bootstrap.html
Thanks!

Hi,
Did you guys have any luck with this one. Im having a similar problem.
Thanks