Failure to connect to service

I am seeing a lot of errors when trying to do any sort of action (turn on unit, change temp, turn off unit, etc...). Looking at the logs, I see a lot of errors when trying to connect to the service and trying to refetch the auth token. Reloading the plugin solves the issue, but eventually it will start happening again.
2023-12-27 09:22:56.602 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration cielo_home which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-12-27 09:22:56.603 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-12-27 09:23:57.820 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=({{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%) renders=2>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1646, in forgiving_round
    value = round(float(value), precision)
                  ^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 569, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2247, in _render_with_context
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1651, in forgiving_round
    raise_no_default("round", value)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1627, in raise_no_default
    raise ValueError(
ValueError: Template error: round got invalid input 'unavailable' when rendering template '{{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%' but no default was specified

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 695, in async_render_to_info
    render_info._result = self.async_render(
                          ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 571, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: ValueError: Template error: round got invalid input 'unavailable' when rendering template '{{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%' but no default was specified
2023-12-27 09:24:26.595 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=({{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%) renders=6>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1646, in forgiving_round
    value = round(float(value), precision)
                  ^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 569, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2247, in _render_with_context
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1651, in forgiving_round
    raise_no_default("round", value)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1627, in raise_no_default
    raise ValueError(
ValueError: Template error: round got invalid input 'unavailable' when rendering template '{{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%' but no default was specified

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 695, in async_render_to_info
    render_info._result = self.async_render(
                          ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 571, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: ValueError: Template error: round got invalid input 'unavailable' when rendering template '{{ states('sensor.basement_thermostat_current_temperature') | round }}°F | {{ states('sensor.basement_thermostat_current_humidity') | round }}%' but no default was specified
2023-12-27 09:25:10.198 WARNING (Recorder) [homeassistant.components.sensor.recorder] The unit of sensor.openweathermap_rain (mm/h) cannot be converted to the unit of previously compiled statistics (in). Generation of long term statistics will be suppressed unless the unit changes back to in or a compatible unit. Go to https://my.home-assistant.io/redirect/developer_statistics to fix this
2023-12-27 09:25:10.198 WARNING (Recorder) [homeassistant.components.sensor.recorder] The unit of sensor.openweathermap_snow (mm/h) cannot be converted to the unit of previously compiled statistics (in). Generation of long term statistics will be suppressed unless the unit changes back to in or a compatible unit. Go to https://my.home-assistant.io/redirect/developer_statistics to fix this
2023-12-27 12:58:46.270 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-27 13:48:57.522 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 13:54:54.684 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 13:57:00.676 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:00:41.261 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:07:17.888 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:11:09.554 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:15:44.188 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:39:03.453 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:40:36.482 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 14:48:55.293 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 16:21:35.269 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-27 16:47:51.142 WARNING (Thread-9) [pychromecast.socket_client] [Living Room TV(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-27 16:48:21.167 ERROR (Thread-9) [pychromecast.socket_client] [Living Room TV(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-27 20:08:06.464 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 20:27:28.472 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 20:33:06.684 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-27 20:44:46.867 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 00:50:22.269 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-28 00:56:56.268 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-28 02:02:00.684 WARNING (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-28 02:02:01.715 ERROR (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-28 02:18:04.507 WARNING (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-28 02:18:19.873 ERROR (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-28 04:41:06.009 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error reading from socket.
2023-12-28 04:41:06.010 WARNING (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error communicating with socket, resetting connection
2023-12-28 04:41:06.019 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-28 10:19:15.600 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:20:14.811 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:24:09.481 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:30:32.838 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:33:17.462 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:35:23.546 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:37:42.866 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:42:45.066 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 10:45:45.073 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:08:43.571 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:17:53.739 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:20:07.682 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:26:05.548 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:32:18.474 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:45:47.470 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:49:52.418 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:55:03.591 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:58:06.531 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 18:59:02.966 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 19:00:40.488 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 19:04:37.490 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 19:07:50.671 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 19:08:49.543 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 19:10:26.678 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-28 20:39:25.359 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999: [Errno 113] Connect call failed ('<IP_ADDRESS>', 9999)
2023-12-28 21:46:07.471 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999: [Errno 113] Connect call failed ('<IP_ADDRESS>', 9999)
2023-12-28 23:49:47.439 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999: [Errno 113] Connect call failed ('<IP_ADDRESS>', 9999)
2023-12-29 02:49:02.836 WARNING (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-29 02:49:21.663 ERROR (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-29 03:17:44.094 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error reading from socket.
2023-12-29 03:17:44.094 WARNING (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error communicating with socket, resetting connection
2023-12-29 03:17:44.109 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-29 04:27:40.366 WARNING (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-29 04:27:47.504 ERROR (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-29 09:50:11.485 WARNING (MainThread) [homeassistant.helpers.entity] Update of media_player.samsung_q80_series_65 is taking over 10 seconds
2023-12-29 09:57:21.067 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-29 10:03:52.693 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-29 10:13:32.928 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-29 10:15:26.931 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to query the device <IP_ADDRESS>:9999:
2023-12-29 11:39:52.712 WARNING (MainThread) [homeassistant.components.websocket_api.http.connection] [140202230056512] from fe80::1cb5:f6ca:d41d:a230 (Home Assistant/2023.12 (io.robbie.HomeAssistant; build:2023.499; iPadOS 17.1.1)): Disconnected: Did not receive auth message within 10 seconds
2023-12-29 12:22:05.207 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "74", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "temp", "actionValue": 74}
2023-12-29 12:23:38.893 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "82", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "temp", "actionValue": 82}
2023-12-29 12:24:05.417 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "E868E7DBCD55", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "REDACTED_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "80", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "temp", "actionValue": 80}
2023-12-29 12:31:27.407 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-30 03:16:33.269 ERROR (MainThread) [homeassistant.components.tplink.coordinator] Error fetching <IP_ADDRESS> data: Unable to connect to the device: <IP_ADDRESS>:9999:
2023-12-30 03:27:24.003 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error reading from socket.
2023-12-30 03:27:24.003 WARNING (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Error communicating with socket, resetting connection
2023-12-30 03:27:24.017 ERROR (Thread-7) [pychromecast.socket_client] [Living Room display(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='mdns', data='google-nest-hub-d30d677f19d251bc3dd80560ec2de57f._googlecast._tcp.local.'), retrying in 5.0s
2023-12-30 03:48:57.110 WARNING (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-30 03:49:16.114 ERROR (Thread-8) [pychromecast.socket_client] [Bedroom speaker(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-30 04:22:25.694 WARNING (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Heartbeat timeout, resetting connection
2023-12-30 04:22:41.213 ERROR (Thread-5) [pychromecast.socket_client] [Home(<IP_ADDRESS>):8009] Failed to connect to service ServiceInfo(type='host', data=('<IP_ADDRESS>', 8009)), retrying in 5.0s
2023-12-30 08:03:18.242 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "74", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "temp", "actionValue": 74}
2023-12-30 08:03:20.452 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "off", "mode": "heat", "fanspeed": "auto", "temp": "74", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "power", "actionValue": "off"}
2023-12-30 08:03:23.672 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "74", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "power", "actionValue": "on"}
2023-12-30 08:03:27.892 DEBUG (MainThread) [custom_components.cielo_home.cielohome] Send Json : {"action": "actionControl", "macAddress": "REDACTED", "deviceTypeVersion": "BB02", "fwVersion": "1.0.9,2.4.0", "actionSource": "WEB", "applianceType": "AC", "applianceId": 308, "myRuleConfiguration": {}, "connection_source": 0, "user_id": "REDACTED", "token": "*****", "mid": "chrome-1696167032", "preset": 0, "application_version": "1.0.0", "ts":<PHONE_NUMBER>, "actions": {"power": "on", "mode": "heat", "fanspeed": "auto", "temp": "72", "swing": "auto", "light": "off", "followme": "off"}, "oldPower": "on", "actionType": "temp", "actionValue": 72}

AFter looking at the logs closer, errors are not from this plugin.


changes for adding IoT Subsystem for Cortex-M target

new sdk for MPS2, target is IoT Subsystem for Cortex-M Platform

I am missing changes in HAL? I found only cmsis files addition here in this PR. Is that correct?

we are effectively adding a new core to the mps2 so all the peripherals etc are the same. the differences are in the memory map so only cmsis changes required.

Thanks for the explanation.
We might need some additional information to the scripts changed there, I left one comment

@screamerbg Please look at the comments above

@0xc0170 the modules changes for the test suite are fine - they are working better than the original. Regarding switching to .bin instead of .axf - that's fine as well.

I would personally remove that dead code and commented code blocks. We got revision control to get the previous state.

LGTM


Cannot Find Method name getOutput

https://github.com/Bit-Wasp/bitcoin-php/blob/2b8220761ef00efae6a80ac7e6938f796dfe4fa8/examples/offlinetx.p2pkh.testnet.php#L34

Can't reproduce, and we have travis tests checking the examples folder.. What version are you using?

I use a version from "composer require bitwasp/bitcoin" (0.0.34).
I think use object (TXbuilder).
I try to create new Transaction but I don't know how to generate a txHex.
Could you suggest me how to generate the txHex?

Yep, just call getHex()!

I still cannot generate  $myTx because
The error is
ParserOutOfRange in Parser.php line 86:
Could not parse string of required length (too short)
$privateKey = PrivateKeyFactory::fromHex($private_key);
    **$myTx = TransactionFactory::fromHex($privateKey->getHex());**

    $recipient = AddressFactory::fromString($to_address);

    $spendOutput = 0;
    $spendTx = TransactionFactory::build()
        ->spendOutputFrom($myTx, $spendOutput)
        ->payToAddress($value, $recipient)
        ->get();

    $signer = new Signer($spendTx, Bitcoin::getEcAdapter());
    $signer->sign(0, $privateKey, $myTx->getOutput($spendOutput));

    $new = $signer->get();

    return $new->getHex();

$myTx = TransactionFactory::fromHex($privateKey->getHex());
this bit doesn't look right, you need $myTxHex here

Did you get this cleared up?

Closed due to inactivity


fix(jqLite): avoid touching deprecated Event.returnValue property

This was fixed in 8f10dca300c7bcc55ff1613326b84b9c460ca7c2, sorry your change wasn't merged first @lookfirst, please contribute again!

@caitp no worries... just glad it was fixed.


First implementation of piconim supporting autolinking of libraries

@casey-SK  @auxym if you can please take a look and try this out. This is an alternative to the way Casey proposed.

Thinking about it further there is less hacky way around but would require the following though.
include picostdlib

I haven't tried it yet (will later), but looked at the diff. Two comments:

If you're modifying CMakeLists.txt, you have to re-run CMake afterwards. Or at least that is my understanding. CMake will re-generate the Makefile with the correct includes etc. I don't see anywhere piconim build would be running Cmake in the current code.

I (personally) would strongly prefer that piconim would not not touch the CMakeLists file. As a dev that's a file I might want to modify manually and keep around, eg, adding "external" libraries to it. The current implementation would nuke that (I think). My suggestion would be that piconim writes a second file (can be nuked, gitignored, etc) that is included in CMakeLists.txt. Always included, no modifications needed to CMakeLists.txt file.

I do not know if that's the case I've been using piconim and manually adding the includes, I think the make file knows when the cmake is modified and handles it. I could be wrong I've never used cmake/make before really.

I think that's a fair point but as I do not know cmake I do not know how to do as such.

It seems you're right (I really don't know much about cmake and  make myself). CMake generates Makefile, which runs cmake, which generates Makefile2, which actually does the build (a bit convoluted, but ok pico-sdk, I guess).
For the include, it shouldn't be too hard (I think, literally I haven't used cmake before). Look at the current CMakeLists file:
include(pico_sdk_import.cmake)

I'd suggest that your new addLinkLibs steps just write the target_link_libraries(...) entries in a separate file (eg. pico_libraries.cmake) and this file be included in the CMakeLists.txt file (just included in the original template, not need to modify it afterwards):
include(pico_libraries.cmake)

Hello, sorry it took a while. I looked at what you did and implemented @auxym 's recommendation. The following branch includes all changes from #37 and #36
https://github.com/casey-SK/picostdlib/tree/feature_improve_piconim_debug
Notes:
I have changed the subcommand names:

create essentially just copies the template folder
init initializes the local deps, namely pico-sdk and nimbase.h
build does what it did before, no major changes

I also added in a lot more feedback to the user, via printMessage, as well as more documentation
let me know if I should create a PR of this branch.

@casey-SK good work, but I'm leaning to just searching for picostdlib<EMAIL_ADDRESS>for example in the csource directory now, since this is a very big hack and ugly. This does mean every module added needs to be supported in piconim, but it's a cleaner solution than this PR proposed, this was just an implementation to see what was thought of.

when you say picostdlib<EMAIL_ADDRESS>, I am not quite sure what you mean by that. I don't see any files that match that, or come near to matching that syntax. I suppose I will get a better understanding once you implement it

The Nim generated code that comes from this package should end with that(atleast on linux).

The generated files I am familiar with start with @m and end with .nim.c:
https://github.com/casey-SK/picostdlib/blob/fae32f5557762766ae579be51063f0ce46830002/src/piconim.nim#L225

Yea actually attempting to implement it this will not work, so I guess scanning for #include is the way to go.

Here is a semi-clean/extendable solution to the include, now to figure out how to use it in cmake.

Here is a semi-clean/extendable solution to the include, now to figure out how to use it in cmake.

Here is how I solved your previous implementation using cmake:
https://github.com/casey-SK/picostdlib/blob/fae32f5557762766ae579be51063f0ce46830002/src/piconim.nim#L34
In your new implementation you are creating a file called imports.txt, instead, just create a file called pico_imports.cmake (or something) and for each line just do: "target_link_libraries(${CMAKE_PROJECT_NAME} " & $lib & ")". Then in the CMakeLists.txt file, instead of target_link_libraries( ... ) , replace it with include(pico_imports.cmake).

Here is a refactored implementation of (https://github.com/beef331/picostdlib/pull/37/commits/6f62254c99445eced4920b536f7c6f283e8d4fd4):
https://github.com/casey-SK/picostdlib/commit/7e4028a69ac0c4b5a0a6f4b0991fce100c4fc976

Can you a PR with that version of autolink, can merge it then merge you other things in?

The implementation of getLinkedLib is somewhat fragile, but given that it is scanning code generated by the nim compiler, which should be somewhat predictable, it's probably OK. Cases I can think of that could break it:
/*
#include header.h
*/

// Note the spaces, I think this is still valid syntax
#  include header.h

IMO: if anything in the nim codegen in the future breaks this, we can fix it later. So it's ok for me as-is.

hey @auxym , I am having an issue with cmake stuff. When I create a test project that requires a linked import, addLinkedLibs appears to correctly add the target_link_libraries(), but yet the build fails. However, the build will pass if the following is done:

rename the pico_libraries.txt (after you have run piconim build at least once)
change the include() line in CMakeLists.txt to the renamed file

So I know that our program can generate a valid entry, but yet is there some sort of file permission or timing issue going on?

Here is my example: https://github.com/casey-SK/tests
notice that I changed pico_libraries.txt to pico_libs.txt` and the build now passes. The contents of the two files are the exact same.

Okay, I got it working by updating the timestamp on the file before running make: https://github.com/casey-SK/picostdlib/commit/29102123aec8c8de9dc78f75f9bded75b3610071

next question: should the file be called pico_libraries.txt or pico_libraries.cmake , or maybe something else? Now is our chance to get it right, lol. Also maybe someone knows why this timestamp thing is so critical?

Hm, weird, I'm not super familier with CMake. That said, piconim is re-writing the file on build, so its timestamp should be updated automatically that way, no?
As for the extension, I'd go with .cmake. Not sure if it's universal convention, but it is the convention used in pico-sdk (see all files in https://github.com/raspberrypi/pico-sdk/tree/master/cmake).

Okay just confirm. Here is how my dev branch got to this point:
1. I checked out the beef331:picostdlib:master branch

2. I merged the Jan 9th version of the autolink branch

3. I merged @auxym [WIP: Add gitignore and setup command #36](https://github.com/beef331/picostdlib/pull/36) in and got them to agree with each other

4. I then did a whole lot of refactoring of the code to accomplish the following:

   * change the commands from `init`, `setup`, and `build`  ->  `create`, `init`, `build`
   * added `printMessage()` proc, replacing `printError`
   * added more error handling in areas where it had been missed.
   * I changed your original `addLinkLibs()` to work with `cmake`
   * moved the "helper" procs into their respective procs, so now the there are 3 top level procs for `create`, `init`, and `build` + the `printMessage()` proc. Not sure if it is good practice limiting the scope of these procs in this way. Comments?

5. Then I created a new branch (dev) and copy/pasted your link lib code in place of where `addLinkLibs()` was and got it working.

6. Added a couple more printMessage() statements

Haha, so with all that said... What is the best way forward? I assume doing a PR of all my changes in one go is not best practice? I guess I need a little more guidance to make sure I take the right steps, the first time.

The best thing to do is separate commits into sequential PRs, this way we can handle each step and easily make each step as clean as possible.

next question: should the file be called pico_libraries.txt or pico_libraries.cmake , or maybe something else? Now is our chance to get it right, lol. Also maybe someone knows why this timestamp thing is so critical?

Oh I think I know what's going on:
As I mentioned earlier, make re-runs cmake. make use file timestamps to determine what it needs to do. make knows of CMakeLists.txt but not its included files (unless they were declared as dependencies explicitly by the makefile).
The way I see it, two options, either of which is fine IMO

Touch CMakeLists.txt as you're doing to force a rebuild
Have piconim run cmake .. from the build directory on each build. No need to pass in the sdk option, it gets cached and reused automatically in CMakecache.txt.

@auxym @casey-SK can you try this out now, I obviously tested it but need to know if I made it annoying somewhere. :smile:


How to display new list tasks

I have added a newlist called DOCKLIST and added few tasks using hash syntax in .txt and .md files. The DOCKLIST has no item to show in the taskboard page. Did I miss something?

I can confirm I'm having a similar problem. If I create standard lists: TODO, DOING, DONE, etc. They work fine. But if I create something more custom such as: SOMEDAY - then the list does not update. I'm working only in .md files. I'm primarily using hash syntax but tried all syntax styles in testing.

Just fixed this in the latest release.  Reopen if the problem persists.


React not defined

When using web React is not defined in lib/module/ballon.js.
You use the function React but its not imported at line 1.
Its:
import { forwardRef, useImperativeHandle, useRef, memo } from 'react';
But should be:
import React, { forwardRef, useImperativeHandle, useRef, memo } from 'react';

Hey @MathiasSvDK, It seems like this is related to your TypeScript issue. Could you please check if it's connected to your project setup?

We both fixed it by adding it tho

got it, i just added React on that file in v2.5.1, let's see if it fixed your issue.

Works now for both of us :D


[fix][test] Add cleanup for NonClosableMockBookKeeper in TestPulsarService

Motivation
Cleanup for NonClosableMockBookKeeper is missing in TestPulsarService.
This PR is a follow up for #19323 and #19326 and improves the TestPulsarService that was added in #19323.
Modifications

Add cleanup solution to TestPulsarService
Refactor the brokerServiceFunction (move to the builder)

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Codecov Report

Merging #19328 (34c4116) into master (6c014ee) will increase coverage by 30.72%.
The diff coverage is 63.15%.

@@              Coverage Diff              @@
##             master   #19328       +/-   ##
=============================================
+ Coverage     32.31%   63.04%   +30.72%
- Complexity     6350    25698    +19348
=============================================
  Files          1644     1818      +174
  Lines        123711   133079     +9368
  Branches      13487    14638     +1151
=============================================
+ Hits          39983    83895    +43912
+ Misses        77828    41488    -36340
- Partials       5900     7696     +1796

Flag
Coverage Δ

inttests
25.10% <42.10%> (+0.14%)
:arrow_up:

systests
25.62% <50.00%> (+0.08%)
:arrow_up:

unittests
60.32% <44.73%> (+42.76%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...org/apache/pulsar/common/naming/NamespaceName.java
89.04% <ø> (+19.17%)
:arrow_up:

...ava/org/apache/pulsar/common/naming/TopicName.java
92.66% <ø> (+13.76%)
:arrow_up:

...va/org/apache/pulsar/broker/service/ServerCnx.java
53.40% <36.36%> (+15.28%)
:arrow_up:

...rg/apache/pulsar/functions/worker/WorkerUtils.java
70.50% <50.00%> (+8.43%)
:arrow_up:

...e/pulsar/functions/worker/PulsarWorkerService.java
59.28% <60.00%> (+2.43%)
:arrow_up:

...rg/apache/pulsar/broker/service/BrokerService.java
59.01% <80.00%> (+15.18%)
:arrow_up:

...n/java/org/apache/pulsar/broker/PulsarService.java
74.37% <90.00%> (+5.34%)
:arrow_up:

.../apache/pulsar/common/naming/SystemTopicNames.java
55.55% <0.00%> (-5.56%)
:arrow_down:

.../apache/pulsar/client/impl/ClientCnxIdleState.java
68.88% <0.00%> (-2.23%)
:arrow_down:

...in/java/org/apache/pulsar/common/api/AuthData.java
71.42% <0.00%> (ø)

... and 1206 more


When using luasnip buffer confusion

nvim -v
NVIM v0.6.0-dev+181-g5d633546b
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by   #<EMAIL_ADDRESS>
Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-5d63354/share/nvim"
Run :checkhealth for more info

https://user-images.githubusercontent.com/16816655/130549127-165bbd2c-2d92-4729-ac42-48d9bc18deab.mov
luasnip config:
local present, luasnip = pcall(require, "luasnip")
if not present then
    return
end

local t = function(str)
    return vim.api.nvim_replace_termcodes(str, true, true, true)
end

local check_back_space = function()
    local col = vim.fn.col "." - 1
    if col == 0 or vim.fn.getline("."):sub(col, col):match "%s" then
        return true
    else
        return false
    end
end

_G.tab_complete = function()
    if vim.fn.pumvisible() == 1 then
        return t "<C-n>"
    elseif luasnip and luasnip.expand_or_jumpable() then
        return t "<Plug>luasnip-expand-or-jump"
    elseif check_back_space() then
        return t "<Tab>"
    else
        return vim.fn["compe#complete"]()
    end
end
_G.s_tab_complete = function()
    if vim.fn.pumvisible() == 1 then
        return t "<C-p>"
    elseif luasnip and luasnip.jumpable(-1) then
        return t "<Plug>luasnip-jump-prev"
    else
        return t "<S-Tab>"
    end
end

_G.completions = function()
    local npairs
    if
        not pcall(
            function()
                npairs = require "nvim-autopairs"
            end
        )
     then
        return
    end

    if vim.fn.pumvisible() == 1 then
        if vim.fn.complete_info()["selected"] ~= -1 then
            return vim.fn["compe#confirm"] "<CR>"
        end
    end
    return npairs.check_break_line_char()
end

vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
vim.api.nvim_set_keymap("i", "<CR>", "v:lua.completions()", {expr = true})

luasnip.config.set_config {
    history = true,
    updateevents = "TextChanged,TextChangedI"
}
require("luasnip/loaders/from_vscode").load()

When using luasnip, save at this time, causing the interface to be confusing and cannot be rolled back or deleted

What??? Does this happen with all snippets?

I tried something else, and so far it’s just the Golang for loop that’s the problem

No other language has been tried

Okay, could you post the snippet?
Also, try running :LuaSnipUnlinkCurrent before deleting and see if that fixes your issue

  "for statement": {
    "prefix": "for",
    "body": "for ${1:i} := ${2:0}; $1 < ${3:count}; $1${4:++} {\n\t$0\n}",
    "description": "Snippet for a for loop"
  },

If it's this one, it works just fine for me. Maybe turn off all other plugins if you have any and see if the issue persists

When I delete this configuration, saving is normal，
luasnip.config.set_config {
    history = true,
    updateevents = "TextChanged,TextChangedI"
}

or Change the configuration as follows, save is also normal
luasnip.config.set_config {
    history = true,
    updateevents = "InsertLeave"
}

but  When I use the snippet for loop, within the for, using tab, I copy three times
https://user-images.githubusercontent.com/16816655/130580644-840584db-a5d0-444b-87ef-6779845b7899.mov

this is my nvim config   https://github.com/amistyrain/nvim-lua.config

Oh, I only tried with updateevents=TextChangedI, I'll check again with your exact settings.

Okay I tried with your settings, but I cannot reproduce it :/
Could you disable other plugins until it works with your original config?

also golang for loop?

I used the one from friendly-snippets, im assuming you're talking about that one. If not, please post the snippet so I can try it.

I used the one from friendly-snippets, im assuming you're talking about that one. If not, please post the snippet so I can try it.

me too

I deleted other plugins, the same problem

Dammit, could you try the snippet in other filetypes eg.
:lua require("luasnip").snippets = {all={require("luasnip").parser.parse_snippet("for", "for ${1:i} := ${2:0}; $1 < ${3:count}; $1${4:++} {\n\t$0\n}")}} and see if it still misbehaves?

Dammit, could you try the snippet in other filetypes eg.
:lua require("luasnip").snippets = {all={require("luasnip").parser.parse_snippet("for", "for ${1:i} := ${2:0}; $1 < ${3:count}; $1${4:++} {\n\t$0\n}")}} and see if it still misbehaves?

use :lua require("luasnip").snippets = {all={require("luasnip").parser.parse_snippet("for", "for ${1:i} := ${2:0}; $1 < ${3:count}; $1${4:++} {\n\t$0\n}")}}        Same as before

https://github.com/amistyrain/nvim-lua.config
branch:main   use luasnip
branch:dev   use vim-vsnip
All other plugins have the same configuration， Dev branch, and there’s nothing wrong with using vim-vsnip

I'm on NVIM v0.6.0-dev+181-g5d633546b, maybe try updating and see if that fixes anything

Do you still experience the issue?

Do you still experience the issue?

yes

Could you post the output of :lua Luasnip_current_nodes[vim.api.nvim_get_current_buf()].parent:dump() directly after expanding the snippet and after jumping?

Could you post the output of :lua Luasnip_current_nodes[vim.api.nvim_get_current_buf()].parent:dump() directly after expanding the snippet and after jumping?

Okay, the extmarks are getting messed up pretty bad, do you always expand using compe/cmp or do you do it manually?

Okay, the extmarks are getting messed up pretty bad, does the issue also occur if you expand manually?

Occurs after expansion to save

To save

Oh, does it not occur if you just jump to the next node?

the same as  video

Am I the only one in this situation? It’s very strange

Seems like it :/
My only explaination would be another plugin interfering.

It’s almost certainly a problem with gofmt, which I format before saving, but I use vim-vsnip, which gofmt is normal

Before formatting, I executed luasnipunlinkcurrent and everything was OK

It’s almost certainly a problem with gofmt, which I format before saving, but I use vim-vsnip, which gofmt is normal

LuaSnip doesn't play nice at all with formatters, if eg. an entire line of text is replaced at once, the extmarks (which vsnip doesn't use) used to remember positions are 'pushed' to beginning and end of the line, so there may be a lot going wrong after formatting the entire file :/

FWIW I also experience this issue intermittently using dartls which formats automatically using dartfmt. So it isn't go specific.

I am also having similar issues with tsserver

Think this should also be fixed with 6e951d8


Remove repositories and create examples of unit tests with DbContext

Hello, I know that this is a topic that @edvinasstaupas has a strong opinion about but I believe that I have reached a point where I have enough arguments against using the repository pattern with Entity Framework to justify the removal of the repositories. To me, it always seemed like adding repositories just made it harder to write efficient queries and removed powerful EF features instead of adding anything valuable. Here are some of my arguments:

EF Core itself implements the repository pattern. It exposes the AppDbContext with DbSets which you can query however you want using powerful LINQ expressions. Implementing another abstraction on top of this just seems redundant and removes the ability to use efficient LINQ queries as now you are limited to the methods available in the repository. If an app requires a new way of the fetching data, you now have to add a new method not only in the service layer but also in the repository. I believe that having a Queryable property with all necessary Include calls in the service is a far superior solution which acommodates changes to application data requirements very well and allows for extremely efficient querying for any data you want.
Forgetting to call SaveChanges is not a reason for having repositories. Actually, when repository methods call SaveChanges, it only makes things worse as you lose control over database transactions. In EF, if you call SaveChanges after making modifications to several entities, all changes are wrapped in one database transaction which ensures that ALL changes succeed or fail at once. When repository calls SaveChanges automatically, we lose this essential feature. Also, updating EF entities is just a matter of changing the values of properties that is often done in controllers, sometimes in services. How do you call SaveChanges then? Should all repositories have a separate SaveChanges methods that does the same thing in every repository? Seems quite redundant to me. There is already an example of this issue in our app.
I have made numerous attempts to make repositories at least something that doesn't remove essential functionality (not speaking of improving functionality) and in the end the repositories became just some boxes that expose a DbSet with some includes applied that may very well just be a property of a service.
Having a repository that just returns objects or lists make code easier to test but as we have already seen, our data requirements are very flexible and a repository with predefined methods is not a feasible option as it takes away the ability to do efficient LINQ queries on a database level. So, in the end you still need to expose a Queryable which is an EF thing and need to mock that. By the time you mock that, you might as well mock the DbContext that is injected straight into the services and be done with this repository nonsense. I already demonstrated that mocking DbContext isn't at all that hard.

So, I hope that you will look at this with an open mind and understand my reasoning against using the repository pattern in our project which already uses a "framework" for the database querying.
Here are some articles with discussions against the usage of repositories with EF (by the way, these articles popped up when searching "should I use repository pattern with EF":
Why shouldn't I use the repository pattern with Entity Framework?
Should Entity Framework 6 not be used with repository pattern?
NOT using repository pattern, use the ORM as is (EF)
Avoiding Repository pattern - implementing Onion Architecture with DbContext only
If Repository Pattern is overkill for modern ORMs (EF, nHibernate), what is a better abstraction?
Why include a Repo.SaveChanges() method in a repository?

SOLID arguments;)

SOLID arguments;)

haha I see what you did there


rethink unitary synthesis plugin

What should we add?
Currently there is a unitary_synthesis_method argument to transpile() which switches the decomposition method when unitaries are encountered in the circuit.
But I think we need to split 1q vs. 2q vs. generic unitary synthesis. This may lead to too many args. So I'm fine dropping the arg and allowing alternative way to specify desired methods, as I explain below.
But basically 1q and 2q and generic unitary synthesis have been studied separately and they have very different methods.
In qiskit currently:

SolovayKitaev (sk) and OneQubitEulerDecomposer (euler) are only 1q.
TwoQubitWeylDecomposer (weyl) and XXDecomposer (xx) are only 2q.
Isometry[^1] (ccd) and Shannon (qsd) and ApproximateQuantumCompiler (aqc) are generic.

Generally decompositions of higher-order unitaries use smaller-unitary synthesis methods within them, so setting them separately has the advantage of signaling which method should be internally used when recursing on unitaries during synthesis.
In terms of how the user can select between these, I think there are 3 options (not necessarily mutually exclusive).

Simplest would be to just have unitary_synthesis_method_1q and unitary_synthesis_method_2q added to the current list of transpile args. For the generic unitary_synthesis_method I think we should have options ccd and qsd and aqc and remove 'default'.
When a unitary is added to a circuit the desired method can be tagged onto it like metadata. This allows the user to specify the intent during programming of the circuit itself and e.g. decompose two unitaries using two different methods. This would be consistent with the pragmas being developed as part of OpenQASM 3.
Automatically choose. For example we know aqc is slow but gives better results than the other ones, so it can be used in level 3. Or the basis_gates can dictate the method, for example if the basis is 's', 'h', 't' then only sk makes sense. If the basis is 'zx30', 'zx45', only the xx method makes sense. Other methods cannot target these bases.

[^1]: we currently refer to this as isometry but really the name should be ccd (column-by-colum decomposition). The isometry paper this is based on has two methods (ccd and csd (cosine-sine decomposition)) and only the first one is implemented in qiskit).

Hi, I'm interested in working on this. Can you assign it to me?


Consider parsing stream messages for new naming or any PnP information

Stream messages provide endpoint naming and ID information which will be useful for PnP and at the service. We may want to parse this information at the service level, or in a service plugin, to provide additional PnP information. The best way to accomplish this may be using plugin message processors which can access the PnP calls to update information.

Done


Add dash array option

Some people might want to use dashed lines for the graticules. It would be nice to have a dashArray option, with the same behaviour as the same option in L.Polyline.

I think we can close it now.

Implemented by #11


Outdated and misleading code examples in README.md

The following code example is provided in README.md:
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream("/path/to/credentials.json"));
credentials.refreshIfExpired();
AccessToken token = credentials.getAccessToken();
// OR
AccessToken token = credentials.refreshAccessToken();

Notice that GoogleCredential is marked as deprecated in https://googleapis.dev/java/google-api-client/latest/
Please update README.md to reflect current libraries and recommendations.

Hi @leifericf, the GoogleCredential != GoogleCredentials. Last letter matters :) The former is part of https://github.com/googleapis/google-oauth-java-client and is indeed deprecated, but the latter is part of this library and is current.
Please reply if any questions.


Helm upgrade fails due to admission webhook failure

I have ingress-nginx controller deployed inside my cluster and trying to upgrade a very simple helm chart. There's only one resource created by this chart - ingress. I made a simple change inside the values and as a result of this change I'm expecting to get the same Ingress resource created but with just a different name. It looks like helm is trying to create the resource first causing the following:
Error: UPGRADE FAILED: failed to create resource: admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: host "demostore.example.com" and path "/app" is already defined in ingress default/demostore-ingress
So it's trying to create the resource, webhook is called and fails. Otherwise nginx would not be valid due to duplicated host definition.
Shouldn't helm upgrade delete the existing resource first and only then try to create new resource? I know it's now aware of existing webhook admission and its also safer to create the resource first, not delete. I'm wondering if there's any way how this can be improved?
Output of helm version:
version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.18.2"}
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:38:26Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"darwin/arm64"} Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5", GitCommit:"5a97ee6d15525f6e4a1c2646bf1dfd2ebd5220b5", GitTreeState:"clean", BuildDate:"2022-06-15T04:26:33Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}
Cloud Provider/Platform (AKS, GKE, Minikube etc.): AKS

@brysk Can you provider a example for this?

No response since July.

I have the same problem now, helm version and kubectl version is the same as @brysk commented above.
As my knowledge for Helm is when helm upgrade is performed, helm add the existing resources which is  not in current resource list to the toBeDeleted group, and helm will delete these resources first, then upgrade resources which have already existed in k8s cluster.
For the scenario, since the upgraded ingress name is different from the ingress name existed in cluster, the existed ingress should be deleted by Helm first, then new ingress will created.
For other resource type like Service/Deployment, the result is what we expected, so the question is why ingress behave different ?

helm will delete these resources first, then upgrade resources which have already existed in k8s cluster.

During helm upgrade, helm will generate target release and original release , check first target for something to update (by three-way-merge patch) or create and then compare  two release for  something to delete.
So when modifying the names of resources that may conflict, a conflict will be reported. like nodePort-service , ingress.
Why didn't Helm choose to delete the resource first ?
If  we delete resource first such as deployment, pod will be deleted also, API services provided by the pod will be interrupted until a new deployment is created ( Considering the launch time of the new pod, may be few seconds) which is intolerable in most cases. I think this should be considered when making a helm package.

I'm going to put this here in case it helps someone in the future. I needed to run kubectl -n demostore delete ingress routes-rewrite-app to fix this where demostore is your namespace and app is the route.


Update SCS RN file in CODEOWNERS

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6735d1b7fed4aa392212197c--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://67364a9bc5776f58e9659905--harness-developer.netlify.app


CASSANDRA-14351 Feat: notify systemd when startup is complete

Notifying systemd will permit writing proper service files with cleaner starting behavior.
https://issues.apache.org/jira/browse/CASSANDRA-14351

Hi, I updated the PR to let the linker figure the systemd library location instead of hardcoding some path. Hope this is ok.


Update: api-management-howto-log-event-hubs.md

Updated RunscopeHttpMessageProcessor to use Moesif now that Runscope Traffic Inspector is shut down.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: dgilling sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@dgilling : Thanks for your contribution! The author, @darrelmiller, has been notified to review your proposed change.

Hey @dgilling ! Thanks for doing this update.  As I don't work on the API Management team anymore, I'll ping  @miaojiang from the team to let him decide how to proceed.

#sign-off

@miaojiang: I'm sorry - only the author of this article, @darrelmiller, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@apim-team FYI


Support for both typescript and javascript

Pushing for early review. First two commits are primarily boilerplate, third has the interesting stuff.
We shouldn't merge until I have a chance to test on a local Heroku instance (perhaps EOD). Build time increases a bit as well but perhaps that's NBD?

https://jhscott-engvalues.herokuapp.com/ is running this branch, I think it is safe to merge!


How to get an SSL certificate for Postal SMTP Server?

How can I get an SSL certificate for Postal SMTP Server?

You can either purchase one and install it to the server or get one from Lets Encrypt.
Either way, you will need to update the config file and restart Postal when you have certificates files on the server.

Is there any guide for getting From let's Encrypt?

You should follow their instructions relevant to your server OS and/or provider https://letsencrypt.org/getting-started/


Playlist queue support

Is it possible to add a playlist url to automatically queue entire playlist collection of videos at once rather than individually queue each video?

Just added this functionality (da93ec0da978e83251fe1de30fa2f66832b74f56). Thanks for the issue!


Error to run server with this

Hello author,
Unfortunately I can not start my server online due to this error.

node_modules/react-multi-lang/lib/index.js:3
import * as React from 'react';
^^^^^^
SyntaxError: Unexpected token import

However, I can not have an ES6 code in the node_modules when I run it. That's why I would be glad if you would do gulp.
You should load index.min.js. Run gulp before npm publishing it.
Thank you :)

This package uses the babel-preset-react package to transpile the code to the correct version. In what environment are you trying to run this package?


Crypto Function Migration

Which issue does this PR close?

Closes #12828.
Rationale for this change
Migration of crypto functions

What changes are included in this PR?
Migrated crypto functions from scalar.md to new generated format

Are these changes tested?

Are there any user-facing changes?

@Omega359 Does this look correct? That was so cool btw, running the script and then everything appearing

wasmtest Ci failure has been fixed in https://github.com/apache/datafusion/pull/12844

close/reopen to retrigger CI


Failure creating AKS with Windows Nodes

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az aks create
Creating AKS with Windows nodes per Creating AKS with Windows nodes per https://docs.microsoft.com/en-us/azure/aks/windows-container-cli.
Errors:
400 Client Error: Bad Request for url: http://localhost:50342/oauth2/token
Traceback (most recent call last):
python3.6/site-packages/knack/cli.py, ln 215, in invoke
    cmd_result = self.invocation.execute(args)
cli/core/commands/__init__.py, ln 654, in execute
    raise ex
cli/core/commands/__init__.py, ln 718, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
...
python3.6/site-packages/msrestazure/azure_active_directory.py, ln 486, in get_msi_token
    result.raise_for_status()
python3.6/site-packages/requests/models.py, ln 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http://localhost:50342/oauth2/token

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az aks create --resource-group {} --name {} --node-count {} --enable-addons {} --generate-ssh-keys --windows-admin-password {} --windows-admin-username {} --vm-set-type {} --network-plugin {}

Expected Behavior
Environment Summary
Linux-4.15.0-1095-azure-x86_64-with-debian-stretch-sid (Cloud Shell)
Python 3.6.10
Installer: DEB

azure-cli 2.12.0 *

Extensions:
ai-examples 0.2.3

Additional Context

AKS

@yonzhan this is a specific error to cloudshell trying to access the managed identity

hi @WAftring could you pls try az login to workaround? this is a known cloudshell issue #11749

@yungezz The az login workaround no longer reproduces the issue

@WAftring , are you still seeing this issue?  If no, please close :)


Fix pinger location in gymkhana task

See issue #437.
How to test it?

Launch any of the 2022_practice gymkhana worlds (change the path to the world accordingly):

roslaunch vrx_gazebo gymkhana.launch verbose:=true world:=/home/caguero/vrx2022_ws/src/vrx/vrx_gazebo/worlds/2022_practice/gymkhana0.world

Echo the set_pinger_position topic. Open a new terminal and run:

rostopic echo /wamv/sensors/pingers/pinger/set_pinger_position

You should observe that the pinger location is set to something different than the content of the pinger.yaml (-483, 295.5, 0).

You can also teleoperate the robot to that location and echo the acoustic pinger:

/wamv/sensors/pingers/pinger/range_bearing

Verify that the range is close to 0.

@caguero When I tried starting via roslaunch vrx_gazebo vrx.launch world:=gymkhana0.world the pinger position is not being published - the pinger position stays at the origin.  From your comments I think this is not the expected behavior when the gymkhana scoring plugin is running.  Do you want me to take a look to see what's up, or did I misunderstand what's supposed to happen?

roslaunch vrx_gazebo vrx.launch world:=gymkhana0.world

Hmm, I see the position being published. Is gymkhana0.world the one under 2022_practice?

  I am fixing it now and will confirm it's working.

It's working now.  Good to merge.


WIP: Update Istio docs for Istio 1.5

Istio 1.5 moved istio away from their microservice architecture and towards a monolithic control plane. As part of this move, the method of storing mTLS certificates in kubernetes namespaces was removed in favor of the istio-proxys grabbing these certificates directly from istiod. This doc updates our documentation on how to install Ambassador with Istio to support this new approach.

TODO:

Integrate with monitoring services
Document how to test certificate rotation


Read for table of fixed items.

-DevSnippets now leads to our github repo
-Snippets can be created and deleted without errors.
-Added fancy animations on the home page.
-Rearranged CSS for things to look better.
-Snippets now accept tags and the Private/Public flag.
-Snippets will now display if they're private or not.
-Snippets will now display what their tags are.
-User can select what language he's using from a dropdown menu.
dev-snippets\client\src\utils\languages.js
Here the DEV-s can add more languages if needed easily.
-The code added by the user will now be colour coded and formatted for a better display.
-The title and description will automatically capitalize the first letter for a better view.
-The user can add multiple tags on a post by separating them with a comma.
-Added functionality so the user can see a button under the code for him to be able to copy it quickly.

there you go, buddy.


[Feature]: Default tab should be a dropdown instead of a text field

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
When working with tab widget, it's better to have a dropdown for default tab.
Edge cases

When user updates an existing tab name and if this is same as the tab selected by default then the current default tab name should also update.

Why should this be worked on?
Helps users save time by selecting a tab than typing it out

Changes to the widget's property pane

Change the default tab field to a dropdown field with all the tab names as the options
Support JS mode in this field to ensure people can write JS if needed
For existing tab widgets -

If there is a binding in the field then the default tab field should be in the JS mode
If there is no binding in the field and the value matches one of the existing tab names it should be a dropdown
If there is no binding in the field but the value doesn't match with the existing tab then it should still be in JS mode

For new tab widgets, the default tab should be a dropdown by default

Stats

Stat
Values

Reach
1221

Effort (months)
0.75


style: prefer stack pinning

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Box::pin is unnecessary in such cases.
Checklist For Contributors

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[x] I have demonstrated that backward compatibility is not broken by breaking changes and created issues to track deprecated features to be removed in the future. (Please refer to the issue)
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Checklist For Reviewers

[ ] I have requested macro/micro-benchmarks as this PR can affect performance substantially, and the results are shown.

Documentation

[x] My PR DOES NOT contain user-facing changes.

Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note

Is it possible to also replace pin_mut with this macro?

We have to rewrite pin_mut!(f) to let mut f = pin!(f), not sure it's reasonable.


chore: bump default max logs

10k logs can be Hit in a single block (nfts), doubling this seems reasonable

see #3497

ah, missed it. nice!


Option to disable the prevention of host name collision

Adds a setting to disable the prevention of host name collision also in cluster-wide mode, at the level of the Authorino deployment.
The PR introduces a new environment variable PREVENT_COLLISIONS (default: true) that when set to false will cause Authorino to behave in cluster-wide reconciliation mode just like it does in namespaced mode, regarding preventing collisions between AuthConfigs that claim association to identical host names.
Breaking change alert!
Because now this configuration controls if users can or cannot replace each others' AuthConfigs (fully, by choosing identical host names; or partially, by choosing more specific host names that match more general host wildcards), we are unifying the two traditional behaviours for namespaced mode and for cluster-wide modes into one single behaviour regarding how a host is considered to be taken or not. This means that it is no longer about the namespace that the AuthConfigs belong to, but about whether the prevention of collisions is either enabled or disabled, according to the value of PREVENT_COLLISIONS.
In other words, if PREVENT_COLLISIONS=true (default), Authorino will now reject linking AuthConfigs to hosts already taken including when both resources are defined in the same namespace.
To disable the prevention of host name collisions and let users freely replace each others' auth definitions by picking the same host names, whoever controls the Authorino instance can set PREVENT_COLLISIONS to false, and this behaviour will apply both in cluster-wide mode or namespaced mode.
Verification steps
Create the cluster:
kind create cluster --name authorino

Deploy a custom image of the Authorino Operator based on authorino-operator:disable-host-collision-prevention:
cd $GOPATH/src/github.com/kuadrant/authorino-operator && git fetch && git checkout disable-host-collision-prevention
docker build -t authorino-operator:local .
kind load docker-image authorino-operator:local --name authorino
sed -e 's/quay.io\/kuadrant\/authorino-operator:latest/authorino-operator:local/' config/deploy/manifests.yaml | kubectl apply -f -

Build and push an image of Authorino based on this branch:
cd $GOPATH/src/github.com/kuadrant//authorino && git fetch && git checkout disable-host-collision-prevention
docker build -t authorino:local .
kind load docker-image authorino:local --name authorino

Prepare the environment and request an instance of Authorino:
make cert-manager namespace certs user-apps
kubectl wait --timeout=300s --for=condition=Available deployments --all
kubectl port-forward deployment/envoy 8000:8000 &

kubectl apply -f -<<EOF
apiVersion: operator.authorino.kuadrant.io/v1beta1
kind: Authorino
metadata:
  name: authorino
spec:
  clusterWide: true # we will be trying in cluster-wide mode, but you can change this to 'false' and try it for namespaced as well
  preventCollisions: false # we will let users freely replace each others' AuthConfigs
  image: authorino:local
  imagePullPolicy: IfNotPresent
  listener:
    tls:
      certSecretRef:
        name: authorino-server-cert
  oidcServer:
    tls:
      certSecretRef:
        name: authorino-oidc-server-cert
EOF

Create a few namespaces (if indeed verifying in cluster-wide mode):
kubectl create namespace user-1
kubectl create namespace user-2
kubectl create namespace user-3
kubectl create namespace user-4

Start creating AuthConfigs with conflicting host names:
kubectl -n user-1 apply -f -<<EOF
apiVersion: authorino.kuadrant.io/v1beta1
kind: AuthConfig
metadata:
  name: auth-1
spec:
  hosts:
  - talker-api-authorino.<IP_ADDRESS>.nip.io
  response:
  - name: auth-data
    wrapperKey: X-Auth-Data
    json:
      properties:
      - name: config
        value: auth-1
EOF

curl http://talker-api-authorino.<IP_ADDRESS>.nip.io:8000 -i
# "X-Auth-Data": "{\"config\":\"auth-1\"}",

kubectl -n user-2 apply -f -<<EOF
apiVersion: authorino.kuadrant.io/v1beta1
kind: AuthConfig
metadata:
  name: auth-2
spec:
  hosts:
  - talker-api-authorino.<IP_ADDRESS>.nip.io
  response:
  - name: auth-data
    wrapperKey: X-Auth-Data
    json:
      properties:
      - name: config
        value: auth-2
EOF

curl http://talker-api-authorino.<IP_ADDRESS>.nip.io:8000 -i
# "X-Auth-Data": "{\"config\":\"auth-2\"}",

kubectl -n user-3 apply -f -<<EOF
apiVersion: authorino.kuadrant.io/v1beta1
kind: AuthConfig
metadata:
  name: auth-3
spec:
  hosts:
  - "*.<IP_ADDRESS>.nip.io"
  response:
  - name: auth-data
    wrapperKey: X-Auth-Data
    json:
      properties:
      - name: config
        value: auth-3
EOF

curl http://talker-api-authorino.<IP_ADDRESS>.nip.io:8000 -i
# "X-Auth-Data": "{\"config\":\"auth-2\"}",

curl http://other.<IP_ADDRESS>.nip.io:8000 -i
# "X-Auth-Data": "{\"config\":\"auth-3\"}",

kubectl -n user-4 apply -f -<<EOF
apiVersion: authorino.kuadrant.io/v1beta1
kind: AuthConfig
metadata:
  name: auth-4
spec:
  hosts:
  - "*.<IP_ADDRESS>.nip.io"
  response:
  - name: auth-data
    wrapperKey: X-Auth-Data
    json:
      properties:
      - name: config
        value: auth-4
EOF

curl http://other.<IP_ADDRESS>.nip.io:8000 -i
# "X-Auth-Data": "{\"config\":\"auth-4\"}",

Upcoming issues to solve
Problem 1: Outdated statuses
By disabling the prevention of host name collision, users will have the power to replace each others' AuthConfigs for specific host names, including across k8s namespaces. Since Authorino does not update the statuses of preexisting AuthConfigs as part of reconciling a new one just applied, but just the status of the new AuthConfig itself, we will end up with a situation like the following after applying the 4 AuthConfigs from the verification steps above:
kubectl get authconfigs -A -o wide
# NAMESPACE   NAME     READY   HOSTS   AUTHENTICATION   METADATA   AUTHORIZATION   RESPONSE   WRISTBAND
# user-1      auth-1   true    1/1     0                0          0               1          false
# user-2      auth-2   true    1/1     0                0          0               1          false
# user-3      auth-3   true    1/1     0                0          0               1          false
# user-4      auth-4   true    1/1     0                0          0               1          false

Notice that all resources are reported ready and fully available, when actually only user-2/auth-2 and user-4/auth-4 are active. Instead, Authorino should reflect the latest changes that allowed 2 AuthConfigs to claim the host names previously linked to user-1/auth-1 and user-3/auth-3 in the status subresource of these CRs.
This is a problem that currently already exists in namespaced mode, but it actually derives from when/how we check whether a host name is taken and which status sub-resources we update when that happens. Therefore, it is a problem that will from now on happen always when PREVENT_COLLISIONS=false.

Problem 2: Once again, the order of reconciliation strikes us
The fix introduced in #330, for when an Authorino pod starts and finds preexisting AuthConfigs, and therefore it needs to populate the index, will not work when PREVENT_COLLISIONS=false.
Authorino ensures AuthConfigs and host names are added and linked together in the index following the chronological order that the resources were originally applied. It does that in a quick single-pass step, just to rebuild the structure of the index tree. Then, it gives control back to the usual reconciliation loop, which effectively parses each AuthConfig and finishes populating the index, this time leveraging concurrency.
In this second step, the order of the resources can no longer be guaranteed. Without the check on whether the reconciliation is an update for the same AuthConfig or an attempt by someone to replace some else’s AuthConfig by choosing the same host name (i.e. the prevention of host name collisions is off), Authorino can rebuild the index in the right order but it will end up finishing linking the host names to the AuthConfigs according to chance.
This is not a problem when PREVENT_COLLISIONS=true.

Closes #329

It turns out disabling the host name collision mechanism can lead to more problems than the solutions it enables, such as the handling of the status updates of superseded AuthConfigs. So, until we have a valid use case that justifies reconsidering the amount the work necessary to address those problems, we're closing this PR, together with the issue that originated it.


Auto-rotate stops rotation at yaw = (-)180

I've noticed the auto-rotation stops when the yaw is 180 or -180 degrees. It does seem to continue the yaw calculations when no rendering takes place (e.g. when I switch tabs). In that case, it continues the animation and again stops at yaw (-)180.
Setting the maxYaw value to something below 180 results in the proper reversal of the auto-rotation.
I'd think it would continue rotating. Either continue or reverse, but at least not just stop.
My most basic example while experiencing this is:
pannellum.viewer(element, {
    panorama: '<path to image>',
    autoRotate: -10,
})

I use the latest version.
Any suggestions? Am I missing something?

Duplicate of #764.


Bump oauth2-proxy image to latest release v7.2.1

Bug & security update which has no feature additions, per https://github.com/oauth2-proxy/oauth2-proxy/releases/tag/v7.2.1

Basically just repeated what happened here, but with the new version obviously 😄: https://github.com/oauth2-proxy/manifests/pull/63

Looks like I don't have permissions to land this, so if anyone else does please feel free!

@andrewnicolalde you can't merge yourself, only repo maintainers can.


Not Enough Values To Unpack Error

Windows 10 running Docker Desktop using Docker Compose Docker Compose.txt
When I run the terminal returns, Terminal Log.txt any help would be much appreciated have been troubleshooting this for weeks now. My config in the event you require it Config.txt
(If you need anything else please reach out I am new to this whole scene so paths for logs, etc would be appreciated)

Have you tried running it in a folder outside of AppData? say C:/qbitrr to test?

Okay, so I changed it to C:/qbitrr ran the container here's the Terminal Log.txt
Same error however it did pause a torrent, which it hasn't done before.

Could you try running qBitrr using Admin privileges? I think you have a permissions issue somehow somewhere

I'm not entirely sure how you would give a Container Admin Privilege, But I tried two things that resulted in no change to the logs
First I ran DockerDesktop as Admin and ran the container
Then I added the flag --privileged to the container
To my knowledge this should have allowed access, but if Im incorrect I would appreciate any help you could provide

You're right, sorry forgot you are on windows Docker, could you kindly test the latest testing image? use feramance/qbitrr:testing

I changed the image and ran this Docker Compose.txt I even made sure it had admin perms
output seems to be the exact same error
Terminal Log.txt

For the sake of it, can you try running it without the :ro and :rw suffixes for the volumes?

This could also be a windows docker limitation, I would suggest running the executable instead for windows if you can

Okay, so I fixed it! just not in the traditional way..
I uninstalled my entire OS and reinstalled it then completely rebuilt my media server. (I was already planning on doing this do this, it was my first time and was inefficient) after configuring my Arrs everything is working great HOWEVER I still receive the exact same database error, but I do not receive the unexpected value error. My best guess is this was not an issue with your tool, but rather an issue with my Sonarr and Radarr databases corrupting/errorring.
I am extremely grateful for your support and speedy replies, I absolutely love the tool and couldn't operate well without it.

Good to hear that issue was resolved. Might I suggest disabling SearchByYear to remove the database error for the time being. The tool isn't originally mine but I couldn't help but take it up after the original dev closed it as it was a requirement for me


chore: major cleanup of the code and build

There should no functional changes, code was put through Kres for
automated builds.
Go bumped, protobuf & grpc libraries bumped, linting errors fixed, etc.
Signed-off-by: Andrey Smirnov<EMAIL_ADDRESS>

/approve

/lgtm


Explore FreeForm validation v2

Link to previous discussion on the same topic - https://github.com/hibernate/hibernate-validator/pull/949
Note: This is still a work in progress.

From the notes that I've found on this I have:

need to make BeanMetaData abstract. There's a comment about it above. There will be two impls one for regular bean and another for property holder.
Store simple constraint defs instead of Set<MetaConstraintBuilder<?>> constraints in programmatic API
figure out how users will provide "type argument" constraints.


mongodb

Repro steps:

Action: cosmosDB.attachDatabaseAccount
Error type: Error
Error Message: Unable to connect to local Mongo DB instance. Make sure it is started correctly. See https://aka.ms/AA5zah5 for tips.
failed to connect to server [<IP_ADDRESS>:27017] on first connect [MongoError: connect ECONNREFUSED <IP_ADDRESS>:27017]
Version: 0.11.0
OS: win32
Product: Visual Studio Code
Product Version: 1.38.0
Language: en

Call Stack
Object.<anonymous> extension.bundle.js:181:30955
a extension.bundle.js:181:30487
process._tickCallback next_tick.js:68:7

Did you follow the tips?


Memory Management + Buffer Cache

Workshop Title
Andy Pavlo, CMU Database Group, Memory Management + Buffer Cache
Date: November 2024
Resources

Video: https://www.youtube.com/watch?v=aoewwZwVmv4

Quoted from Robert Haas:
some notes on terminology if you're trying to parse the Andy Pavlo talk:

Andy uses the term "page" to refer to one fixed-size chunk of a disk file. We more often call these "blocks". We do also use the word "page" to mean basically the same thing, but typically when we say "page" we're thinking about their contents and their internal structure, rather than the fact that they're stored in files. (See the typedefs for "Page" and "BlockNumber" in the source code.)

Andy uses the term "frame" to refer to a chunk of memory that can hold one page worth of data from on-disk. In PostgreSQL, we typically call these "buffers". (See the typedef for "Buffer" in the source code.)

What Andy calls a "latch" roughly corresponds to a LWLock in PostgreSQL.

What Andy calls a "page table," PostgreSQL calls the "buffer mapping table." (See buf_table.c.)

What Andy calls a "page directory" doesn't really exist in PostgreSQL. He describes a page directory as telling you where a certain page ID can be found on disk, but we set up the data directory in such a way that the operating system can essentially answer this question for us. (See GetRelationPath() in relpath.c.)

there were two things in the talk that i thought might be mistakes:

~23m Andy talks about transaction-safety, but AFAICS this has little connection to transactons, at least in PostgreSQL's architecture. i think the issue is WAL-safety: we can't choose a design that would allow the OS to flush dirty pages before flushing the WAL that covers those changes. else, it wouldn't be a write-ahead log

~44m Andy seems to say that PostgreSQL uses LRU-K and/or that we reload buffer access information from disk after a cold start. The former is not true; we use GCLOCK, not LRU-K. The part about reloading buffer access information is only true if you're using pg_prewarm's autoprewarm feature, but I don't think that was the result of the 2002 mailing list post Andy mentions. I may be misunderstanding what Andy's referring to here, but if I'm not, I think he's picked up some incorrect information.

2 papers about GCLOCK(Generalized clock):

Sequentiality and prefetching in database systems
Analysis of the generalized clock buffer replacement scheme for database transaction processing

Frédéric: Andy talks about finding a trade-off between evicting a dirty page that is rather cold versus evicting a clean page that is rather hot. But if I understood correctly, postgres' implementation of GCLOCK doesn't even consider wether a page is dirty or not?
Ants: We have background writer that tries to make sure that if a page is going to be evicted then it has been written out by the time someone needs it.
Robert Haas: the relevant logic here is in StrategyGetBuffer(). it doesn't care whether the buffer is dirty when deciding what to evict:
    }

    /* Nothing on the freelist, so run the "clock sweep" algorithm */
    trycounter = NBuffers;
    for (;;)
    {
        buf = GetBufferDescriptor(ClockSweepTick());

        /*
         * If the buffer is pinned or has a nonzero usage_count, we cannot use
         * it; decrement the usage_count (unless pinned) and keep scanning.
         */
        local_buf_state = LockBufHdr(buf);

        if (BUF_STATE_GET_REFCOUNT(local_buf_state) == 0)
        {
            if (BUF_STATE_GET_USAGECOUNT(local_buf_state) != 0)
            {
                local_buf_state -= BUF_USAGECOUNT_ONE;

                trycounter = NBuffers;
            }
            else
            {
                /* Found a usable buffer */

Junwang Zhao: I thought the usage count can be used for that? If a dirty page is cold, it's usage count is low, a hot clean page has high usage count, so the dirty page will be selected as the victim.

x4m: Any block may be in shared buffers, or buffers of some BufferAccessStrategy. When we are locking buffer in shared buffers, how do we ensure it's not accesed somewhere by some strategy?
TomasV: It still has to be in the global hash table, mapping blocks to shared buffers.
Each block can be in only one buffer at a time, there can't be multiple copies. The access strategy is used to generate "candidates" if the block is not already present in shared buffers. It's not a "hard restriction" on which buffers may be used by the scan.

Resize shared_buffers without a server restart:

PGC_SIGHUP shared_buffers?
Changing shared_buffers without restart
shrink the buffer pool while PostgreSQL is running
Dynamic resize of shared buffers
Enhancing PostgreSQL Plasticity: New Frontiers in Memory Management


Replace instances of the word "Feed" with "Stream"

We are not encouraging consumption, we are encouraging group coherence and flow. Replace both for users and in code.

Good thinking!
On Sat, Jun 13, 2020 at 2:01 PM Aaron<EMAIL_ADDRESS>wrote:

We are not encouraging consumption, we are encouraging group coherence and
flow. Replace both for users and in code.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Hylozoic/hylo-evo/issues/508, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQCOZGYVFFWMDWQR4QRFGTRWPSJHANCNFSM4N5EQFSA
.


ACK Message Type Support

This PR adds ACK message type support to the Universal Pipeline.
This PR is still work in progress.
Test Steps:

Include steps to test these changes

Changes

Include a comprehensive list of changes in this PR
(For web UI changes) Include screenshots/video of changes

Testing

[ ] Tested locally?
[ ] Ran ./prime test or ./gradlew testSmoke against local Docker ReportStream container?
[ ] (For Changes to /frontend-react/...) Ran npm run lint:write?
[ ] Added tests?

Closing this PR as the ACK/NACKs are on standby


Allow CustomDocumentEditEvent to cause non-mutable changes that do not trigger dirty

I'm proposing:
interface CustomDocumentEditEvent {
  /**
   * Whether the edit changed the underlying document. Setting this to false
   * will allow the edit to be undone but will not trigger a backup, cause the
   * dirty indicator to display or require a save when closing the editor. Defaults
   * to true.
   */
  isMutable?: boolean
}

The problem:
Custom editors that want "edits" that change the webview state but do change the document to be integrated into the history stack. An example of this is changing a selection.

If a change does not touch the underlying document, does it belong in the history stack?
Can you explain the use case for this a bit more. For text documents at least, I would not expect undo/redo to move through my past selections

If a change does not touch the underlying document, does it belong in the history stack?
Can you explain the use case for this a bit more. For text documents at least, I would not expect undo/redo to move through my past selections

For images making a selection is something that you may want to undo, for example selections can be polygons, you can invert selections, you can add to them, etc.
I found myself always leaving dirty editors when opening an image, selecting all and copying is the main thing I saw here.
This gets worse when retain context is false because backup didn't get a chance to run.

For images making a selection is something that you may want to undo, for example selections can be polygons, you can invert selections, you can add to them, etc.
I found myself always leaving dirty editors when opening an image, selecting all and copying is the main thing I saw here.
This gets worse when retain context is false because backup didn't get a chance to run.

Thanks for the explanation.
You can already express non-mutating changes by just updating your custom document's internal state, but you are correct that these cannot hook into undo/redo events

Thanks for the explanation.
You can already express non-mutating changes by just updating your custom document's internal state, but you are correct that these cannot hook into undo/redo events

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!

That's a shame, I think this would be useful for plenty of graphics/diagramming custom editors.


ImportError: cannot import name 'StrEnum' from 'enum'

Traceback (most recent call last):
  File "C:\browser-use\examples.py", line 2, in <module>
    from cerebellum import AnthropicPlanner, BrowserAgent, BrowserAgentOptions, pause_for_input
  File "C:\browser-use\venv\lib\site-packages\cerebellum\__init__.py", line 1, in <module>
    from .browser import *
  File "C:\browser-use\venv\lib\site-packages\cerebellum\browser.py", line 11, in <module>
    from enum import StrEnum
ImportError: cannot import name 'StrEnum' from 'enum' (C:\Python\Python310\lib\enum.py)

Python: 3.10.8
Error supposedly related to an older incompatible version.
https://github.com/theredsix/cerebellum/blob/ce83dbe23fc97d7c88a8b739706bca54eed844ae/python/pyproject.toml#L52
Could this please be made retrocompatible to 3.10.x?

Additional suggestion: Support OpenAI-compatible endpoints OPENAI_API_KEY + OPENAI_API_BASE (useful for local LLM).

@scm-aiml thoughts on the python backport?

@theredsix this should be an easy fix, and should be able to support python 3.10. I will take a quick change and try just setting it like this https://github.com/theredsix/cerebellum/blob/ce83dbe23fc97d7c88a8b739706bca54eed844ae/python/src/cerebellum/browser.py#L90

Hi @Katehuuh, this should be fixed in v0.2.3.

When run the google example python again:
(venv) C:\browser-use>python examples.py
Traceback (most recent call last):
  File "C:\browser-use\examples.py", line 2, in <module>
    from cerebellum import AnthropicPlanner, BrowserAgent, BrowserAgentOptions, pause_for_input
  File "C:\browser-use\venv\lib\site-packages\cerebellum\__init__.py", line 1, in <module>
    from .browser import *
  File "C:\browser-use\venv\lib\site-packages\cerebellum\browser.py", line 14, in <module>
    from cerebellum.utils import parse_xdotool, pause_for_input
  File "C:\browser-use\venv\lib\site-packages\cerebellum\utils.py", line 2, in <module>
    import termios
ModuleNotFoundError: No module named 'termios'

(venv) C:\browser-use>pip install termios
ERROR: Could not find a version that satisfies the requirement termios (from versions: none)
ERROR: No matching distribution found for termios

FYI termios will not work because Windows os is not a POSIX platform.


Add Loader while metadata is being fetched in Workflow Settings

What happened: The Workflow Settings Component doesn't show a loader while the details of the workflow are being fetched due to slower networks, instead, it has an empty text field and a blank avatar.
What you expected to happen: The Stepper UI component should be loaded but the Text Field and the Avatar section should consist of a loader while the data is being fetched. Also, the Next button should be disabled while the fetch isn't completed.
How to reproduce it (as minimally and precisely as possible): Toggle throttle slow network on the browser and navigate to the Workflow Settings page.

Can I take this?

Hey @S-ayanide  can you assign me so that I can raise The pr
My previous contribution in Wikimedia Foundation
https://gerrit.wikimedia.org/r/q/punit

Hey @S-ayanide when the network is offline we are getting the loader is seen


sum_cols, sum_rows are slow?

This is related to #124, which is arguably unimportant, but this one  might be significant.
Mat.sum_cols and Mat.sum_rows seem a lot slower than Mat.sum.  These are bytecode times, but I investigated because I was suprised at what happened in native code when I shifted from repeatedly calling sum, to using sum_cols.  Still trying to understand my timings.  I ran the first set of tests below with sum_rows as well, and got similar times.  (My crude time1 function is defined below.)
Running each test twice:
 let m = Owl.Mat.uniform 1 500000000;;
val m : Owl.Mat.mat =

         C0       C1       C2       C3       C4     C499999995 C499999996 C499999997 C499999998 C499999999
R0 0.940058 0.620377 0.127419 0.756517 0.554394 ...   0.177561   0.451027   0.496034  0.0138471   0.339927

# Utils.Genl.time1 Owl.Mat.sum m;;
cpu: 0.320055s, wall: 0.320193s
- : float = 249996677.135371417
# Utils.Genl.time1 Owl.Mat.sum m;;
cpu: 0.325267s, wall: 0.325536s
- : float = 249996677.135371417
# Utils.Genl.time1 Owl.Mat.sum_cols m;;
cpu: 2.473814s, wall: 2.474378s
- : Owl.Mat.mat =
            C0
R0 2.49997E+08

# Utils.Genl.time1 Owl.Mat.sum_cols m;;
cpu: 2.488312s, wall: 2.489074s
- : Owl.Mat.mat =
            C0
R0 2.49997E+08

Comparing row sums using map and sum rather than sum_cols, the gettimeofday wall times are consistently the same, but the Sys.time times are consistently different.  Not sure how to interpret that.  (Wrapping the map sum in of_array doesn't noticeably change the time.)
# let m = Owl.Mat.uniform 10000 10000;;
val m : Owl.Mat.mat = ...

# let cpu_time, wall_time = Sys.time(), Unix.gettimeofday() in
   let result = Owl.Mat.(of_array (map_rows sum m) 10000 1) in
   Printf.printf "cpu: %fs, wall: %fs\n%!"
               (Sys.time() -. cpu_time) (Unix.gettimeofday() -. wall_time);
   result;;
cpu: 0.074554s, wall: 0.074557s
- : Owl.Mat.mat =

           C0
   R0 5002.59
   R1 4952.44
   R2 4969.15
   R3 4977.81
   R4 5056.18
          ...
R9995 5005.54
R9996 5014.34
R9997 4979.17
R9998 4942.21
R9999 5004.69

# Utils.Genl.time1 Owl.Mat.sum_cols m;;
cpu: 0.522337s, wall: 0.073119s
- : Owl.Mat.mat =

           C0
   R0 5002.59
   R1 4952.44
   R2 4969.15
   R3 4977.81
   R4 5056.18
          ...
R9995 5005.54
R9996 5014.34
R9997 4979.17
R9998 4942.21
R9999 5004.69

This is the definition of time1:
let time1 f x =
    let cpu_time, wall_time = Sys.time(), Unix.gettimeofday() in
    let result = f x in
    Printf.printf "cpu: %fs, wall: %fs\n%!" (Sys.time() -. cpu_time) (Unix.gettimeofday() -. wall_time);
    result

Hi Marshall, as I answered in https://github.com/ryanrhymes/owl/issues/124, the reason is sum_row and sum_col use matrix multiplication provided in CBLAS, whereas for simple sum, the whole matrix is flattened then uses a simple for loop to add the element up.
Based on your feedback, I am leaning to replace sum_rows and sum_cols with owl's native implementation, to avoid this kind of issues and also to have consistent return and performance. The new implementation has a lot of optimisation to achieve good performance https://github.com/ryanrhymes/owl/blob/ef56c630f9485fac5eb551abb4e539725d91b867/src/owl/owl_dense_common_vec_fold.c#L230

That sounds good.  (It's fascinating to me that an OCaml for loop is faster than CBLAS.)

@mars0i CBLAS is much faster than Ocaml for loops. @ryanrhymes was talking about writing a loop in C, which becomes vectorized. The problem was that he was using matrix multiplication to add up a row or column. This involves many extra operations and possibly creating 2 vectors.

Ah, thanks @bluddy.  That makes sense.


More Missing Vouchers

Hello,
I had the following vouchers until yesterday, when I found they'd disappeared:
2 Particle Vouchers
2 Ball Vouchers
2 Size Vouchers
IGN: BlitzMentalist

Refunded.