-
Notifications
You must be signed in to change notification settings - Fork 24
fix(agent): improve productinfo.json parsing with lenient error handling #1595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot Please, make struct ParseProductInfoResult {
db: ProductInfoDb,
errors: Vec<ProductInfoError>,
}
fn parse_product_info(s: &str) -> ParseProductInfoResult {
/* implementation */
}Accumulate all the errors in the Later on, lookup for the required file for the right product and architecture. At this point, if you are unable to find it, log all the Also, here is the current productinfo.json: {
"RDMWindows": {
"Current": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.exe",
"Hash": "67F5281A8EBC1662E61C216F5887115A8B68F56C46FEE58A32E24D0CE82EB1B2"
},
{
"Arch": "Any",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.msi",
"Hash": "99E0A49F6CFFE5C0B489D9B969945BDAA690E61E27D3EEA47A83741C98D1096E"
},
{
"Arch": "arm64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.exe",
"Hash": "2D73BD97C98F91850566E2DF50759761CD68B49B074A4A60C3D284D42146A756"
},
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.exe",
"Hash": "FB658B08D20CCC84918D820F4C046C26A2EBAA477589CFED4FBA2CE358ADA21D"
},
{
"Arch": "arm64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.msi",
"Hash": "57457A8C65AC6CF430458FAAE2466602CE1E5B355382F94F0BCB63FE6228DE0E"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.msi",
"Hash": "CEEACCA110DD6CE710F2A1358395A8D44C6180BF5F13A53A0B51C3830C530112"
},
{
"Arch": "Any",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.Bin.2025.3.25.0.zip",
"Hash": "7559BF493220C0A2654ECE8750AB090BB71CC22B094800D24A3E91C7B79C762D"
},
{
"Arch": "arm64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-arm64.2025.3.25.0.7z",
"Hash": "7D6D5EABA082E4243BE61AE41878EE26524AB66D97FE905B41F0F014E692A245"
},
{
"Arch": "x64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-x64.2025.3.25.0.7z",
"Hash": "4BF77A1A0E41082BDFA07B75136085E833306EDC9A6BAC28082A028AA6729BCB"
}
]
},
"Beta": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.exe",
"Hash": "67F5281A8EBC1662E61C216F5887115A8B68F56C46FEE58A32E24D0CE82EB1B2"
},
{
"Arch": "Any",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.msi",
"Hash": "99E0A49F6CFFE5C0B489D9B969945BDAA690E61E27D3EEA47A83741C98D1096E"
},
{
"Arch": "arm64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.exe",
"Hash": "2D73BD97C98F91850566E2DF50759761CD68B49B074A4A60C3D284D42146A756"
},
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.exe",
"Hash": "FB658B08D20CCC84918D820F4C046C26A2EBAA477589CFED4FBA2CE358ADA21D"
},
{
"Arch": "arm64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.msi",
"Hash": "57457A8C65AC6CF430458FAAE2466602CE1E5B355382F94F0BCB63FE6228DE0E"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.msi",
"Hash": "CEEACCA110DD6CE710F2A1358395A8D44C6180BF5F13A53A0B51C3830C530112"
},
{
"Arch": "Any",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.Bin.2025.3.25.0.zip",
"Hash": "7559BF493220C0A2654ECE8750AB090BB71CC22B094800D24A3E91C7B79C762D"
},
{
"Arch": "arm64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-arm64.2025.3.25.0.7z",
"Hash": "7D6D5EABA082E4243BE61AE41878EE26524AB66D97FE905B41F0F014E692A245"
},
{
"Arch": "x64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-x64.2025.3.25.0.7z",
"Hash": "4BF77A1A0E41082BDFA07B75136085E833306EDC9A6BAC28082A028AA6729BCB"
}
]
},
"Update": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.exe",
"Hash": "67F5281A8EBC1662E61C216F5887115A8B68F56C46FEE58A32E24D0CE82EB1B2"
},
{
"Arch": "Any",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.2025.3.25.0.msi",
"Hash": "99E0A49F6CFFE5C0B489D9B969945BDAA690E61E27D3EEA47A83741C98D1096E"
},
{
"Arch": "arm64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.exe",
"Hash": "2D73BD97C98F91850566E2DF50759761CD68B49B074A4A60C3D284D42146A756"
},
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.exe",
"Hash": "FB658B08D20CCC84918D820F4C046C26A2EBAA477589CFED4FBA2CE358ADA21D"
},
{
"Arch": "arm64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-arm64.2025.3.25.0.msi",
"Hash": "57457A8C65AC6CF430458FAAE2466602CE1E5B355382F94F0BCB63FE6228DE0E"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2025.3.25.0.msi",
"Hash": "CEEACCA110DD6CE710F2A1358395A8D44C6180BF5F13A53A0B51C3830C530112"
},
{
"Arch": "arm64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-arm64.2025.3.25.0.7z",
"Hash": "7D6D5EABA082E4243BE61AE41878EE26524AB66D97FE905B41F0F014E692A245"
},
{
"Arch": "x64",
"Type": "7z",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManager.win-x64.2025.3.25.0.7z",
"Hash": "4BF77A1A0E41082BDFA07B75136085E833306EDC9A6BAC28082A028AA6729BCB"
}
]
}
},
"RDMMac": {
"Current": {
"Version": "2025.3.7.3",
"Date": "2025-11-20",
"Files": [
{
"Arch": "universal",
"Type": "dmg",
"Url": "https://cdn.devolutions.net/download/Mac/Devolutions.RemoteDesktopManager.Mac.2025.3.7.3.dmg",
"Hash": "A27B4E2DBEAEE032590017B4EA90DAA7D176D408B66D845AB56D018CCD91C9B9"
}
]
},
"Beta": {
"Version": "2025.3.7.3",
"Date": "2025-11-20",
"Files": [
{
"Arch": "universal",
"Type": "dmg",
"Url": "https://cdn.devolutions.net/download/Mac/Devolutions.RemoteDesktopManager.Mac.2025.3.7.3.dmg",
"Hash": "A27B4E2DBEAEE032590017B4EA90DAA7D176D408B66D845AB56D018CCD91C9B9"
}
]
}
},
"RDMLinux": {
"Current": {
"Version": "2025.3.0.9",
"Date": "2025-11-07",
"Files": [
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/Linux/RDM/2025.3.0.9/RemoteDesktopManager_2025.3.0.9_amd64.deb",
"Hash": "24E87202623EAB288DB74FB8B68518226205F098A93F13A674BBD3D2436BDBF0"
},
{
"Arch": "x64",
"Type": "rpm",
"Url": "https://cdn.devolutions.net/download/Linux/RDM/2025.3.0.9/RemoteDesktopManager_2025.3.0.9_x86_64.rpm",
"Hash": "8B1266056BEBD3CCAAF13384294F31C29263F0CA5EC8BE07127E81375DE80145"
},
{
"Arch": "arm64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/Linux/RDM/2025.3.0.9/RemoteDesktopManager_2025.3.0.9_arm64.deb",
"Hash": "D90730E109D35F4640DBA407630A2FEEB7A12572E6D411D0A117B0CBCF21C154"
},
{
"Arch": "arm64",
"Type": "rpm",
"Url": "https://cdn.devolutions.net/download/Linux/RDM/2025.3.0.9/RemoteDesktopManager_2025.3.0.9_aarch64.rpm",
"Hash": "9070B573D07DFA70BE4A7966154DDE401131992F7A00D5FFEF8365E40263AE74"
}
]
}
},
"RDMAgent": {
"Current": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManagerJump.2025.3.25.0.exe",
"Hash": "E4344CC79C2501937E6670E1B5505242F6FA7F0AB1F09889B208D6E38A3FC29B"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManagerJump.2025.3.25.0.msi",
"Hash": "A1C6A9D793C72AFDC6F9C41D1D10073846E060237415030F164A444103D9A479"
},
{
"Arch": "x64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManagerJump.Bin.2025.3.25.0.zip",
"Hash": "0668DB3B77201DB4F7DE5DB0B80231DB87AF1727EAAF1EA9293ED5C5B70F9B26"
}
]
},
"Beta": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManagerJump.2025.3.25.0.exe",
"Hash": "E4344CC79C2501937E6670E1B5505242F6FA7F0AB1F09889B208D6E38A3FC29B"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManagerJump.2025.3.25.0.msi",
"Hash": "A1C6A9D793C72AFDC6F9C41D1D10073846E060237415030F164A444103D9A479"
},
{
"Arch": "x64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.RemoteDesktopManagerJump.Bin.2025.3.25.0.zip",
"Hash": "0668DB3B77201DB4F7DE5DB0B80231DB87AF1727EAAF1EA9293ED5C5B70F9B26"
}
]
}
},
"Agent": {
"Current": {
"Version": "2025.3.2.0",
"Date": "2025-10-10",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/DevolutionsAgent-x86_64-2025.3.2.0.msi",
"Hash": "385388F42F097354EB6ED2F5201AF541B7C5E6B2D72AD9FA1DED87799FA1976F"
},
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/devolutions-agent_2025.3.2.0_amd64.deb",
"Hash": "17F740D50FAFCB092F83C3885F4973F60C1BF7A9F441CA652F01B83698813304"
}
]
},
"Beta": {
"Version": "2025.3.2.0",
"Date": "2025-10-10",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/DevolutionsAgent-x86_64-2025.3.2.0.msi",
"Hash": "385388F42F097354EB6ED2F5201AF541B7C5E6B2D72AD9FA1DED87799FA1976F"
},
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/devolutions-agent_2025.3.2.0_amd64.deb",
"Hash": "17F740D50FAFCB092F83C3885F4973F60C1BF7A9F441CA652F01B83698813304"
}
]
}
},
"PowerShell": {
"Current": {
"Version": "2025.3.2.0",
"Date": "2025-11-21",
"Files": [
{
"Arch": "Any",
"Type": "nupkg",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShell.2025.3.2.0.nupkg",
"Hash": "F5E5F6802BFF11E86509DA888274320F3F833DC156ADA387A4789EDF58809E48"
}
]
}
},
"PowerShellUniversal": {
"Current": {
"Version": "2025.3.11.0",
"Date": "2025-11-26",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.2025.3.11.0.msi",
"Hash": "1EAB19631899B847F0AD67053652FD60BC011B5EB9131BC3CBFF858ACAD64951"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.Agent.2025.3.11.0.msi",
"Hash": "0BDA321245BBC5898D302887BC38F10A2E07B60CF169F1BB3D28276F354485F1"
},
{
"Arch": "x64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.win-x64.2025.3.11.0.zip",
"Hash": "F0847706C706C0C7412F428D05F56C09CAFF8359AA6E6CF335FEB0353982D881"
},
{
"Arch": "arm64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.win-arm64.2025.3.11.0.zip",
"Hash": "90F3703791E1D584CC86AE68B5B58D40F4F52EC56FA1D29463EE7CFE139F5A60"
},
{
"Arch": "x64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.linux-x64.2025.3.11.0.zip",
"Hash": "78476D7B8D8E27FBEACC98FA1F917470328F93ABBD57C73242FF3210C9C2043D"
},
{
"Arch": "arm",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.linux-arm.2025.3.11.0.zip",
"Hash": "4030A221542D329B016CF9F5EDE9F3F588FFBB495702FE8C25E0DA45F1CB2291"
},
{
"Arch": "arm64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.linux-arm64.2025.3.11.0.zip",
"Hash": "CBB39FC8DFEF3A2804CBDC6B2692A32B3756D6755744DDC65C30F9E70E7D56AC"
},
{
"Arch": "x64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.osx-x64.2025.3.11.0.zip",
"Hash": "21E87585F2A2F60FF39CF3A99D761FFB4F52C83C4506BCDABD222AA501F90F50"
},
{
"Arch": "arm64",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/Devolutions.PowerShellUniversal.osx-arm64.2025.3.11.0.zip",
"Hash": "A7472CA3D40CF3A7EEB2D49A18F14F1F28EA7ACAF7F614E160D9DE0C9FB49E60"
}
]
}
},
"DVLS": {
"Current": {
"Version": "2025.3.10.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.3.10.0.zip",
"Hash": "404E61A42C0D825D19CCD4ACC9DB0E9885170A442703FCA022FFF252B0DD9FC3"
},
{
"Arch": "x64",
"Type": "tar.gz",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.3.10.0.linux-x64.tar.gz",
"Hash": "DDB7C1590667E30D0D3F3D4D44BD3EB3D161BE711FFDE8F92333456E140B33E2"
}
]
},
"Stable": {
"Version": "2025.2.21.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.2.21.0.zip",
"Hash": "8E1235C1D13D715AC0108AE3C6C05819817C0C5D00255B2A132AE3B2C03C6D85"
},
{
"Arch": "x64",
"Type": "tar.gz",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.2.21.0.linux-x64.tar.gz",
"Hash": "680399A52CB956F60963ABDC87CA49589ED378C319BCB5287744F523091E03DB"
}
]
},
"Beta": {
"Version": "2025.3.10.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "Any",
"Type": "zip",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.3.10.0.zip",
"Hash": "404E61A42C0D825D19CCD4ACC9DB0E9885170A442703FCA022FFF252B0DD9FC3"
},
{
"Arch": "x64",
"Type": "tar.gz",
"Url": "https://cdn.devolutions.net/download/RDMS/DVLS.2025.3.10.0.linux-x64.tar.gz",
"Hash": "DDB7C1590667E30D0D3F3D4D44BD3EB3D161BE711FFDE8F92333456E140B33E2"
}
]
}
},
"Console": {
"Current": {
"Version": "2025.3.10.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.DVLS.Console.2025.3.10.0.exe",
"Hash": "2B32DA6EAD01B744C3023F79F2AF339945F2C973E1463597783E3491AB9616CD"
}
]
},
"Beta": {
"Version": "2025.3.10.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.DVLS.Console.2025.3.10.0.exe",
"Hash": "2B32DA6EAD01B744C3023F79F2AF339945F2C973E1463597783E3491AB9616CD"
}
]
}
},
"Gateway": {
"Current": {
"Version": "2025.3.2.0",
"Date": "2025-10-10",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/DevolutionsGateway-x86_64-2025.3.2.0.msi",
"Hash": "9670B9B7D8B4D145708EE5F7F1F7053111E620541D67CFA04CF711065C4C3B27"
},
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/devolutions-gateway_2025.3.2.0_amd64.deb",
"Hash": "4605C15D73BC7F31D62463EC189A5FC19B2F35475420BAB60B5612C94F49C9B6"
}
]
},
"Beta": {
"Version": "2025.3.2.0",
"Date": "2025-10-10",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/DevolutionsGateway-x86_64-2025.3.2.0.msi",
"Hash": "9670B9B7D8B4D145708EE5F7F1F7053111E620541D67CFA04CF711065C4C3B27"
},
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/devolutions-gateway_2025.3.2.0_amd64.deb",
"Hash": "4605C15D73BC7F31D62463EC189A5FC19B2F35475420BAB60B5612C94F49C9B6"
}
]
}
},
"Launcher": {
"Current": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.Devolutions.Launcher.2025.3.25.0.exe",
"Hash": "2921D5A0E3A11E4E2E5DD177EF502C664D469256793DF8C80D3F3B8F2543FCE3"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.Devolutions.Launcher.2025.3.25.0.msi",
"Hash": "1F5443543A1CA8FB2D27B4474E00824FAE1FBBD975C83FD5F91EA9D45B51062D"
}
]
},
"Beta": {
"Version": "2025.3.25.0",
"Date": "2025-11-27",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.Devolutions.Launcher.2025.3.25.0.exe",
"Hash": "2921D5A0E3A11E4E2E5DD177EF502C664D469256793DF8C80D3F3B8F2543FCE3"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.Devolutions.Launcher.2025.3.25.0.msi",
"Hash": "1F5443543A1CA8FB2D27B4474E00824FAE1FBBD975C83FD5F91EA9D45B51062D"
}
]
}
},
"HubImporter": {
"Current": {
"Version": "2025.3.23.0",
"Date": "2025-11-24",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.Hub.Importer.2025.3.23.0.exe",
"Hash": "AFB23C7F614AA8FDFE25AB4E2299AAACC4567D86A0D2DCF0CA2602498C781E6A"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.Hub.Importer.2025.3.23.0.msi",
"Hash": "6EFF977F6F54376B05CA1D37A287023800649052685676D6E14819F55AC1D3E0"
}
]
},
"Beta": {
"Version": "2025.3.23.0",
"Date": "2025-11-24",
"Files": [
{
"Arch": "x64",
"Type": "exe",
"Url": "https://cdn.devolutions.net/download/Setup.Hub.Importer.2025.3.23.0.exe",
"Hash": "AFB23C7F614AA8FDFE25AB4E2299AAACC4567D86A0D2DCF0CA2602498C781E6A"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Setup.Hub.Importer.2025.3.23.0.msi",
"Hash": "6EFF977F6F54376B05CA1D37A287023800649052685676D6E14819F55AC1D3E0"
}
]
}
},
"HubServices": {
"Current": {
"Version": "2025.3.1.1",
"Date": "2025-10-07",
"Files": [
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Hub/Services/Setup.Devolutions.Hub.Services.2025.3.1.1.msi",
"Hash": "2802128648097C2C5BBD061ADCFCA0A509E9FDF29662619F9721C2494F7521F3"
}
]
}
},
"WorkspaceWindows": {
"Current": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "x64",
"Type": "msix",
"Url": "https://cdn.devolutions.net/download/Devolutions.Workspace-2025.3.3.0-x64.msix",
"Hash": "6E2723756E73966BEF899EC5996A2CE14EBFEE41A4621DC1C6A135F7DB740C6A"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Devolutions.Workspace-2025.3.3.0-x64.msi",
"Hash": "B383F94B103AD7B50825AD9E743DCBD75274E84D32EE23BA90CD2233328AB01C"
}
]
},
"Beta": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "x64",
"Type": "msix",
"Url": "https://cdn.devolutions.net/download/Devolutions.Workspace-2025.3.3.0-x64.msix",
"Hash": "6E2723756E73966BEF899EC5996A2CE14EBFEE41A4621DC1C6A135F7DB740C6A"
},
{
"Arch": "x64",
"Type": "msi",
"Url": "https://cdn.devolutions.net/download/Devolutions.Workspace-2025.3.3.0-x64.msi",
"Hash": "B383F94B103AD7B50825AD9E743DCBD75274E84D32EE23BA90CD2233328AB01C"
}
]
}
},
"WorkspaceMac": {
"Current": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "universal",
"Type": "dmg",
"Url": "https://cdn.devolutions.net/download/Mac/Workspace/2025.3.3.0/Devolutions.Workspace.2025.3.3.0.dmg",
"Hash": "DD0FA67E0A1859B613A08D6A08EEF961D546C428014ABD8EDC94C069138871F0"
}
]
},
"Beta": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "universal",
"Type": "dmg",
"Url": "https://cdn.devolutions.net/download/Mac/Workspace/2025.3.3.0/Devolutions.Workspace.2025.3.3.0.dmg",
"Hash": "DD0FA67E0A1859B613A08D6A08EEF961D546C428014ABD8EDC94C069138871F0"
}
]
}
},
"WorkspaceLinux": {
"Current": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/Linux/Workspace/2025.3.3.0/workspace_2025.3.3.0_amd64.deb",
"Hash": "EC88D393D4CF6D259430FCCA34A2FBCE6F5A2BF83B87E5FBAC0B81428250953C"
}
]
},
"Beta": {
"Version": "2025.3.3.0",
"Date": "2025-11-13",
"Files": [
{
"Arch": "x64",
"Type": "deb",
"Url": "https://cdn.devolutions.net/download/Linux/Workspace/2025.3.3.0/workspace_2025.3.3.0_amd64.deb",
"Hash": "EC88D393D4CF6D259430FCCA34A2FBCE6F5A2BF83B87E5FBAC0B81428250953C"
}
]
}
},
"WorkspaceFirefox": {
"Current": {
"Version": "2025.3.1.2",
"Date": "2025-11-06",
"Files": [
{
"Arch": "Any",
"Type": "xpi",
"Url": "https://cdn.devolutions.net/download/BrowserExtension/DevolutionsWebLoginFirefox.2025.3.1.2.xpi",
"Hash": ""
}
]
}
},
"WorkspaceChrome": {
"Current": {
"Version": "2025.3.1.2",
"Date": "2025-11-06",
"Files": [
{
"Arch": "Any",
"Type": "web",
"Url": "https://chrome.google.com/webstore/detail/devolutions-web-login/neimonjjffhehnojilepgfejkneaidmo?hl=en-US&gl=CA",
"Hash": ""
}
]
}
},
"WorkspaceEdge": {
"Current": {
"Version": "2025.3.1.2",
"Date": "2025-11-06",
"Files": [
{
"Arch": "Any",
"Type": "web",
"Url": "https://microsoftedge.microsoft.com/addons/detail/ddloeodolhdfbohkokiflfbacbfpjahp",
"Hash": ""
}
]
}
},
"WorkspaceOpera": {
"Current": {
"Version": "2025.3.1.2",
"Date": "2025-11-06",
"Files": [
{
"Arch": "Any",
"Type": "crx",
"Url": "https://cdn.devolutions.net/download/BrowserExtension/DevolutionsWebLoginOpera.2025.3.1.2.crx",
"Hash": ""
}
]
}
},
"WorkspaceSafari": {
"Current": {
"Version": "2025.3.0.3",
"Date": "2025-10-07",
"Files": [
{
"Arch": "Any",
"Type": "web",
"Url": "https://apps.apple.com/us/app/devolutions-workspace/id1462282993",
"Hash": ""
}
]
}
}
} |
... Addressed in dbdf576:
|
- Add optional Date field to ChannelData struct to handle live productinfo.json - Add forward compatibility via flattened _other HashMap for unknown fields - Add validation for empty URLs and hashes - Add detailed warning logs for parsing failures with context - Add deny_unknown_fields to ProductFile for safety - Add comprehensive tests for Date field, unknown fields, and validation
ec3b116 to
8d90413
Compare
The productinfo.json parser failed silently with
UpdaterError::ProductInfofor all error cases, providing no diagnostic information. The live productinfo.json includes aDatefield that serde handles automatically (unknown fields are ignored by default).Changes
Removed unnecessary complexity
_otherHashMap +#[serde(flatten)]— serde ignores unknown fields by default#[serde(deny_unknown_fields)]fromProductFile— was hurting forward compatibilitySerializederive — not needed for parsingLenient parsing with error accumulation
FromStrtrait toparse_product_info()function returningParseProductInfoResult { db, errors }ProductInfoDbnow stores rawProductDatawithout filtering during parseVec<ProductInfoError>instead of failing fastDeferred file lookup
lookup_current_file()for specific product/arch/type lookuplookup_msi_for_target_arch()convenience method for common MSI lookupUpdaterError::ProductInfotoProductFileNotFoundwith product/arch/file_type contextIssue: Reported by tester following PR #1591
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.