{
  "windows": [
    {
      "version": "0.6.0",
      "file": "DuoDesk-Setup-0.6.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77109853,
      "sha256": "e095c7e511a4ba06fd261818fc982a28b0233700633238c23dcaea320d7a2b1f",
      "date": "2026-08-21",
      "notes": "The app lives at duodesk.io now. Always allow this computer finally works: it issues a reconnect token that carries the permissions you granted."
    },
    {
      "version": "0.6.0",
      "file": "DuoDesk-0.6.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76945360,
      "sha256": "68095baa15e3e2a9aba09061b91ad468e24518dfe54e9bc1d2030c1b58d80dc1",
      "date": "2026-08-21",
      "notes": "The app lives at duodesk.io now. Always allow this computer finally works: it issues a reconnect token that carries the permissions you granted."
    },
    {
      "version": "0.5.0",
      "file": "DuoDesk-Setup-0.5.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77110188,
      "sha256": "ea70cf8e57aa42ff3899cd6ebdc59fa82fe303c2b3dff918193d830b807afbd2",
      "date": "2026-08-21",
      "notes": "Download the installer, then update from inside the app — on Windows, macOS and Linux alike."
    },
    {
      "version": "0.5.0",
      "file": "DuoDesk-0.5.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76945692,
      "sha256": "c11d195302cb02a97384e3c38582b26f48fcca64d332a4e2b9672723ee8e508a",
      "date": "2026-08-21",
      "notes": "Download the installer, then update from inside the app — on Windows, macOS and Linux alike."
    },
    {
      "version": "0.4.0",
      "file": "DuoDesk-0.4.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76944182,
      "sha256": "cff428966fbe441dcda700e476728e84a0a52c3a56538ea0c984128a4ff24c4e",
      "date": "2026-08-21",
      "notes": "DuoDesk: two screens, one session. Same machine, same ID — the identity is carried across the rename."
    },
    {
      "version": "0.4.0",
      "file": "DuoDesk-Setup-0.4.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77170843,
      "sha256": "ab1d98d2d89bfeacea7228216a0a3c51e14188e7ca6805a821e83a0e0fbc3f20",
      "date": "2026-08-21",
      "notes": "DuoDesk: two screens, one session. Same machine, same ID — the identity is carried across the rename."
    },
    {
      "version": "0.3.0",
      "file": "PCViewer-0.3.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 77039974,
      "sha256": "de907f8db8aa5bc8d58c04e706a46db7e1c7d831be822abad5ab2a6c7be38cef",
      "date": "2026-08-21",
      "notes": "The app is PCViewer now, moving to pcviewer.io. Same machine, same ID: the identity is carried across the rename."
    },
    {
      "version": "0.3.0",
      "file": "PCViewer-Setup-0.3.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77268334,
      "sha256": "1c21fce3aed3fae7962f39770b34a3fd79b418df6ed74084c518af61b519b0d0",
      "date": "2026-08-21",
      "notes": "The app is PCViewer now, moving to pcviewer.io. Same machine, same ID: the identity is carried across the rename."
    },
    {
      "version": "0.2.4",
      "file": "Desk-0.2.4-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76935660,
      "sha256": "2059a087ae0c6223968db486400be4dbdbc2c9ef79084901677b25f2d56c1f88",
      "date": "2026-08-21",
      "notes": "The viewer toolbar rests as a small grip and can be dragged, so it no longer covers the taskbar of the computer you are controlling."
    },
    {
      "version": "0.2.4",
      "file": "Desk-Setup-0.2.4.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77160225,
      "sha256": "0aa6c29666baea3f4d0277bd69a4e7a0c96f67514a814b0b29390da1e9cc7b4b",
      "date": "2026-08-21",
      "notes": "The viewer toolbar rests as a small grip and can be dragged, so it no longer covers the taskbar of the computer you are controlling."
    },
    {
      "version": "0.2.2",
      "file": "Desk-0.2.2-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76934200,
      "sha256": "0c3bd658e0f87ca828b840406a5aa2bc879d4fdd5bef128d76d8c7b5df9ef359",
      "date": "2026-08-21",
      "notes": "The accept dialog grows to fit its own contents, so a first-time caller's permission list can never fall below the fold."
    },
    {
      "version": "0.2.2",
      "file": "Desk-Setup-0.2.2.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77158767,
      "sha256": "527b47f69fd2b163e86b5736e3c4756440771d8c011379acbf15ce87d3211699",
      "date": "2026-08-21",
      "notes": "The accept dialog grows to fit its own contents, so a first-time caller's permission list can never fall below the fold."
    },
    {
      "version": "0.2.1",
      "file": "Desk-0.2.1-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76928993,
      "sha256": "7fbaf819b0deb6a300cd6cbe052460f16a3102b77746d14a12be84b68798c9e1",
      "date": "2026-08-21",
      "notes": "One button per platform on the download page, and an app icon with a pointer on the screen instead of a blank one."
    },
    {
      "version": "0.2.1",
      "file": "Desk-Setup-0.2.1.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77153561,
      "sha256": "b2a2ac46767a1702c2a0ef3c9d758c8ad148890d5269a4c628234e308e8350e9",
      "date": "2026-08-21",
      "notes": "One button per platform on the download page, and an app icon with a pointer on the screen instead of a blank one."
    },
    {
      "version": "0.2.0",
      "file": "Desk-0.2.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76892325,
      "sha256": "541e90bb7c0bdad206d86e6431acaa191c2be2f38c9b9360d156f8d2b1618305",
      "date": "2026-08-21",
      "notes": "Desk-IDs are sixteen digits now; the nine-digit ones keep working. Redesigned window, and the accept dialog no longer hides its own buttons on a short screen."
    },
    {
      "version": "0.2.0",
      "file": "Desk-Setup-0.2.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77105350,
      "sha256": "4239854d651601fdb4400510f7447a1fada4d0f790c84cdd85f5572bccd1c1e6",
      "date": "2026-08-21",
      "notes": "Desk-IDs are sixteen digits now; the nine-digit ones keep working. Redesigned window, and the accept dialog no longer hides its own buttons on a short screen."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-portable.exe",
      "arch": "x64",
      "kind": "portable",
      "label": "Windows (single file, no install)",
      "bytes": 76886231,
      "sha256": "9e49ddc619c2a96788c1eb0c728e12b8ed4e6f7b40d525bd93e7479c93762936",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    },
    {
      "version": "0.1.0",
      "file": "Desk-Setup-0.1.0.exe",
      "arch": "x64",
      "kind": "installer",
      "label": "Windows installer",
      "bytes": 77099241,
      "sha256": "d031031cb84aff26601f57e2b2ea817d6d75fc1747c96e37f1131d0ae6f44ce0",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-x64.zip",
      "arch": "x64",
      "label": "Windows (portable zip)",
      "bytes": 115578179,
      "sha256": "ae6deb31ccce7a08927b611646811742e960bc6083d81f76b907ac482d1f4d8b",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    }
  ],
  "mac": [
    {
      "version": "0.6.0",
      "file": "DuoDesk-0.6.0-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102366789,
      "sha256": "6ad8d995c2af1e823b11e3d0d566ca8fffcdda27561c4c560b1755915573b7f4",
      "date": "2026-08-21",
      "notes": "The app lives at duodesk.io now. Always allow this computer finally works: it issues a reconnect token that carries the permissions you granted."
    },
    {
      "version": "0.5.0",
      "file": "DuoDesk-0.5.0-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102366746,
      "sha256": "230b036b19252e7174359facdf7912f8125bf48b53cc6f5a492bf392746b94c9",
      "date": "2026-08-21",
      "notes": "Download the installer, then update from inside the app — on Windows, macOS and Linux alike."
    },
    {
      "version": "0.4.0",
      "file": "DuoDesk-0.4.0-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102362830,
      "sha256": "8a5100444c26fdca37d9318b5c64a7fa7dea71505723acff90257a9d43008000",
      "date": "2026-08-21",
      "notes": "DuoDesk: two screens, one session. Same machine, same ID — the identity is carried across the rename."
    },
    {
      "version": "0.3.0",
      "file": "PCViewer-0.3.0-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102369911,
      "sha256": "68571ab8b0b7044ea85b9ee389ea25b237fe57037391c55d96be9a96d344f375",
      "date": "2026-08-21",
      "notes": "The app is PCViewer now, moving to pcviewer.io. Same machine, same ID: the identity is carried across the rename."
    },
    {
      "version": "0.2.4",
      "file": "Desk-0.2.4-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102316069,
      "sha256": "6386b0c25ba3e5c66834b92ca55edf8d9795c471017d39dd7db09c472a527b61",
      "date": "2026-08-21",
      "notes": "The viewer toolbar rests as a small grip and can be dragged, so it no longer covers the taskbar of the computer you are controlling."
    },
    {
      "version": "0.2.3",
      "file": "Desk-0.2.3-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102315997,
      "sha256": "f673caeb2e5734361ce0a804d7eebaa0d5b4c698346ec74c18fde9de681e4e36",
      "date": "2026-08-21",
      "notes": "The viewer toolbar rests as a small grip and can be dragged, so it no longer covers the taskbar of the computer you are controlling."
    },
    {
      "version": "0.2.2",
      "file": "Desk-0.2.2-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102299268,
      "sha256": "7bfdd593aa1dc181de9a33e961285ad5a13a7753487e1dc70d03861ecd38220f",
      "date": "2026-08-21",
      "notes": "The accept dialog grows to fit its own contents, so a first-time caller's permission list can never fall below the fold."
    },
    {
      "version": "0.2.1",
      "file": "Desk-0.2.1-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102314770,
      "sha256": "950ccc96c8d74c98bbfc5a09bcc0bb45447eb85ac55717d6b005a1783f8615a3",
      "date": "2026-08-21",
      "notes": "One button per platform on the download page, and an app icon with a pointer on the screen instead of a blank one."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-arm64.dmg",
      "arch": "arm64",
      "label": "macOS (Apple silicon)",
      "bytes": 102057933,
      "sha256": "060c2beb08af40af08fe18dd5a1df91c08ad40a44e4b215e671d77244452e64c",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    }
  ],
  "linux": [
    {
      "version": "0.6.0",
      "file": "DuoDesk-0.6.0-x86_64.AppImage",
      "arch": "x64",
      "kind": "portable",
      "label": "Linux AppImage x86-64",
      "bytes": 111836429,
      "sha256": "17d357bee1c69ff9760b5d87ce28de59ebba7ca2ef061594acae52770ed0c291",
      "date": "2026-08-21",
      "notes": "The app lives at duodesk.io now. Always allow this computer finally works: it issues a reconnect token that carries the permissions you granted."
    },
    {
      "version": "0.5.0",
      "file": "DuoDesk-0.5.0-x86_64.AppImage",
      "arch": "x64",
      "kind": "portable",
      "label": "Linux AppImage x86-64",
      "bytes": 111836432,
      "sha256": "ef631777e9c27d9326eb2b6020bc9f1bd52b20f2c8ccd3edac12e722355095b0",
      "date": "2026-08-21",
      "notes": "Download the installer, then update from inside the app — on Windows, macOS and Linux alike."
    },
    {
      "version": "0.4.0",
      "file": "DuoDesk-0.4.0-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111836488,
      "sha256": "1676fcd0b463d19fd74b1e360a2f0692c0ab42f92fc52df073453c30dcb0bc92",
      "date": "2026-08-21",
      "notes": "DuoDesk: two screens, one session. Same machine, same ID — the identity is carried across the rename."
    },
    {
      "version": "0.3.0",
      "file": "PCViewer-0.3.0-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111840404,
      "sha256": "6b2b51f348026d0595270338c7cbb0aa39709827a52bb61075c008695c21e22e",
      "date": "2026-08-21",
      "notes": "The app is PCViewer now, moving to pcviewer.io. Same machine, same ID: the identity is carried across the rename."
    },
    {
      "version": "0.2.4",
      "file": "Desk-0.2.4-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111820029,
      "sha256": "68e22eb2493c69643980e332455c92d9b24636bff0839f85433e50f03fd14a06",
      "date": "2026-08-21",
      "notes": "The viewer toolbar rests as a small grip and can be dragged, so it no longer covers the taskbar of the computer you are controlling."
    },
    {
      "version": "0.2.2",
      "file": "Desk-0.2.2-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111820025,
      "sha256": "96fc254c6f17010617a5eca4520dc0b648fcc24ad974545ea905d308e7543eb8",
      "date": "2026-08-21",
      "notes": "The accept dialog grows to fit its own contents, so a first-time caller's permission list can never fall below the fold."
    },
    {
      "version": "0.2.1",
      "file": "Desk-0.2.1-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111820047,
      "sha256": "09abd0849ad7bd45c4e449c969add772329d66c93a7ba029c32ee1363bdde709",
      "date": "2026-08-21",
      "notes": "One button per platform on the download page, and an app icon with a pointer on the screen instead of a blank one."
    },
    {
      "version": "0.2.0",
      "file": "Desk-0.2.0-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111783139,
      "sha256": "d19657b08246b852bd56f21c22b0936728238f47ac56edccaee1294dbeb3e081",
      "date": "2026-08-21",
      "notes": "Desk-IDs are sixteen digits now; the nine-digit ones keep working. Redesigned window, and the accept dialog no longer hides its own buttons on a short screen."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-x86_64.AppImage",
      "arch": "x64",
      "label": "Linux AppImage x86-64",
      "bytes": 111778996,
      "sha256": "038943b59252941eda265c221bdfe3488a4c7df295e9415950d326e789f356b1",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-x64.tar.gz",
      "arch": "x64",
      "label": "Linux x86-64 (tarball)",
      "bytes": 106161453,
      "sha256": "c21bb3756694e82681be90a4a841bb385748116b3660188acb34f89c2e05f68f",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    },
    {
      "version": "0.1.0",
      "file": "Desk-0.1.0-arm64.tar.gz",
      "arch": "arm64",
      "label": "Linux arm64",
      "bytes": 110658477,
      "sha256": "e429cb7d3cba3178ccaf3086cf223ae6cbbbe3d899da36d82c0c547527702e84",
      "date": "2026-08-21",
      "notes": "First release. Nine-digit IDs, an accept dialog with per-session permissions, unattended password with two-factor and lockout, multi-monitor, checksummed file transfer, clipboard sync, privacy screen and session recording."
    }
  ]
}
