Error Initializing Homebridge plugin due to Ceiling Fan Switch

Describe the bug
When starting Homebridge, I get the following error which prevents any of my Tuya accessories from loading/showing up in HomeKit:
Adding: Ceiling Fan Switch (fskg / eb2519fa123816e90clnjp)
Creating New Accessory eb2519fa123816e90clnjp
Register Platform Accessory Ceiling Fan Switch
(node:24795) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined
at Fanv2Accessory.getSpeedFunctionLevel (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/fanv2_accessory.js:226:57)
at new Fanv2Accessory (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/fanv2_accessory.js:28:29)
at TuyaPlatform.addAccessory (/usr/local/lib/node_modules/homebridge-tuya-platform/index.js:148:27)
at TuyaPlatform.initTuyaSDK (/usr/local/lib/node_modules/homebridge-tuya-platform/index.js:97:12)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:24795) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:24795) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Expected behavior
Tuya accessories show up correctly
Screenshots
If applicable, add screenshots to help explain your problem.
Device info (please complete the following information, which can be found in log):
TuyaOpenAPI response: {"result":{"devices":[{"active_time":1620963612,"biz_type":0,"category":"fskg","create_time":1617076902,"icon":"smart/icon/ay14906729310721fNjn/a92553379c09ef865681d1c62eb04190.jpg","id":"eb2519fa123816e90clnjp","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"b31e7de97fdbb1e9","lon":"-94.44372367466038","model":"DS02F(WiFi+Ble)","name":"Ceiling Fan Switch","online":true,"owner_id":"37584837","product_id":"tqas5nfwomvgvvhf","product_name":"Smart Ceiling Fan Switch-DS02F","status":[{"code":"switch_fan","value":false},{"code":"countdown_fan","value":0},{"code":"fan_speed_enum","value":"level_3"},{"code":"fan_speed","value":0}],"sub":false,"time_zone":"-05:00","uid":"az16163776461937QCzi","update_time":1627341634,"uuid":"08911298e06c509a"},{"active_time":1617069503,"biz_type":0,"category":"kg","create_time":1617069503,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"180010218cce4ec11de4","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"2b774df566d370f2","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Front Porch Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341634,"uuid":"180010218cce4ec11de4"},{"active_time":1625531391,"biz_type":0,"category":"kg","create_time":1625531391,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dd16c5","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"c09b722c4865b472","lon":"-94.44372367466038","name":"Garage Lights","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341634,"uuid":"607470768caab5dd16c5"},{"active_time":1625531550,"biz_type":0,"category":"kg","create_time":1625531550,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"60747076e09806055861","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"d3abc39d1a18b046","lon":"-94.44372367466038","name":"Exterior Lights","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341634,"uuid":"60747076e09806055861"},{"active_time":1617066243,"biz_type":0,"category":"kg","create_time":1617066243,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"180010218cce4ec05516","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"eb5397505be3e606","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Kitchen Pendant Lights","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341633,"uuid":"180010218cce4ec05516"},{"active_time":1616952580,"biz_type":0,"category":"kg","create_time":1616952580,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"60747076e0980604baaf","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"170bbc8edf125792","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Master Bedroom Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341633,"uuid":"60747076e0980604baaf"},{"active_time":1617066163,"biz_type":0,"category":"kg","create_time":1617066163,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dda198","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"e2f97fd9a096cc7d","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Kitchen Ceiling Lights","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341633,"uuid":"607470768caab5dda198"},{"active_time":1617066116,"biz_type":0,"category":"kg","create_time":1617066116,"icon":"smart/icon/ay14906729310721fNjn/aad73a9cc554ca2c684339431d2a411b.jpg","id":"318214378caab5e5b071","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"af23cdc41f8ad41c","lon":"-94.44372367466038","model":"SS02(量产)","name":"Living Room Lights","online":true,"owner_id":"37584837","product_id":"pqhecszou3n95wpa","product_name":"SS02 3-Way Smart Wi-Fi Light Switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341632,"uuid":"318214378caab5e5b071"},{"active_time":1617066314,"biz_type":0,"category":"kg","create_time":1617066314,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dd0f51","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"d994916295f13ead","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Deck Fan Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341632,"uuid":"607470768caab5dd0f51"},{"active_time":1616606886,"biz_type":0,"category":"kg","create_time":1616606886,"icon":"smart/icon/ay14906729310721fNjn/aad73a9cc554ca2c684339431d2a411b.jpg","id":"318214378caab5e48225","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"fd35131697fc7ee7","lon":"-94.44372367466038","model":"SS02(量产)","name":"Foyer","online":true,"owner_id":"37584837","product_id":"pqhecszou3n95wpa","product_name":"SS02 3-Way Smart Wi-Fi Light Switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341631,"uuid":"318214378caab5e48225"},{"active_time":1618885677,"biz_type":0,"category":"kg","create_time":1618885677,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"180010218cce4ec407de","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"7f426e3e18ec6b9a","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Loft","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341631,"uuid":"180010218cce4ec407de"},{"active_time":1617066472,"biz_type":0,"category":"kg","create_time":1617066390,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dd4ba7","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"f57d77d1d3a20abc","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Deck Fan","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341631,"uuid":"607470768caab5dd4ba7"},{"active_time":1616607304,"biz_type":0,"category":"kg","create_time":1616607304,"icon":"smart/icon/ay14906729310721fNjn/aad73a9cc554ca2c684339431d2a411b.jpg","id":"318214378caab5de438f","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"26dd76ca050e224e","lon":"-94.44372367466038","model":"SS02(量产)","name":"Upstairs Hall","online":true,"owner_id":"37584837","product_id":"pqhecszou3n95wpa","product_name":"SS02 3-Way Smart Wi-Fi Light Switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341631,"uuid":"318214378caab5de438f"},{"active_time":1616979476,"biz_type":0,"category":"kg","create_time":1616979476,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"60747076e0980604c325","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"13d269c61eb00443","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Office Ceiling Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"60747076e0980604c325"},{"active_time":1625531310,"biz_type":0,"category":"kg","create_time":1625531310,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"8648408624a1602688c0","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"54bd18413fe7d314","lon":"-94.44372367466038","name":"Dining Room Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"8648408624a1602688c0"},{"active_time":1617066378,"biz_type":0,"category":"kg","create_time":1617066378,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"180010218cce4ec2c71d","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"0710209c0b2cfb80","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Breakfast Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"180010218cce4ec2c71d"},{"active_time":1616607215,"biz_type":0,"category":"kg","create_time":1616607215,"icon":"smart/icon/ay14906729310721fNjn/aad73a9cc554ca2c684339431d2a411b.jpg","id":"31821437e098060533b2","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"6f328c358ad09633","lon":"-94.44372367466038","model":"SS02(量产)","name":"Upstairs Light","online":true,"owner_id":"37584837","product_id":"pqhecszou3n95wpa","product_name":"SS02 3-Way Smart Wi-Fi Light Switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"31821437e098060533b2"},{"active_time":1616952576,"biz_type":0,"category":"kg","create_time":1616952576,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5de09c5","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"9156a723e5e69284","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Spare Room Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"607470768caab5de09c5"},{"active_time":1616979368,"biz_type":0,"category":"kg","create_time":1616979368,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dda10d","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"f2f51a5ba5e5e933","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Creative Room Light","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341630,"uuid":"607470768caab5dda10d"},{"active_time":1617066589,"biz_type":0,"category":"kg","create_time":1617066391,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dd16ca","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"bf44d50611d5b4ba","lon":"-94.44372367466038","model":"SS02S(不分负载)乐鑫","name":"Deck Lights","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341629,"uuid":"607470768caab5dd16ca"},{"active_time":1616606886,"biz_type":0,"category":"kg","create_time":1616606886,"icon":"smart/icon/ay14906729310721fNjn/aad73a9cc554ca2c684339431d2a411b.jpg","id":"31821437e0980604b88c","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"a3acdb1a1cd9e2ce","lon":"-94.44372367466038","model":"SS02(量产)","name":"Foyer 2","online":true,"owner_id":"37584837","product_id":"pqhecszou3n95wpa","product_name":"SS02 3-Way Smart Wi-Fi Light Switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341629,"uuid":"31821437e0980604b88c"},{"active_time":1625531484,"biz_type":0,"category":"kg","create_time":1625531484,"icon":"smart/icon/ay14906729310721fNjn/1568861668b73fbe9c073.jpg","id":"607470768caab5dda0f5","ip":"<IP_ADDRESS>","lat":"38.90713572353337","local_key":"d7463f4d9bc847ec","lon":"-94.44372367466038","name":"Guest Bedroom","online":true,"owner_id":"37584837","product_id":"girtolmb5bb5va39","product_name":"SS02S smart light switch","status":[{"code":"switch_1","value":false},{"code":"countdown_1","value":0}],"sub":false,"time_zone":"-06:00","uid":"az16163776461937QCzi","update_time":1627341629,"uuid":"607470768caab5dda0f5"}],"has_more":false,"last_row_key":"D53448B1D0FBE800497BB42FE6274C8E","total":22},"success":true,"t":1627342199700} path = /v1.0/iot-01/associated-users/devices
TuyaOpenAPI request: method = get, endpoint = https://openapi.tuyaus.com, path = /v1.0/devices/functions, params = {"device_ids":"eb2519fa123816e90clnjp,180010218cce4ec11de4,607470768caab5dd16c5,60747076e09806055861,180010218cce4ec05516,60747076e0980604baaf,607470768caab5dda198,318214378caab5e5b071,607470768caab5dd0f51,318214378caab5e48225,180010218cce4ec407de,607470768caab5dd4ba7,318214378caab5de438f,60747076e0980604c325,8648408624a1602688c0,180010218cce4ec2c71d,31821437e098060533b2,607470768caab5de09c5,607470768caab5dda10d,607470768caab5dd16ca"}, body = null, headers = {"t":"1627342199737","client_id":"vt5jew5easbulmbke1q3","nonce":"60c82bc0-ee69-11eb-a15b-83a22d498f2a","Signature-Headers":"client_id","sign":"D72F136F97BEAE43C87FB20380DDE27248D2F62593AA8AC1519710B1ED2353F6","sign_method":"HMAC-SHA256","access_token":"719a36970df36b0bcd925cfc642be422","lang":"en","dev_lang":"javascript","dev_channel":"homebridge","devVersion":"1.3.0"}
TuyaOpenAPI response: {"result":[{"category":"kg","devices":["318214378caab5e5b071","318214378caab5e48225","318214378caab5de438f","31821437e098060533b2"],"functions":[{"code":"switch_1","desc":"switch 1","name":"switch 1","type":"Boolean","values":"{}"},{"code":"countdown_1","desc":"countdown 1","name":"countdown 1","type":"Integer","values":"{"unit":"秒","min":0,"max":86400,"scale":0,"step":1}"}],"product_id":"pqhecszou3n95wpa"},{"category":"fskg","devices":["eb2519fa123816e90clnjp"],"functions":[{"code":"switch_fan","desc":"switch fan","name":"switch fan","type":"Boolean","values":"{}"},{"code":"countdown_fan","desc":"countdown fan","name":"countdown fan","type":"Integer","values":"{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"},{"code":"fan_speed_enum","desc":"fan speed enum","name":"fan speed enum","type":"Enum","values":"{"range":["level_1","level_2","level_3","level_4"]}"},{"code":"fan_speed","desc":"fan speed","name":"fan speed","type":"Integer","values":"{"unit":"%","min":0,"max":100,"scale":0,"step":1}"}],"product_id":"tqas5nfwomvgvvhf"},{"category":"kg","devices":["180010218cce4ec11de4","607470768caab5dd16c5","60747076e09806055861","180010218cce4ec05516","60747076e0980604baaf","607470768caab5dda198","607470768caab5dd0f51","180010218cce4ec407de","607470768caab5dd4ba7","60747076e0980604c325","8648408624a1602688c0","180010218cce4ec2c71d","607470768caab5de09c5","607470768caab5dda10d","607470768caab5dd16ca"],"functions":[{"code":"switch_1","desc":"switch 1","name":"switch 1","type":"Boolean","values":"{}"},{"code":"countdown_1","desc":"countdown 1","name":"countdown 1","type":"Integer","values":"{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"}],"product_id":"girtolmb5bb5va39"}],"success":true,"t":1627342200090} path = /v1.0/devices/functions
TuyaOpenAPI request: method = get, endpoint = https://openapi.tuyaus.com, path = /v1.0/devices/functions, params = {"device_ids":"31821437e0980604b88c,607470768caab5dda0f5"}, body = null, headers = {"t":"1627342200126","client_id":"vt5jew5easbulmbke1q3","nonce":"60c82bc0-ee69-11eb-a15b-83a22d498f2a","Signature-Headers":"client_id","sign":"E5F9F0474E4CACF0E901DA513026F6B59F3E85202EC4B663D3C8251172EE05D0","sign_method":"HMAC-SHA256","access_token":"719a36970df36b0bcd925cfc642be422","lang":"en","dev_lang":"javascript","dev_channel":"homebridge","devVersion":"1.3.0"}
TuyaOpenAPI response: {"result":[{"category":"kg","devices":["31821437e0980604b88c"],"functions":[{"code":"switch_1","desc":"switch 1","name":"switch 1","type":"Boolean","values":"{}"},{"code":"countdown_1","desc":"countdown 1","name":"countdown 1","type":"Integer","values":"{"unit":"秒","min":0,"max":86400,"scale":0,"step":1}"}],"product_id":"pqhecszou3n95wpa"},{"category":"kg","devices":["607470768caab5dda0f5"],"functions":[{"code":"switch_1","desc":"switch 1","name":"switch 1","type":"Boolean","values":"{}"},{"code":"countdown_1","desc":"countdown 1","name":"countdown 1","type":"Integer","values":"{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"}],"product_id":"girtolmb5bb5va39"}],"success":true,"t":1627342200402} path = /v1.0/devices/functions
Adding: Ceiling Fan Switch (fskg / eb2519fa123816e90clnjp)
Creating New Accessory eb2519fa123816e90clnjp
Register Platform Accessory Ceiling Fan Switch
(node:24795) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined
at Fanv2Accessory.getSpeedFunctionLevel (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/fanv2_accessory.js:226:57)
at new Fanv2Accessory (/usr/local/lib/node_modules/homebridge-tuya-platform/lib/fanv2_accessory.js:28:29)
at TuyaPlatform.addAccessory (/usr/local/lib/node_modules/homebridge-tuya-platform/index.js:148:27)
at TuyaPlatform.initTuyaSDK (/usr/local/lib/node_modules/homebridge-tuya-platform/index.js:97:12)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
(Use node --trace-warnings ... to show where the warning was created)
(node:24795) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:24795) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Device functions (please complete the following information, which can be found in log):
Device Information
Product Name
Smart Ceiling Fan Switch-DS02F
Device ID
eb2519fa123816e90clnjp
Product Category
fskg
Device Status
Online
Activated At
2021-05-13 22:40:12

Hi @codydalerodgers ,Sorry for the late reply.
We should have fixed this in version 1.3.1, please update and try again.


feature(client-wrapper): Adds support for Creation of CStorPool

Fixes #68

Codecov Report

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

@@           Coverage Diff           @@
##           master      #70   +/-   ##
=======================================
  Coverage   42.46%   42.46%
=======================================
  Files           5        5
  Lines         146      146
=======================================
  Hits           62       62
  Misses         83       83
  Partials        1        1

Continue to review full report at Codecov.

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


[rM2] tarnish exits immediately after start

I just tried to install the oxide for the first time using toltec. The installation itself was successful, but after starting the service it crashes almost immediately and keeps restarting itself.
The main error I found in the log is virtual void EPRenderContext::renderNextFrame(QSGRenderer*, uint) can't render without a renderer. See the full log for more details.
Commands used to install
opkg update
opkg install oxide
systemctl disable --now xochitl
systemctl enable --now tarnish

This was on a fresh system just after the 2.6 update.
Log:
Mar 25 12:38:35 reMarkable tarnish[862]: No previous applications
Mar 25 12:38:35 reMarkable tarnish[862]: Unable to find current application
Mar 25 12:38:35 reMarkable tarnish[862]: Launching  "/codes/eeems/oxide1/apps/d3641f0572435f76bb5cc1468d4fe1db"
Mar 25 12:38:35 reMarkable tarnish[862]: Application "codes.eeems.oxide" is starting.
Mar 25 12:38:35 reMarkable tarnish[862]: Application "codes.eeems.oxide" is running.
Mar 25 12:38:35 reMarkable tarnish[862]: [codes.eeems.oxide 1625] QML debugging is enabled. Only use this in a safe environment.
Mar 25 12:38:35 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Version mismatch, Runtime:  5.15.1 , Build:  5.11.3
Mar 25 12:38:35 reMarkable tarnish[862]: [codes.eeems.oxide 1625] RM2 detected...
Mar 25 12:38:35 reMarkable tarnish[862]: [codes.eeems.oxide 1625] EPD platform plugin loaded!
Mar 25 12:38:35 reMarkable tarnish[862]: [codes.eeems.oxide 1625] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Waiting for tarnish to start up
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Requesting APIs
Mar 25 12:38:36 reMarkable tarnish[862]: Checking permission "power" from requestAPI
Mar 25 12:38:36 reMarkable tarnish[862]: "codes.eeems.oxide" true
Mar 25 12:38:36 reMarkable tarnish[862]: Registering  "/codes/eeems/oxide1/power"
Mar 25 12:38:36 reMarkable tarnish[862]: Checking permission "wifi" from requestAPI
Mar 25 12:38:36 reMarkable tarnish[862]: "codes.eeems.oxide" true
Mar 25 12:38:36 reMarkable tarnish[862]: Registering  "/codes/eeems/oxide1/wifi"
Mar 25 12:38:36 reMarkable tarnish[862]: Wifi API true
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/9d42d850981653879d3be634f4ab7ac4" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/0975228a6ada5aa3a1da06147af62562" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/d7a4dfaea2095b3ca7e545c64ef85d55" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/ca307f25617d5fad9ad27dcad936371d" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/bc1b8d886d3351dda2dccb052e215d5c" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/network/ec6fe20633915d10874cf53e6b5e83c7" codes.eeems.oxide1.Network
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/efbfbd2defbfbdefbfbd1a23" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/efbfbd2defbfbdefbfbd1a22" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/546751efbfbdefbfbd10" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/efbfbd2defbfbdefbfbd1a23" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/546751efbfbdefbfbd7f" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/efbfbd220515efbfbdefbfbd" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/08efbfbd2aefbfbdefbfbd68" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/bss/342cefbfbd710defbfbd" codes.eeems.oxide1.BSS
Mar 25 12:38:36 reMarkable tarnish[862]: Checking permission "system" from requestAPI
Mar 25 12:38:36 reMarkable tarnish[862]: "codes.eeems.oxide" true
Mar 25 12:38:36 reMarkable tarnish[862]: Enabling automatic sleep Enabling automatic sleep
Mar 25 12:38:36 reMarkable tarnish[862]: Sleep After:  1  minutes Sleep After:  1  minutes
Mar 25 12:38:36 reMarkable tarnish[862]: Checking permission "apps" from requestAPI
Mar 25 12:38:36 reMarkable tarnish[862]: "codes.eeems.oxide" true
Mar 25 12:38:36 reMarkable tarnish[862]: Registering  "/codes/eeems/oxide1/apps"
Mar 25 12:38:36 reMarkable tarnish[862]: Apps API true
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/apps/549212b2493354f4a9ee5da097a2dacd" codes.eeems.oxide1.Application
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/apps/f3999e4363cb568ea6ccc50aa4b27b23" codes.eeems.oxide1.Application
Mar 25 12:38:36 reMarkable tarnish[862]: Registered "/codes/eeems/oxide1/apps/d3641f0572435f76bb5cc1468d4fe1db" codes.eeems.oxide1.Application
Mar 25 12:38:36 reMarkable tarnish[862]: Checking permission "notification" from requestAPI
Mar 25 12:38:36 reMarkable tarnish[862]: "codes.eeems.oxide" true
Mar 25 12:38:36 reMarkable tarnish[862]: Sleep After:  1  minutes Sleep After:  1  minutes
Mar 25 12:38:36 reMarkable tarnish[862]: Sleep After:  1  minutes qrc:/widgets/SettingsPopup.qml:44:17: QML BetterSpinBox: Binding loop detected for property "value"
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] qrc:/main.qml:21:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Creating window
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] qml: Main display
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] parsing config file...
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    columns: 6
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    fontSize: 23
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    showWifiDb: false
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    showBatteryPercent: false
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    showBatteryTemperature: false
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625]    showDate: false
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Finished parsing config file.

Mar 25 12:38:36 reMarkable tarnish[862]: Can't find columnsSpinBox Can't find columnsSpinBox
Mar 25 12:38:36 reMarkable tarnish[862]: Can't find columnsSpinBox Can't find fontSizeSpinBox
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Can't find sleepAfterSpinBox
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] Finished updating UI.
Mar 25 12:38:36 reMarkable tarnish[862]: No auto start application No auto start application
Mar 25 12:38:36 reMarkable tarnish[862]: [codes.eeems.oxide 1625] virtual void EPRenderContext::renderNextFrame(QSGRenderer*, uint) can't render without a renderer
Mar 25 12:38:36 reMarkable tarnish[862]: Automatically unregistering  "/codes/eeems/oxide1/apps"
Mar 25 12:38:36 reMarkable tarnish[862]: Apps API false
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/apps/549212b2493354f4a9ee5da097a2dacd"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/apps/f3999e4363cb568ea6ccc50aa4b27b23"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/apps/d3641f0572435f76bb5cc1468d4fe1db"
Mar 25 12:38:36 reMarkable tarnish[862]: Automatically unregistering  "/codes/eeems/oxide1/power"
Mar 25 12:38:36 reMarkable tarnish[862]: Automatically unregistering  "/codes/eeems/oxide1/wifi"
Mar 25 12:38:36 reMarkable tarnish[862]: Wifi API false
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/9d42d850981653879d3be634f4ab7ac4"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/0975228a6ada5aa3a1da06147af62562"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/d7a4dfaea2095b3ca7e545c64ef85d55"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/ca307f25617d5fad9ad27dcad936371d"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/bc1b8d886d3351dda2dccb052e215d5c"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/network/ec6fe20633915d10874cf53e6b5e83c7"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/efbfbd2defbfbdefbfbd1a23"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/efbfbd2defbfbdefbfbd1a22"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/546751efbfbdefbfbd10"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/546751efbfbdefbfbd7f"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/efbfbd220515efbfbdefbfbd"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/08efbfbd2aefbfbdefbfbd68"
Mar 25 12:38:36 reMarkable tarnish[862]: Unregistered "/codes/eeems/oxide1/bss/342cefbfbd710defbfbd"
Mar 25 12:38:36 reMarkable tarnish[862]: Application "codes.eeems.oxide" crashed.
Mar 25 12:38:36 reMarkable tarnish[862]: Application "codes.eeems.oxide" is not running.
Mar 25 12:38:36 reMarkable tarnish[862]: Application "codes.eeems.oxide" exit code 11

This keeps repeating.

Do you have rm2fb installed?

no, I just realized it doesn't install as a dependency. Unfortunately rm2fb has a bug with 2.6 and installing it made everything way worse. Seems like I'll have to wait for a fix in rm2fb.

The work has been done to support the 2.6 update, but this version is not yet available in Toltec.

Oh wau. That was pretty quick. Thank you very much. I'll try it right away


iOS: Unable to Stop Alarm from Notification - Stop Button Not Available

Alarm plugin version
4.0.6
I've encountered an issue on iOS where the stop button is not available when the alarm goes off in the notification. As a result, the alarm continues to ring indefinitely unless the app is stopped or cleared from the task manager.
Device info
tested on iPhone 16 with iOS 18

Re: cast issues. I've started using pigeon for Flutter <-> Native communication for my packages (e.g. native_geofence) and it has been a life saver. I don't need to copy-paste strings anymore or deal with casts.

I was testing with 4.0.7 today, I'm not seeing a button in the notification, is there supposed to be one?
I also noticed that unlike Android, the notification is not dimissed once the alarm is stopped via code. Is that WAI?
Happy to help contribute code if you could give some pointers.

Hi @orkun1675,
In order to have the stop button in the notification, when setting your alarm, make sure to specify a NotificationSettings .stopButton like this for example:
final alarmSettings = AlarmSettings(
      id: id,
      dateTime: selectedDateTime,
      loopAudio: loopAudio,
      vibrate: vibrate,
      volume: volume,
      assetAudioPath: assetAudio,
      warningNotificationOnKill: Platform.isIOS,
      notificationSettings: NotificationSettings(
        title: 'Alarm example',
        body: 'Your alarm ($id) is ringing',
        stopButton: 'Stop the alarm',
        icon: 'notification_icon',
      ),
    );

await Alarm.set(alarmSettings: alarmSettings);

If the stopButton param is null then no stop button will be displayed.  Then, about:

I also noticed that unlike Android, the notification is not dimissed once the alarm is stopped via code. Is that WAI?

This is indeed an issue I'll have to fix. I've seen the other issues you recently opened and I'll do my best to fix them as fast as possible. Please note that I am the sole developer working on this package in my free time, so it may take a few weeks to address this in the worst-case scenario. I'll keep you updated !
Lastly, if you’re interested in contributing, it would be greatly appreciated. Do you have experience with native iOS (Swift) or Android (Kotlin) development? The code is primarily handled natively to ensure alarm reliability.

Thanks @gdelataillade it was indeed a configuration issue.
I had set stopButton to null for iOS because the docstring for the param states:

Won't work on iOS if app was killed.

I guess I was deterred since I got worried about a UX where:

User kills app
Somehow the alarm rings
User hits stop button
Alarm doesn't stop, user gets worried, doesn't know what to do
They delete the app

But step (2) shouldn't happen right? So this UX flow is not likely?

Yes, I'm somewhat familiar with Swift and Kotlin. Can help pickup larger bugs that I find. To clarify, I was more so asking about the design pointers (such as guiding me to create a new class X, or update existing class Y to handle Z, etc.).

I think the way the app works now, by warning the user, is great.
If the user kills the app we also should not send a notification since the alarm won't ring.

Thanks for the pointers!

Regarding not sending an alarm notification when the app is killed, I thought it could at least serve as an indicator for the user, letting them know they received something and making them aware they missed the alarm. Showing nothing would be like nothing happened. But I understand your point of view, and I’ll think about it. By the way, I was considering an approach similar to the Alarmy app: when the app is killed, and the alarm time is reached, they send multiple notifications—one every 5 seconds or so—with sounds, simulating an alarm. It’s not a perfect solution because if the device is in Do Not Disturb or silent mode, the user may not notice.

I just released version 4.0.9 with the following features:

Added a new alarm parameter, volumeEnforced (some users requested this; if set to true, the alarm volume can’t be changed while it rings).
[iOS] Reopen the app if killed when the user taps the stop button in the notification (as mentioned earlier, this can be useful to give feedback to the user when they press stop and the app was killed).

I believe I can close this issue now. Don’t hesitate to reopen it or create a new one if necessary. Thanks for you help !


Build constraints in generated files

Requested feature The ability to specify build constraints to be added with //go:build <constraints> in the generated files.
Why the feature is needed Generated mocks are intended for testing but are regularly in non _test.go files to allow for cross-package imports. This risks the leakage of test-only code into production, which can easily be prevented with build constraints (example).
(Optional) Proposed solution #191

+1
I really need this. Thanks for the PR too, that's exactly what I need.

+1
We need it too


Connection refused

Expected Behaviour
Should be able to connect to Cassandra
Please read on. This is not a naive issue caused by networking problem.
I have a Cassandra 3.0.8 docker image running locally. I can connect to it from other tools. I can also connect to it from the code using just Datastax Cassandra driver. cassandra-migration should be able to connect to as well.

## Actual Behaviour
java.net.ConnectException: Connection refused: /<IP_ADDRESS>:9402
Please read on. This is not a naive issue caused by networking problem.
Please see the code below:
    @Override
    public void afterPropertiesSet() throws Exception {
        cluster = createCluster(servers);
        session = cluster.connect(keySpace);

        KeyspaceConfiguration keyspaceConfig = new KeyspaceConfiguration();
        keyspaceConfig.setName(keySpace);

        keyspaceConfig.getClusterConfig().setContactpoints(Arrays.stream(servers).map(s->StringUtils.split(s, ": ")[0]).toArray(String[]::new));
        keyspaceConfig.getClusterConfig().setPort(Arrays.stream(servers).map(addr-> {
            String[] addrAndPort = StringUtils.split(addr, ": ");
            return addrAndPort.length >= 2 ? Integer.valueOf(addrAndPort[1]) : null;
        }).filter(p->p != null).findAny().orElse(9402));

        CassandraMigration cm = new CassandraMigration();
        cm.setKeyspaceConfig(keyspaceConfig);
        cm.migrate();
    }

    private Cluster createCluster(String[] servers) {
        QueryOptions options = new QueryOptions()
                .setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM)
                .setSerialConsistencyLevel(ConsistencyLevel.LOCAL_SERIAL);

        Cluster.Builder builder = Cluster.builder()
                .withQueryOptions(options)
                .withClusterName(this.getClass().getName())
                .withTimestampGenerator(new AtomicMonotonicTimestampGenerator())
                //.withCompression(ProtocolOptions.Compression.LZ4)
                ;

        List<InetSocketAddress> contactPointsWithPorts = new ArrayList<>();
        for (String addr: servers){
            String[] addrAndPort = StringUtils.split(addr, ": ");
            if (addrAndPort.length == 1){
                builder.addContactPoint(addrAndPort[0]);
            }else if (addrAndPort.length >= 2){
                contactPointsWithPorts.add(InetSocketAddress.createUnresolved(addrAndPort[0], Integer.parseInt(addrAndPort[1])));
            }
        }
        builder.addContactPointsWithPorts(contactPointsWithPorts);

        builder.withLoadBalancingPolicy(new TokenAwarePolicy(
            DCAwareRoundRobinPolicy.builder().build()));

        Cluster cluster = builder.build();
        cluster.getConfiguration().getCodecRegistry()
                //.register(Codecs.scanCodecs())
                .register(InstantCodec.instance)
                .register(LocalDateCodec.instance);

        return cluster;
    }

While my own code (cluster = createCluster(servers); session = cluster.connect(keySpace);) can connect to Cassandra without any problem, cassandra-migration (cm.migrate();) fails.
Below is the log / error stack:
09:53:44.343 [main] INFO  c.b.c.m.internal.util.VersionPrinter - Cassandra Migration 0.9-SNAPSHOT
09:53:44.343 [main] DEBUG c.d.driver.core.SystemProperties - com.datastax.driver.USE_NATIVE_CLOCK is undefined, using default value true
09:53:44.343 [main] INFO  c.datastax.driver.core.ClockFactory - Using native clock to generate timestamps.
09:53:44.344 [main] DEBUG com.datastax.driver.core.Cluster - Starting new cluster with contact points [/<IP_ADDRESS>:9402]
09:53:44.347 [main] DEBUG com.datastax.driver.core.Host.STATES - [/<IP_ADDRESS>:9402] preparing to open 1 new connections, total = 1
09:53:44.349 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[/<IP_ADDRESS>:9402-1, inFlight=0, closed=false] Error connecting to /<IP_ADDRESS>:9402 (Connection refused: /<IP_ADDRESS>:9402)
09:53:44.350 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Host.STATES - Defuncting Connection[/<IP_ADDRESS>:9402-1, inFlight=0, closed=false] because: [/<IP_ADDRESS>:9402] Cannot connect
09:53:44.350 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Host.STATES - [/<IP_ADDRESS>:9402] preventing new connections for the next 1000 ms
09:53:44.351 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Host.STATES - [/<IP_ADDRESS>:9402] Connection[/<IP_ADDRESS>:9402-1, inFlight=0, closed=false] failed, remaining = 0
09:53:44.351 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[/<IP_ADDRESS>:9402-1, inFlight=0, closed=true] closing connection
09:53:44.354 [main] DEBUG c.d.driver.core.ControlConnection - [Control connection] error on /<IP_ADDRESS>:9402 connection, no more host to try
com.datastax.driver.core.exceptions.TransportException: [/<IP_ADDRESS>:9402] Cannot connect
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:158)
    at com.datastax.driver.core.Connection$1.operationComplete(Connection.java:141)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:518)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:511)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:490)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersWithStackOverFlowProtection(DefaultPromise.java:431)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
    at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:126)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:276)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:292)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:581)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:505)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:419)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:391)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: /<IP_ADDRESS>:9402
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:224)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:289)
    ... 6 common frames omitted
09:53:44.355 [main] DEBUG com.datastax.driver.core.Cluster - Shutting down

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /<IP_ADDRESS>:9402 (com.datastax.driver.core.exceptions.TransportException: [/<IP_ADDRESS>:9402] Cannot connect))

    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:233)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1454)
    at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:403)
    at com.builtamont.cassandra.migration.CassandraMigration.execute$cassandra_migration(CassandraMigration.kt:242)
    at com.builtamont.cassandra.migration.CassandraMigration.migrate(CassandraMigration.kt:122)
    at ****************.afterPropertiesSet(Database.java:64)
    at *************.DatabaseIntegrationTest.testMigration(DatabaseIntegrationTest.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:262)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

I tried the below but the problem is always the same:

Alter the execution order of my connection establishment code and cassandra-migration code
Remove my connection establishment code
In debug mode of the IDE, manually set a cluster name for cassandra-migration code
Change ['<IP_ADDRESS>'] to ['localhost']

Finally using this code solved the problem:
    @Override
    public void afterPropertiesSet() throws Exception {
        cluster = createCluster(servers);
        session = cluster.connect(keySpace);

        KeyspaceConfiguration keyspaceConfig = new KeyspaceConfiguration();
        keyspaceConfig.setName(keySpace);
        CassandraMigration cm = new CassandraMigration();
        cm.setKeyspaceConfig(keyspaceConfig);
        cm.migrate(session);
    }

## Steps to Reproduce
- Cassandra version 3.0.8 docker image running locally
- Datastax driver 3.1.0
- Use 'com.builtamont:cassandra-migration:0.9-SNAPSHOT'
- Use the Java code above

Hi @james-hu , is it possible to provide your Dockerfile as well?

It's just the official one, unmodified (dowloaded from https://hub.docker.com/_/cassandra/). This problem is actually very weird. I debugged into the code but couldn't see anything suspicious. Haven't tried with different versions though.

Thanks @james-hu . I'll see if I can reproduce this problem with Docker.

Hi @james-hu , sorry I've put this issue lower in the priority list for now. I'm focusing my effort to finish some tasks on integration tests to allow an RC1 release.

Hi @james-hu , I might need your help to bring up the Docker image so I can try to reproduce the problem.
Here's what I've done so far:

docker-machine create --driver virtualbox cassandra-migration
docker-machine env cassandra-migration
eval $(docker-machine env cassandra-migration)
docker run cassandra:3.0.8

At this stage, the Docker machine is running but I was unable to connect to it via DataStax DevCenter. Did I miss a step somewhere or do I need to perform additional configuration?

Hi! Thanks for getting back to this. I am not familiar with docker-machine. Last time I tried it was on a Mac with just docker. I already left that company so I lost that setup. Probably you can try using "-p 9402:9402"?

Thanks @james-hu, I'll give it a go.

@james-hu your stack trace shows you're connecting to port 9402.
The default C* client port is 9042 - this is probably why the default configuration is succeeding but it fails when you manually set the port (I'm assuming you haven't port-forwarded your docker container's port 9042 to 9402 but are passing it straight through to the host)

Hi @james-hu , are you still interested in this issue? Otherwise I'll close this within the next seven days.

I am sorry for the late reply. And thank you for looking into it. @jcam3ron I am sure it was not about the port mapping because I could connect to the cluster through other tools. @hhandoko No problem about closing it down.  I left that company and I am not using Cassandra in my current project.

Thanks @james-hu 👍

@james-hu Your initial block of code shows you explicitly configuring port 9402, but the code snipped you provide at the end of your description which you said solved the problem will use the default port (9042) to connect to Cassandra.
If that final block of code ran successfully then I think it is fairly likely that you were specifying the wrong port in your initial code.

@jcam3ron @hhandoko  Ah... Now I get the point. I think you are correct. According to the code and log I quoted in the initial report, I used port number 9402 rather than 9042 in the code. That must have been the reason!  They are always the most frustrating cos you just aren't expecting them :)


Update README.md

Adds one-liner command to ReadMe
Closes #6

Thanks. I think this is convenient for me when I setup new Windows PC.
This is a very helpful tool for me.
When I search this tool in github, this simple/workable repo grab my eyes.
Actually it has some potential improvement by my experience.
Such as, when I uninstall 'xbox' series apps, when I launch a game, it will automatically tips me you need to download xbox gaming. And it seems this tip cannot be closed. This is annoying.
Maybe there could be more simple/useful toolset could be added.
Thanks, you have done a great thing for me.

Thank you for your feedback !
Unfortunately the "Download Xbox app" Tip is out of scope for this tool. At the moment it removes all the applications listed from  Get-AppxPackage *xbox* (in powershell) when NonRemovable attribute is False (otherwise it cannot be removed).
There is always one application that cannot be removed : Microsoft.XboxGameCallableUI.
I am no expert of the xbox networking protocols, but here are some tips that could help you:

What you can do, maybe it works, go into Services, find the "Xbox ..." services > "Properties" > "Startup Type" > "Disabled"

If it still persists, you will have to do more digging. For instance you can probably disallow the Xbox protocol in the Windows Firewall.

Or find in the "Task Manager" > "Ressource monitor" > "Network" > "TCP Connections" or "Listenning port" which program/service listen on the Xbox protocol. Most likely it's a broadcasted packet...

If really you don't find the program/protocol, use Wireshark  to find out what's coming up when you switch on the xbox, just before you receive that notification.

That could help you : Network ports used by the Xbox network on...


MiniZinc network_flow_cost broken

$ cat /tmp/latest.mzn
include "globals.mzn";
constraint
  network_flow_cost(array2d(1..6,1..2,[0,1,0,2,1,0,1,2,2,0,2,1]),
                    array1d(0..2,[1,1,-2]),
                    [2,1,1,0,0,1],
                    [0,2,0,2,1,1],
                    3);
solve satisfy;

$ minizinc --solver cpsatlp /tmp/latest.mzn
%% File /tmp/mznfileRQhYGw.fzn parsed in 0 ms
%% Presolve model
%%   - done in 0 ms
%% Model mznfileRQhYGw
%%   - ortools_network_flow_cost: 1
%%   - Satisfaction problem
=====ERROR=====

The solver segfaults. Version 9.8.3296, according to the cpsat.msc that comes bundled with MiniZinc 2.8.2.

can you attach the fzn file ?

I see, fully ground model.

$ cat /tmp/latest.fzn
predicate ortools_network_flow_cost(array [int] of int: arc,array [int] of int: balance,array [int] of int: weight,array [int] of var int: flow,var int: cost);
array [1..6] of int: X_INTRODUCED_17_ = [0,2,0,2,1,1];
array [1..6] of int: X_INTRODUCED_18_ = [2,1,1,0,0,1];
array [1..3] of int: X_INTRODUCED_20_ = [1,1,-2];
array [1..12] of int: X_INTRODUCED_21_ = [0,1,0,2,1,0,1,2,2,0,2,1];
constraint ortools_network_flow_cost(X_INTRODUCED_21_,X_INTRODUCED_20_,X_INTRODUCED_18_,X_INTRODUCED_17_,3);
solve  satisfy;

So, nodes were 1 based in the old spec. Now I need it to support 0 based and 1 based.

And fixed. Thanks

Thanks Mats

I have an issue with your model.
The balance array is indexed by 1..3
but your nodes are valued from 0 to 2.
IMO, the model is invalid.

No, Laurent. The given constraint was:
constraint
  network_flow_cost(array2d(1..6,1..2,[0,1,0,2,1,0,1,2,2,0,2,1]),
                    array1d(0..2,[1,1,-2]),
                    [2,1,1,0,0,1],
                    [0,2,0,2,1,1],
                    3);

with balance array indexed by 0..2.  Since the index sets disappear in the FlatZinc, you need to pass a node base parameter to ortools_network_flow_cost, like for circuit.

Interesting. Let me fix this.
Many thanks
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le jeu. 25 janv. 2024 à 12:11, Mats Carlsson @.***> a
écrit :

No, Laurent. The given constraint was:
constraint
network_flow_cost(array2d(1..6,1..2,[0,1,0,2,1,0,1,2,2,0,2,1]),
array1d(0..2,[1,1,-2]),
[2,1,1,0,0,1],
[0,2,0,2,1,1],
3);
with balance array indexed by 0..2. Since the index sets disappear in the
FlatZinc, you need to pass a node base parameter to
ortools_network_flow_cost, like for circuit.
—
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/4067#issuecomment-1909939935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3MKSLQOKBAJVS6UR3LYQI4XVAVCNFSM6AAAAABCI5TJU2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBZHEZTSOJTGU
.
You are receiving this because you were assigned.Message ID:
@.***>

Ok, I changed the solver specific rewrite rules and the code.
Thanks again


The mathematical formulas in KaTeX format cannot be displayed properly.

The mathematical formulas in KaTeX format cannot be displayed properly.


fix(datepicker): make date parsing work again

Fixes #881
Proposed Changes

Accept plain dates in onChange, not just date-range pairs

Note that parsing of date ranges is still broken; it collapses them to a single date.
That seems like a separate bug, though.

@blm768 I appreciate that you are adding tests related to the bug! :)

@blm768 I appreciate that you are adding tests related to the bug! :)

You're welcome. It was a good chance for me to learn how to use @vue/test-utils; I need to start using that with my own Vue projects.


Add conversion from image to number

TODO list:

[ ] linting, waiting on https://github.com/jfmengels/elm-lint/pull/3
[x] add UI for configuring conversion from image to number
[ ] proper tests for new stuff
[ ] js port to convert image to number (maybe seperate PR)
[x] js port to resize image number text to fit in box.
[x] hack around elms lack of support for custom properties (see https://github.com/elm/html/issues/129)

I am gonna merge without doing everything because at the momement https://harrysarson.github.io/primeimage/ looks rubbish.


macOS Sierra brew install error

macOS Sierra brew install :
brew install mitmproxy
error:
==> Installing mitmproxy
==> Downloading https://mitmproxy.org/download/mitmproxy-0.14.0.tar.gz
curl: (22) The requested URL returned error: 403 Forbidden
Error: Failed to download resource "mitmproxy"
Download failed: https://mitmproxy.org/download/mitmproxy-0.14.0.tar.gz

Please update your brew and taps. mitmproxy 0.18.2 is the most recent version.
We recommend using the provided binaries on macOS: http://docs.mitmproxy.org/en/stable/install.html#installation-on-mac-os-x
We are not involved with the homebrew formula for mitmproxy.

@Kriechi As of now it's written as the primary install method for macOS so I don't understand where this recommendation comes from. Care to elaborate?

Which recommendation?
The way we create mitmproxy releases has changes significantly in the last months.

The recommendation to install it via the binaries instead of with homebrew.
I was looking to install the latest version 🚀  which isn't yet added to the homebrew-formula. I thought I might provide a PR to update that formula but the dependencies threw me off. I thought about creating an issue here asking for help with this at which point I read your comment about:

We are not involved with the homebrew formula for mitmproxy

Along with

We recommend using the provided binaries on macOS

... which lead me to be confused as to how to go about things.

Yes - as it says. We are not maintaining the homebrew formula, but the nice folks from the homebrew community usually have an update ready within a day or two of our release.
AFAIK the actual formula file is kinda auto-generated, so there is a tool in homebrew-land which takes care of extracting our dependencies and transforms that in a formula template (of some sort). For more details please ask somebody in the homebrew community.


Introduce scopelint

This pull request introduces scopelint, which prevents from a kind of common mistakes in Go. Also fixed one warning as suggested by the lint.

Thank you.


Add ConvNext2

This paper provides a lot of interesting ideas, but the authors repo has reliance on a fork of the minkowski library. Would be good to have it consolidated

@mileseverett convnext v2 is already here in convnext.py in a form that's useable for fine-tune but minus the MAE training part as that does require the minkowski library

Ah okay, I was mainly interested in the sparsity element. Hopefully eventually something similar can be merged into torch

According to my fine-tune implements on ConvNeXt-V2 (from TIMM and FacebookResearch) using my own datasets, my obtained results are quite poor. While ConvNeXt-V1 from TIMM works very well on the same datasets. @rwightman, do you test the architectures again? If yes, can you give us your hyper parameters recipes?
Linh

On Feb 22, 2023, at 4:27, mileseverett @.***> wrote:
Ah okay, I was mainly interested in the sparsity element. Hopefully eventually something similar can be merged into torch
—
Reply to this email directly, view it on GitHub https://github.com/huggingface/pytorch-image-models/issues/1684#issuecomment-1439114637, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFKZ27AI2UBOCVRNYDLRPT3WYUXNLANCNFSM6AAAAAAVC3UEG4.
You are receiving this because you are subscribed to this thread.

@linhduongtuan The validation numbers for v2 are as expected, the arch changes from v1 are minimal (just the extra norm layer in the MLP), it's most likely that the weights behave differently due to the pretrain process.
Were you using the in1k ft, in22k ft, or the original fcmae weights for your fine-tune?

Dear Ross,
V2 variants pay much computational expense compared with their V1. This payment seems not to be relevant to obtain  their overall accuracies.
However, we are still waiting for your reproducible results.
Best regards
Linh

On Feb 22, 2023, at 12:43, Ross Wightman @.***> wrote:
@linhduongtuan https://github.com/linhduongtuan The validation numbers for v2 are as expected, the arch changes from v1 are minimal (just the extra norm layer in the MLP), it's most likely that the weights behave differently due to the pretrain process.
Were you using the in1k ft, in22k ft, or the original fcmae weights for your fine-tune?
—
Reply to this email directly, view it on GitHub https://github.com/huggingface/pytorch-image-models/issues/1684#issuecomment-1439470674, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFKZ27BK3MITEBMGE7IJSQTWYWROZANCNFSM6AAAAAAVC3UEG4.
You are receiving this because you were mentioned.

@linhduongtuan v2 is too slow in eager (non-compiled) mode, so not planning to focus an effort on training the arch with other means, current convnext focus is on v1 arch w/ CLIP pretraining and fine-tuning those with in22k/12k and 1k


[Event]: San Mauro Brick Show 2022

Description
Event organized by Piemonte Bricks LUG

Location: Palazzetto dello Sport - Via Luigi Burgo, San Mauro Torinese (TO)
Dates:

Saturday, 2022-04-09 14:30-19:00 CEST
Sunday, 2022-04-10 10:00-18:30 CEST

Hashtag: #roadtosanmauropiuchemai

Official poster

Additional Information
The event was initially scheduled for 2022-02-19 and 2022-02-20 but was then posponed due to COVID-19 restrictions.

We decided that the B-AROL-O team will participate to the event and will showcase the ARNEIS project.
@gmacario will follow-up with the event organizers and submit the requested paperwork ASAP.

Hello,
Due to personal reasons I will not be able to attend our booth on Sunday, 2022-04-10 around lunch time.
Is there anyone from our friends and supporters who can help @gteti in attending the booth?
As a reward I promise that the B-AROL-O team may offer him/her the lunch.
Please comment if interested.

I was also invited to launch on Sunday 2022-04-10 but ok, I'll be in the booth. No need to ask to other people.

Thanks @gteti but I would try to find at least another person who will stay with you, I have been showcasing at trade shows many times and I know it could be tiresome to be alone when there is a lot of crowd.
Let us keep the issue open, we shall close it on Sunday when the event is over

As agreed yesterday when celebrating @mmaruf graduation:

@gteti and @gmacario will setup ARNEIS stand and will attend all Saturday. We will also have lunch and dinner (paid by @B-AROL-O/arneis-core) together with the other exhibitors
On Sunday morning (opening 10:00) @gteti will be alone until @pitdagosti arrives. They will have lunch (paid by @B-AROL-O/arneis-core together with the other exhibitors)
@gmacario will arrive on Sunday afternoon, will attend the booth until closure (18:30) then will pack all the stuff and return back home.

All the people, friends and families who happen to drop by are kindly invited to takes photos, videos, tweet, make blog posts, etc and share them on social media with the following tags: #ARNEIS #OAKDLiteContest #roadtosanmauropiuchemai

As agreed yesterday when celebrating @MarcoMaru graduation party:
* @gteti and @gmacario will setup ARNEIS stand and will attend all Saturday. We will also have lunch and dinner (paid by @B-AROL-O/arneis-core) together with the other exhibitors

* On Sunday morning (opening 10:00) @gteti will be alone until @pitdagosti arrives. They will have lunch (paid by @B-AROL-O/arneis-core together with the other exhibitors)

* @gmacario will arrive on Sunday afternoon, will attend the booth until closure (18:30) then will pack all the stuff and return back home.

IMPORTANT: All the people, friends and families who happen to drop by are kindly invited to take photos, videos, tweet, make posts on Facebook, LinkedIn, Instagram, etc and share them on social media with the following tags: #ARNEIS #OAKDLiteContest #roadtosanmauropiuchemai

You said you will arrive at 14:00.

The event took place and was a success!


[SPARK-50229] Reduce memory usage on driver for wide schemas by reducing the lifetime of AttributeReference objects created during logical planning

What changes were proposed in this pull request?
This PR changes the allAttributes in QueryPlan to be a def instead of a lazy val to avoid holding on to a copy of AttributeReferences in the QueryPlan object. This change should not result in a performance penalty as allAttributes is used only once during canonicalization in doCanonicalize (which only happens once since it itself is a lazy val).
Context
The allAttributes method in QueryPlan (code) unions the output of all of its children. Although this is okay in an optimized plan, in a pre-optimized analyzed plan, these attributes add up multiplicatively with the size of the plan. Because output is usually defined as a def, each node’s allAttributes also ends up with a distinct copy of each attribute, potentially causing significant memory pressure on the driver (especially under concurrency and with wide tables).
Here is a simple example with TPC-DS Q42. SQL:
  select dt.d_year, item.i_category_id, item.i_category, sum(ss_ext_sales_price)
 from 	date_dim dt, store_sales, item
 where dt.d_date_sk = store_sales.ss_sold_date_sk
 	and store_sales.ss_item_sk = item.i_item_sk
 	and item.i_manager_id = 1
 	and dt.d_moy=11
 	and dt.d_year=2000
 group by 	dt.d_year
 		,item.i_category_id
 		,item.i_category
 order by       sum(ss_ext_sales_price) desc,dt.d_year
 		,item.i_category_id
 		,item.i_category
 limit 100

If we print out the size of each operator’s output and the size of its allAttributes:
GlobalLimit: allAttrs: 4, output: 4
  LocalLimit: allAttrs: 4, output: 4
    Sort: allAttrs: 4, output: 4
      Aggregate: allAttrs: 73, output: 4
        Filter: allAttrs: 73, output: 73
          Join: allAttrs: 73, output: 73
            Join: allAttrs: 51, output: 51
              SubqueryAlias: allAttrs: 28, output: 28
                SubqueryAlias: allAttrs: 28, output: 28
                  LogicalRelation: allAttrs: 0, output: 28
              SubqueryAlias: allAttrs: 23, output: 23
                LogicalRelation: allAttrs: 0, output: 23
            SubqueryAlias: allAttrs: 22, output: 22
              LogicalRelation: allAttrs: 0, output: 22

Note how the joins and aggregate have 73 attributes each, by adding the width of each relation. For prod queries with wide schemas, this issue is much worse. Optimized plans after column pruning look far better:
Aggregate: allAttrs: 0, output: 1
  Project: allAttrs: 2, output: 0
    Join: allAttrs: 2, output: 2
      Project: allAttrs: 3, output: 1
        Join: allAttrs: 3, output: 3
          Project: allAttrs: 4, output: 2
            Join: allAttrs: 4, output: 4
              Project: allAttrs: 5, output: 3
                Join: allAttrs: 5, output: 5
                  Project: allAttrs: 23, output: 4
                    Filter: allAttrs: 23, output: 23
                      LogicalRelation: allAttrs: 0, output: 23
                  Project: allAttrs: 29, output: 1
                    Filter: allAttrs: 29, output: 29
                      LogicalRelation: allAttrs: 0, output: 29
              Project: allAttrs: 13, output: 1
                Filter: allAttrs: 13, output: 13
                  LogicalRelation: allAttrs: 0, output: 13
          Project: allAttrs: 22, output: 1
            Filter: allAttrs: 22, output: 22
              LogicalRelation: allAttrs: 0, output: 22
      Project: allAttrs: 18, output: 1
        Filter: allAttrs: 18, output: 18
          LogicalRelation: allAttrs: 0, output: 18

Why are the changes needed?

Reduce driver's heap usage.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing tests
Was this patch authored or co-authored using generative AI tooling?

No

thanks, merging to master!


Added Web IDE for Github

🛠 Fixes Issue
Fixes #353
👨💻 Changes proposed
This extension adds to any GitHub repository a new drop down menu which offers links to a number of online services that allow viewing the source code of the repository in an IDE like interface.
✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

Requesting for adding Level 3 for this.

📷 Screenshots

@ridsuteri Please review

@Akshima-Ghai Please review this. Since this adds utility to all Github repositories, Request for Level 3

Umm @hariketsheth One can easily open this editor by pressing '.' on any repository...
Do you think there is need of this heavy extension in such cases?

Umm @hariketsheth One can easily open this editor by pressing '.' on any repository... Do you think there is need of this heavy extension in such cases?

Just for Github Dev you can press '.' and do that
But according to this image attached here, you have quite more options available that are implemented as well

cool


Wiki addition to configure Tuya plugs.

I wanted to commit a change to the wiki to add the curl command for tuya smartplugs but found out I don't have the required permissions. :P
Here's what I wanted to add.
* [Tuya Smartplug](https://plugins.octoprint.org/plugins/tuyasmartplug/) plugin
\```
curl -s -H "Content-Type: application/json" -H "X-Api-Key: <API_KEY>" -X POST -d '{ "command":"turnOn", "label": "<Plug's Label>" }' http://localhost/api/plugin/tuyasmartplug
\```

Please remove the backlash if you add it yourself.

Thanks, GitHub's implementation of wiki is not great, I've never figure out a way to allow edits from external people. I've added it to the wiki.


Auto-reload generated CSS

Hi,
When Auto-reload generated CSS is activated in chrome dev tools, ruby no compile file css.

sass --watch --scss sass/style.scss:css/style.css

Sass is watching for changes. Press Ctrl-C to stop.

Change detected to: sass/style.scss
Change detected to: sass/style.scss
Change detected to: sass/style.scss
Change detected to: sass/style.scss
Change detected to: sass/style.scss
Change detected to: sass/style.scss

When Auto-reload generated CSS is not activated, ruby compile file css, but reload css don't work.

Sass is watching for changes. Press Ctrl-C to stop.
 This versions, has been working perfectly until the day 10/12/15.
This issue broken my workflow completely...
Regards

cc @pbakaus

This seems to be in issue with DevTools itself, not the documentation. Please file your bug report at https://crbug.com/new instead. Thanks!


[Upstream backend] [Pytorch UT]:  TypeError: function takes exactly 6 arguments (34 given)

Problem Description
This change https://github.com/openai/triton/commit/a0de891779975492a63f307f315b3063af2238f0 causes mass breakages with inductor+triton. It looks like the pack_metadata truncates the metadata tuple but the launch is expecting the full metadata.
Docker image:
rocm/pytorch-private:tritoninductor-debug-args-issue
Pytorch branch:
https://github.com/pytorch/pytorch/tree/rocm-inductor-hip-device
Triton branch: upstream
Traceback:
  File "rep.py", line 181, in call
    triton_red_fused__to_copy_abs_add_mul_remainder_xor_sum_0.run(buf0, arg1_1, buf1, s0, 0, 1, 432, triton_red_fused__to_copy_abs_add_mul_remainder_xor_sum_0_rnumel, grid=grid(432), stream=stream0)
  File "/tmp/pytorch/torch/_inductor/triton_heuristics.py", line 743, in run
    return launcher(
  File "<string>", line 13, in launcher
  File "/root/triton/python/triton/backends/amd/driver.py", line 417, in __call__
    self.launch(*args, **kwargs)
TypeError: function takes exactly 6 arguments (34 given)

Reproducer: TORCHINDUCTOR_COMPILE_THREADS=1 python ~/rep.py or TORCHINDUCTOR_COMPILE_THREADS=1 TORCHDYNAMO_REPRO_AFTER=aot PYTORCH_TEST_WITH_ROCM=1 python test_torchinductor.py -k "test_AllenaiLongformerBase_repro_cuda" --verbose
Operating System

CPU

GPU
AMD Instinct MI250X
ROCm Version
ROCm 6.0.0
ROCm Component
No response
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

https://github.com/pytorch/pytorch/commit/99059affb97a4d69c2c6b82e274f2fefb7ab765b


Update docs to capture Events changes

Need to update the readme to account for changes as a result of #52.

Done in 0.2


Use upstream libc ptrace FFI

This might fail on Mac because of how libc defines ptrace on that platform, but we'll see!

We don't expose this on mac, which is good because that API is considerably different. So this should be good to merge.

@marmistrz Wanna give this a quick look-over since it pertains to the ptrace work you've been doing?

@marmistrz Thanks for the review. This should clean things up a bit nicely.

bors r+ marmistrz

bors r+ marmistrz


[DATA-804] add reduce sort to select, split out multi-select

Functionalities included in this PR:

added dosearch prop, if false, then sort will not be done within component
added reducesort prop, if true, will only show matching results instead of priority listing
split up v-select to a separate v-multiselect which has functionalities that only apply to multi select. The select component will be refactored in the future to only have single select features
add heading prop, if has value, then will show a heading within the dropdown

heading preview:

+1 to steven's suggestion, we should probably remove all multiselect capabilities from the current <v-select> element. If we want to do that now it's completely fine since we'd want to replace all current usage of <v-select multiple> with <multiselect> asap anyway.

After reading through your new features, I think we should consolidate the reducesort"and dosearch attribs into one "sort" attrib, like this:
type SortOptions = 'default' | 'reduce' | 'off'

<v-multiselect
  sort="option as SortOptions"
/>

This moves the behavior to act more like a state machine. The multiselect can either be in default sort mode, reduce sort mode, or no sort mode. This both makes the API and likely our design a little cleaner.


fix(helm): redis url

Thank you for contributing to the Cohere Toolkit!

[ ] PR title: "area: description"

Where "area" is whichever of interface, frontend, model, tools, backend, etc. is being modified. Use "docs: ..."  for CI changes.
Example: "deployment: add Azure model option"

[ ] PR message: Delete this entire checklist and replace with

Description: a description of the change
Issue: the issue # it fixes, if applicable
Dependencies: any dependencies required for this change

[ ] Add tests and docs: Please include testing and documentation for your changes

[ ] Lint and test: Run make lint and make run-tests

AI Description

This pull request makes changes to the charts/cohere-toolkit/templates/_helpers.tpl file.
Summary
The pull request updates the printf function in the _helpers.tpl file to adjust the format of the Redis URL.
Changes

Removes : after redis in the printf function, resulting in a change from redis://: to redis://.

#623  👈
main

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

Join @miguelvr and the rest of your teammates on  Graphite

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.80%. Comparing base (4edacee) to head (6d8a592).
Report is 112 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #623      +/-   ##
==========================================
+ Coverage   81.38%   83.80%   +2.41%
==========================================
  Files         199      238      +39
  Lines        8354    10762    +2408
==========================================
+ Hits         6799     9019    +2220
- Misses       1555     1743     +188

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Merge activity

Aug 9, 9:51 AM EDT: @miguelvr started a stack merge that includes this pull request via Graphite.


add LY bban structure

https://bank-code.net/iban/country-list

LY is not part of the >>List of Countries using the IBAN standard<<.
Will issue. If I am wrong, please reopen and add more informations where to find the structure definition.


Fix one more grpc wrong direction bug

This PR fixes two more edge case with processing gRPC requests in eBPF:

The gRPC response can be split. The responding service can send one response back and then follow-up with a close frame. In some rare instances we can interpret the second response as a new gRPC start. I added a check that a start cannot be an end at the same time.
In a previous PR I detected that gRPC requests can be split, but when I detected the wrong situation I didn't clean-up the wrong grpc info, so subsequent request may continue from it. This PR adds the delete.

I also fixed the issue reported in https://github.com/grafana/beyla/issues/920.
Closes https://github.com/grafana/beyla/issues/920

Thanks @marctc !


FIX: internal qrcode scanning check should always check for lowercase

fixup

Codecov Report

Merging #1713 (5e7c259) into main (587b763) will decrease coverage by 0.22%.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main    #1713      +/-   ##
==========================================
- Coverage   49.06%   48.85%   -0.22%
==========================================
  Files          47       47
  Lines        7091     7091
==========================================
- Hits         3479     3464      -15
- Misses       3612     3627      +15

Impacted Files
Coverage Δ

lnbits/core/services.py
39.34% <ø> (ø)

... and 2 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


feat: remove secret watch privilege dependency

Giving Secret watch privilege is kind of sensitive to some users, this PR remove the secret watch dependency from the controller.

Remain unchanged.
This is only for the auto generated secrets for Isb Serviy.

what is our strategy now for managing secrets?


Needs commitlint

This repository doesn't have commitlint and it would be nice to have it.

Hi @schmidt-manuel! I am sorry that we didn't managed to review your request. This repository will be deprecated soon ( https://github.com/onebeyond/systemic-rabbitmq/pull/12), let us know if you still depending on it.


drivers/azure: add AzureGermanCloud support

Fixes #3815.
cc: @nathanleclaire PTAL.

LGTM (don't worry about build failure, i think it's related to some wonky deps merge and I'll fix it eventually)


chore: Fix documentation for ClusterStatus.CurrentVersion

The documentation when giving examples of valid configs specifies the ClusterStatus.CurrentVersion as currentVersion when in reality is exposed as just version as defined here in the code.
This updates the documentation for it to reduce confusion.

I have read the CLA Document and I hereby sign the CLA

recheck


dummy change; please DO NOT MERGE

This is just a dummy PR to see how the CoC and other files from the common bids-standard/.github repo are affecting the PR workflow.
Please do not merge.

So the organization-wide CoC appears below. :arrow_down:

I don't see it?
Maybe we're seeing different views of the GitHub PR web page, due to user preferences or A/B testing, or something? Or am I just not looking in the right place?

Nevermind; I see the link now at the bottom of the page, now that @Remi-Gau pointed it out.


non-json payloads on error responses are handled

https://github.com/dehora/nakadi-java/issues/357

In general, this seems like an easy fix for the problem. Thanks for digging into it.

@dehora can we have that merged?


Improve README.md

Drastic improvements/fixes to the modpage description!
Includes:

Grammar/spelling fixes
New Badges and Images for the modpage
Reorganization of features tab from A-Z

I'd also parity this on Modrinth/CF/PMC. Keep it standardized to make a more uniform layout.

Thanks for the improvements!


Edit phrases list scrolls vertically

STR:

Go to settings
Categories and phrases
General
Edit Phrases

Expected:
The phrases are shown such that they scroll horizontally
Observed:
The page of phrases is so long that it scrolls vertically

This does require a pretty small phone; e.g. a Pixel 3 is tall enough for the current implementation

This also crops up on the main screen in landscape, if the device is small enough (e.g. "Small Device" emulator). It seems to be any screen that uses VocableFragmentStateAdapter, though it may be muddled with the individual implementations of that class as well.


Adaptive Skill Dialog in the SDK (JS)

See parent

This seems very tightly coupled with #1970. Seems like they might be dupes of each other.

This is really just a place holder issue at this point. The core adaptive changes have been merged into Master but china is still working on parity issues. Should we close it?

@cleemullins this is the caller side of skills. the other issue is for the receive side of things.

@stevenic is this closed by 2177?

I'll chase this down today with @stevenic.

This work is completed


feat(API): Add 'update_translation_keys' for Uploads [TSI-2292]

Documents the newly introduced option update_translation_keys for POST#Upload.
Related Issues:

https://phrase.atlassian.net/browse/TSI-2292
https://phrase.atlassian.net/browse/TSI-2270

@hahmed-dev How does this new parameter differ from update_translations? 🤔
📖 It doesn't seem to be mentioned yet in the CLI docs or sample configuration file.


Include current CLI version in generated docs page

Description
Add version to CLI reference page:

Not really sure this is the best way to do it, so review is appreciated :)
Linked issues
Closes #146

Just realized that this will look strange with our current version format 0.2.0-93739be

Just realized that this will look strange with our current version format 0.2.0-93739be

As it lives in the package.json maybe we can just show it in the sidebar, in a smaller, less "eye catching" way? just throwing ideas...

I agree, I was not expecting it on the header. Somewhere on the sidebar makes sense.

We can put it wherever we like, I just don't see a good spot in the sidebar (unless we want to do a dropdown + previous versions, but that seems like a v1.0 problem).

Can you drop it at the bottom of the file? It's something we might want to check for consistency but we're not doing a fancy drop-dow-to-view-old-versions thing.