{
    "$schema":  "https://pindrift.app/schemas/version.schema.json",
    "schema_version":  1,
    "version":  "1.0.46",
    "channel":  "stable",
    "released":  "2026-07-16",
    "min_supported_windows":  "10.0.19041",
    "min_supported_ios":  "17.0",
    "min_supported_android":  "10",
    "download":  {
                     "windows_x64":  {
                                         "url":  "https://pindrift.app/download/win",
                                         "sha256":  "0e40e75439be0d5c434231a70328419ef30ed112d945063836d3ad4e60456e35",
                                         "bytes":  108057385,
                                         "signed":  false
                                     }
                 },
    "notes_url":  "https://pindrift.app/changelog#v1-0-46",
    "minimum_supported_version":  "0.1.0",
    "deprecation":  null,
    "changelog":  [
                      {
                          "version":  "1.0.46",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.46",
                          "summary":  "A dropped connection no longer leaves you on your real location without saying so.",
                          "sections":  {
                                           "fixed":  [
                                                         "If the connection to your iPhone dropped, for example a Wi-Fi change, the spoof stopped but PinDrift kept showing it as running. Your phone was on its real location and nothing told you. PinDrift now notices and says so.",
                                                         "Lock said the spoof survives unplugging and would last until the phone restarted. That was never true, and the wording has been corrected everywhere. Lock keeps PinDrift from clearing your spoof; it cannot keep one alive if the connection itself drops."
                                                     ],
                                           "changed":  [
                                                           "When a dropped connection stops your spoof, PinDrift now puts your last location back on its own once the phone is reachable again. A phone you released on purpose is left alone, and Anti-Speed still shows your real location when you slow down."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "0e40e75439be0d5c434231a70328419ef30ed112d945063836d3ad4e60456e35",
                                                               "bytes":  108057385,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.45",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.45",
                          "summary":  "Actually keeps your spoof when you release a phone with Lock on.",
                          "sections":  {
                                           "fixed":  [
                                                         "1.0.44 was meant to stop Release clearing your spoof when Lock is on, and it did not work. Releasing a phone with Lock on now genuinely keeps the spoof running.",
                                                         "Releasing a phone with Lock off still clears the spoof and returns the phone to its real location, as before."
                                                     ],
                                           "known_issues":  [
                                                                "Lock protects your spoof from PinDrift clearing it. It cannot keep a spoof alive if the connection to the phone itself drops, for example if the phone leaves Wi-Fi or the computer sleeps. In that case reconnect the phone and PinDrift puts your last location back."
                                                            ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "4a5d1af4c2aa8671cd35b44674c982a0a943c2813e5cd625d9a3b7cacba7f058",
                                                               "bytes":  108050726,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.44",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.44",
                          "summary":  "Releasing a phone no longer reveals your real location when Lock is on.",
                          "sections":  {
                                           "fixed":  [
                                                         "With Lock on, disconnecting a phone in the app cleared the spoof and showed your real location. Lock is now respected: the spoof stays, and only Stop Spoofing clears it.",
                                                         "That also removed a false \u0027Location spoof cleared unexpectedly\u0027 (PND-6004) error when you disconnected a phone on purpose."
                                                     ],
                                           "changed":  [
                                                           "Reconnecting a phone now picks the spoof back up where you left off. If the spoof is still running it is left alone, so there is no stop-and-restart jump.",
                                                           "The device row now says \u0027Not controlled\u0027 with Release and Resume buttons. It used to say \u0027Disconnected\u0027 for a phone that was still connected, because the button stops PinDrift controlling the phone rather than unplugging it."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "30f12e1489e876d7ddaa849b592e454d284870986553ad2cc9b86f35e9e924f9",
                                                               "bytes":  108049817,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.43",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.43",
                          "summary":  "Spells the name consistently as PinDrift.",
                          "sections":  {
                                           "fixed":  [
                                                         "The app window title and the installer spelled the name Pindrift in a few places. They now read PinDrift, matching everywhere else."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "fd924ebdc7c18f1b3ef5a98f55f4d61b76dc8bbd8ea6c711019bb273a01aec52",
                                                               "bytes":  108046947,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.42",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.42",
                          "summary":  "Fixes the window appearing before the map has drawn.",
                          "sections":  {
                                           "fixed":  [
                                                         "At launch the window could appear for a moment with an empty map before the map drew itself. PinDrift now waits for the map to draw before showing the window. If the map is slow or you are offline, the window still opens rather than making you wait."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "cd447741f51eeefe84ee79c72dfa2cdd90e09268e739bb11c8f4e62a14c45013",
                                                               "bytes":  108046982,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.41",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.41",
                          "summary":  "Fixes the developer panel flashing on screen at launch.",
                          "sections":  {
                                           "fixed":  [
                                                         "The developer panel and the Nerd Stats overlay could flash across the screen for a split second while the app was starting. They now stay hidden until you open them."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "480711932a5a89e1d7deaef5a2e681c42f5e7297a24ddbf6c4da7af4974389a0",
                                                               "bytes":  108046027,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.40",
                          "channel":  "stable",
                          "released":  "2026-07-16",
                          "title":  "PinDrift 1.0.40",
                          "summary":  "Fixes the background engine being left running after the app closes.",
                          "sections":  {
                                           "fixed":  [
                                                         "PinDrift\u0027s background engine (PinDriftEngine) could stay running after the app was force-closed, for example with End task in Task Manager. It now shuts down together with the app.",
                                                         "Any leftover engine from an older version is cleared automatically the first time you open this one. A leftover engine could hold on to the port PinDrift needs, which could stop a later launch from seeing your iPhone."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "42e452ac4b61adabc096a9eaebbeba840fa1c8b878208e91d64df7c5a29c9131",
                                                               "bytes":  108046008,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.39",
                          "channel":  "stable",
                          "released":  "2026-07-15",
                          "title":  "PinDrift 1.0.39",
                          "summary":  "Fixes garbled on-screen text from 1.0.38.",
                          "sections":  {
                                           "changed":  [
                                                           "Pay with crypto has an anonymous option: check out with no email at all, and get a one-time license key instead. Save it, because it is the only way back in and it cannot be recovered.",
                                                           "Open web dashboard signs you straight in when you are already signed in to the app."
                                                       ],
                                           "fixed":  [
                                                         "Some on-screen text (for example the wait message on the crypto payment screen) showed up as garbled characters in 1.0.38. This is fixed."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "ae15197ee285d4e6e4f55d1ea1fcd983b383a7dac1a8986df7e7c8a776c7c622",
                                                               "bytes":  108042843,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.38",
                          "channel":  "stable",
                          "released":  "2026-07-15",
                          "title":  "PinDrift 1.0.38",
                          "summary":  "Anonymous crypto checkout, and one-click web dashboard.",
                          "sections":  {
                                           "changed":  [
                                                           "Pay with crypto now has an anonymous option: check out with no email at all. You get a one-time license key instead of an account. Save it, because it is the only way back in and it cannot be recovered.",
                                                           "Paying with crypto and an email works as before. Either way, crypto is the same price as card.",
                                                           "Open web dashboard now signs you straight in. If you are signed in to the app, it no longer asks you to log in again on the website."
                                                       ],
                                           "fixed":  [
                                                         "Pay with crypto is no longer blocked behind entering an email first."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "ea180e71fa30bdc45354712a72cb2b4ccbc38f64ae87e9fda1e5d54579601553",
                                                               "bytes":  108043180,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.37",
                          "channel":  "stable",
                          "released":  "2026-07-14",
                          "title":  "PinDrift 1.0.37",
                          "summary":  "New pricing: $20 a year, or $30 for lifetime.",
                          "sections":  {
                                           "changed":  [
                                                           "New pricing: Yearly is now $20 a year, and Lifetime is $30 one time. The 10-Day Pass and Monthly plans are no longer sold.",
                                                           "Already own a Pass, a Monthly plan, or a 6-month crypto license? Nothing changes. Your license keeps working exactly as before.",
                                                           "Paying with cryptocurrency now matches card pricing: $20 for 1 year, $30 for lifetime."
                                                       ],
                                           "fixed":  [
                                                         "An expired pass now locks the app immediately when you open it, instead of allowing access for a while first."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "39fed3bbe04402125058bc6ed632af25d2995e624f364597389434fad64f9f72",
                                                               "bytes":  108040765,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.36",
                          "channel":  "stable",
                          "released":  "2026-07-03",
                          "title":  "PinDrift 1.0.36",
                          "summary":  "Activate with a license code.",
                          "sections":  {
                                           "changed":  [
                                                           "You can now activate with a license code (from an anonymous crypto purchase): open the upgrade window and choose \u0027Have a license code?\u0027."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "17f3ff129cc5218bba5db17ec940732674de8a48559fab4c567edd099bb72f56",
                                                               "bytes":  108040290,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.35",
                          "channel":  "stable",
                          "released":  "2026-07-02",
                          "title":  "PinDrift 1.0.35",
                          "summary":  "Crypto coin/network split, email receipts, faster launch.",
                          "sections":  {
                                           "changed":  [
                                                           "Crypto checkout now asks for your coin first, then the network. The pay screen confirms it is safe to close once you have sent, and every crypto purchase emails you a receipt. Faster app launch; the developer panel no longer appears on startup."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "1dcd7cdbbdcfbed749e45628e328d068f1338bdbfab7261ba5be54a7f6a90c6e",
                                                               "bytes":  108039710,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.34",
                          "channel":  "stable",
                          "released":  "2026-06-28",
                          "title":  "PinDrift 1.0.34",
                          "summary":  "Pay with crypto (USDC/USDT).",
                          "sections":  {
                                           "changed":  [
                                                           "You can now pay with cryptocurrency (USDC or USDT) for a 6-month, 1-year, or lifetime license, on Base, Polygon, Arbitrum, Optimism, Avalanche, Solana, or Tron. Pick \u0027Pay with crypto\u0027 on the upgrade screen; your license activates automatically once the payment confirms."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "eaa8a5f3f114971b7f519a97b2ee89900da12966b6d38690ef2c4ec86c6ced6d",
                                                               "bytes":  108039091,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.33",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.33",
                          "summary":  "PinDrift logo in every QR code.",
                          "sections":  {
                                           "changed":  [
                                                           "Every generated QR code (Device Control and Anti-Speed) now shows the PinDrift mark in its center, on a clean white pad. The QR error correction is set high enough that the logo never affects scanning."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "766d0162ebab9dfa377551cac08d0d3dbff14bc8801c4c2430be3d57b3cc071b",
                                                               "bytes":  108037457,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.32",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.32",
                          "summary":  "Tutorial closing animation.",
                          "sections":  {
                                           "changed":  [
                                                           "The setup tutorial now closes with a smooth animation that mirrors its opening, instead of disappearing instantly."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "38187de6effcbbe2ff59a02ebc0cc0bf30d9ca37d76424a6470371d323c4a5b6",
                                                               "bytes":  108037164,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.31",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.31",
                          "summary":  "Consistent sidebar height.",
                          "sections":  {
                                           "fixed":  [
                                                         "The sidebar is now the same height on every tab (it no longer shrinks or grows depending on the tab). It fills the window floor-to-ceiling at normal sizes, and is only shortened and centered when the window is very tall, like maximized on a big monitor."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "3a3966a334c0748085cd4fa836310785400b523c9f56bfa2c393d1d7a218ba0c",
                                                               "bytes":  108037130,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.30",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.30",
                          "summary":  "Loader + Anti-Speed QR polish.",
                          "sections":  {
                                           "changed":  [
                                                           "The address-search \u0027Searching\u0027 indicator now shows a sweeping progress bar instead of static dots.",
                                                           "The Anti-Speed QR code now sits in a clean themed scan card instead of a bare white box on the dark sidebar."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "124532cac8bafcebd6d512f1e688bf3c026b53453d4be52d358c48259724a262",
                                                               "bytes":  108036901,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.29",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.29",
                          "summary":  "Light/dark picker in setup + centered sidebar.",
                          "sections":  {
                                           "changed":  [
                                                           "The first-run setup now lets you choose Light or Dark mode right alongside the units picker.",
                                                           "The sidebar is vertically centered and sizes to its content instead of stretching the full window height."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "fd5ca5dc0cace9420029db1a2750c81a456bd9856e8dfee6e719787c9b07819b",
                                                               "bytes":  108036984,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.28",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.28",
                          "summary":  "Layout polish.",
                          "sections":  {
                                           "changed":  [
                                                           "The Nerd Stats overlay is now vertically centered by default (and still draggable).",
                                                           "The sidebar sizes to its content instead of stretching the full window height when fullscreen, and scrolls if its content is taller than the window.",
                                                           "When the window is narrowed, the sidebar keeps an even margin on both sides instead of touching the right edge."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "f1cc97cadca48c90c8ba4c8b80150916b576343a6236ab979104a65ca44e5547",
                                                               "bytes":  108036322,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.27",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.27",
                          "summary":  "Small UI polish.",
                          "sections":  {
                                           "changed":  [
                                                           "The Presets header arrow now sits right next to the word instead of at the far edge.",
                                                           "The Device Control window opens and closes with a springy pop animation.",
                                                           "The Nerd Stats overlay is now draggable - grab its title bar to move it anywhere on screen, and it remembers its position."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "26de6d447ddd2d790618d8a49ffbd9a4967f2515e253db975d96f85588d3cb07",
                                                               "bytes":  108036187,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.26",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.26",
                          "summary":  "Press Enter to activate.",
                          "sections":  {
                                           "changed":  [
                                                           "On the license-activation screens you can now press Enter to submit: Enter in the email field sends the code, and Enter in the 6-digit code field activates - no need to click the button."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "b68bc48a0910fa9208e4fa245d5a5630b792d34a2b5780e1603558a020845a03",
                                                               "bytes":  108035619,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.25",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.25",
                          "summary":  "Device panel fix for the dark/glass theme.",
                          "sections":  {
                                           "fixed":  [
                                                         "On the dark glass theme, the device popup no longer shows the old duplicate device card under the per-phone row. Each phone is now a single clean row: an outline phone icon, the phone\u0027s name, how it\u0027s connected (USB, Wi-Fi, or Tailscale), and its own Disconnect / Reconnect button."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "6bfa8ddf8fa014e6b8ccdcd7b509b2aef742b10a850f47b073bf124d0cf5ca4d",
                                                               "bytes":  108035534,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.23",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.23",
                          "summary":  "Cleaner device panel.",
                          "sections":  {
                                           "changed":  [
                                                           "Each phone now appears as a single clean row: an outline phone icon, the phone\u0027s name, how it\u0027s connected (USB, Wi-Fi, or Tailscale), and its own Disconnect / Reconnect button."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "03170bd1247989609a9d442f0df6bd557d6762f64d7638ec64fbe6c29e65bd13",
                                                               "bytes":  108035444,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.22",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.22",
                          "summary":  "Clearer device list.",
                          "sections":  {
                                           "changed":  [
                                                           "The device panel now shows one row per phone (even with a single phone), each with its own Disconnect / Reconnect button, and no longer shows a \u0027?\u0027 when a phone\u0027s model or iOS version isn\u0027t known yet."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "079defeec6fc074f2d62ad3b7efafe290f925d526d8426d6ee7792e77922ba68",
                                                               "bytes":  108035425,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.21",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.21",
                          "summary":  "Clearer per-phone connection controls.",
                          "sections":  {
                                           "changed":  [
                                                           "Each connected phone now has its own Disconnect / Reconnect button right in its row, so you can manage phones individually instead of all at once."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "7e32d2149f527763e6694a64776b36beacc849dc80845fe724a827cea2722df2",
                                                               "bytes":  108035016,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.20",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.20",
                          "summary":  "A small UI polish to the sidebar popups.",
                          "sections":  {
                                           "changed":  [
                                                           "The Settings, Account, and device-info popups now open and close with the same springy pop animation as the connection-help window."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "d92d184b76ee97ecbbcb2082f6871948f0556069ce30ff41b177ac746e2c8c26",
                                                               "bytes":  108034214,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.19",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.19",
                          "summary":  "Paid licenses now work fully offline for the entire purchased duration.",
                          "sections":  {
                                           "changed":  [
                                                           "Your paid license now keeps working offline for as long as you\u0027ve paid for - a Lifetime license works indefinitely with no internet. Access is secured with a signed, device-bound entitlement, so it can\u0027t be copied to another PC.",
                                                           "Reliability and security hardening across licensing."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "341e6aa41638d94cf0a651339326c6448e6982f2d061933ff89decc54847d2cb",
                                                               "bytes":  108034181,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.17",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.17",
                          "summary":  "Updates are picked up faster - the app checks every 5 minutes.",
                          "sections":  {
                                           "changed":  [
                                                           "PinDrift now checks for new versions every 5 minutes instead of every 30, so a new release is picked up within minutes. The check is a tiny request to GitHub; nothing changes server-side."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "1dbd989126b4152756175def83cac8d9d7ec298073c233d0095d5abf684e80ca",
                                                               "bytes":  108031049,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.16",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.16",
                          "summary":  "PinDrift now asks for admin permission only once, not every launch.",
                          "sections":  {
                                           "changed":  [
                                                           "PinDrift now requests admin permission only the first time you run it after installing. Every launch after that starts silently with no prompt, by relaunching itself elevated through a one-time Windows scheduled task. If that ever fails it safely falls back to a normal admin prompt, so it can never fail to start."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "4838d7a637b075008c7382f319372e5ddc30c3aff2d10b9212385ce80e6ed9ce",
                                                               "bytes":  108031026,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.15",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.15",
                          "summary":  "Updates now apply silently, with no installer wizard.",
                          "sections":  {
                                           "changed":  [
                                                           "Applying an update no longer shows the full installer wizard. After you click to update, the app closes, swaps in the new version, and reopens on its own. Takes effect for updates installed from this version onward."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "aef0823fb203c13c7fcb49c201218c7087581efa477d531c213a06b83cdd8d3f",
                                                               "bytes":  108029436,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.14",
                          "channel":  "stable",
                          "released":  "2026-06-27",
                          "title":  "PinDrift 1.0.14",
                          "summary":  "Account-claim protection, new-PC alerts, and a stronger AI-use notice.",
                          "sections":  {
                                           "changed":  [
                                                           "An unbound paid license can no longer be claimed just by knowing the email address. Activating it on a PC now requires a one-time code sent to the account\u0027s own inbox. Normal purchases are unaffected.",
                                                           "You now get an email alert whenever your license is activated on a new PC.",
                                                           "The proprietary and AI-use notice is stronger and restores itself if removed from the install folder."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "1f59eba2d76f7319f0ee2d357eb1cd901c998c32fe5326874f8a26fd94a2b074",
                                                               "bytes":  108029393,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.13",
                          "channel":  "stable",
                          "released":  "2026-06-26",
                          "title":  "PinDrift 1.0.13",
                          "summary":  "Fixes updates getting stuck on \u0027PinDrift cannot be closed\u0027.",
                          "sections":  {
                                           "fixed":  [
                                                         "\u0027Update now\u0027 could get stuck on \u0027PinDrift cannot be closed. Please close it manually\u0027. The app now shuts down cleanly, and its background engine releases its files, before the installer runs - so updates apply without any manual steps."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "08c42f5f1f75a05fe9efcf68bf54a2a4d776bc313ae755c3fbaea911ba1ef886",
                                                               "bytes":  108027419,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.12",
                          "channel":  "stable",
                          "released":  "2026-06-26",
                          "title":  "PinDrift 1.0.12",
                          "summary":  "Your saved login is now encrypted and locked to your PC.",
                          "sections":  {
                                           "changed":  [
                                                           "Your saved login is now encrypted and tied to your PC, so it can\u0027t be copied to another machine or hand-edited in the app files to impersonate another account.",
                                                           "Added clear proprietary and AI-use notices to the app."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "7f38a8ed7efb615415a4b6e41eafc35ddd9c67dc477dc7721a992175c2fbddff",
                                                               "bytes":  108027234,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.11",
                          "channel":  "stable",
                          "released":  "2026-06-26",
                          "title":  "PinDrift 1.0.11",
                          "summary":  "You now stay signed in across updates.",
                          "sections":  {
                                           "fixed":  [
                                                         "Updating the app could drop you back to the sign-in screen. Your login is now stored in a durable file that survives updates, so you stay signed in from one version to the next."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "1b256823fd7c60de5a0193f5446b0da24c82580d086e237ee0889ee208b82b3c",
                                                               "bytes":  108025279,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.10",
                          "channel":  "stable",
                          "released":  "2026-06-26",
                          "title":  "PinDrift 1.0.10",
                          "summary":  "Cleaner naming: the app and its background engine now appear under one consistent PinDrift name in Task Manager.",
                          "sections":  {
                                           "changed":  [
                                                           "The app and its background engine now show under a single consistent PinDrift name (PinDrift and PinDriftEngine) in Task Manager, instead of a mix of differently-named processes.",
                                                           "Carries forward all the 1.0.9 performance and footprint improvements."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "29d9c84e1dec0aa38198559808d28cef765da447d3487de98ec01f4e82139ae8",
                                                               "bytes":  108024322,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.9",
                          "channel":  "stable",
                          "released":  "2026-06-26",
                          "title":  "PinDrift 1.0.9",
                          "summary":  "Performance + footprint pass for older / low-end PCs: faster launch, smaller download, lighter background CPU, and an even lighter Performance mode.",
                          "sections":  {
                                           "changed":  [
                                                           "Faster, lighter launch: text no longer waits on a web-font download to paint, and the Apple Devices check is a fast probe instead of a PowerShell call on every start.",
                                                           "Smaller download and install: the bundle drops unused image-codec libraries and dead assets, and the in-app UI is minified for quicker loading on slow machines.",
                                                           "Performance mode is even lighter: it stops more background work, skips extra map layers, and fully disables the FPS overlay.",
                                                           "Quieter background CPU: the engine no longer re-checks Developer Mode every poll and skips the Android probe when no Android device is connected."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "53aec38d28fe73c77c50823f08b586d66e52b97fcb704c3b8acd595bbb5cdd3d",
                                                               "bytes":  108024093,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.8",
                          "channel":  "stable",
                          "released":  "2026-06-25",
                          "title":  "PinDrift 1.0.8",
                          "summary":  "Lower memory use: frees cached map tiles after a sustained minimize, and a thinner tile cache in Performance mode.",
                          "sections":  {
                                           "changed":  [
                                                           "PinDrift now frees its cached map tiles after the window has been minimized for a while (the common \u0027minimized while a spoof runs\u0027 state); they re-load automatically when you return. A quick minimize/restore does not purge, so there is no tile flicker during normal use.",
                                                           "Performance mode now also keeps a thinner map-tile cache in memory."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "cb41b38212a62a63d2ce1c1ca51923bfca6028ace71ffde42bcae5c738efa374",
                                                               "bytes":  112173007,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.7",
                          "channel":  "stable",
                          "released":  "2026-06-25",
                          "title":  "PinDrift 1.0.7",
                          "summary":  "New Performance mode: a Settings toggle that cuts GPU and CPU usage for older or battery-powered machines.",
                          "sections":  {
                                           "added":  [
                                                         "Performance mode (Settings -\u003e Display): removes the glass blur and shadows, stops background animations, caps the frame rate, makes the map move instantly, and slows background updates. Off by default; spoofing speed and accuracy are unaffected."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "29745a43387694248b10dfaafdd9e5b46418c24722e66bb2d29ebbcc7e9ba138",
                                                               "bytes":  112172466,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.6",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.6",
                          "summary":  "Fixes a false \u0027active on another PC\u0027 lock, keeps you signed in across updates, and restores the Windows taskbar icon.",
                          "sections":  {
                                           "fixed":  [
                                                         "Fixed a false \u0027This license is active on another PC\u0027 lock that could appear on the same PC after an update. Your device identity is now stable across network-adapter changes (iPhone over USB, Tailscale, VPNs), and the server automatically heals a binding whose hash shifted.",
                                                         "You now stay signed in across updates: your app data (login and install identity) is preserved on update and reinstall instead of being cleared.",
                                                         "Removed a spurious \u0027No device connected\u0027 (PND-9030) error that could appear on launch before a phone was plugged in.",
                                                         "Restored the missing Windows taskbar icon."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "6fc2cdf6095595dfd39e47a39ff130af5af3f13e36432f240ad574113cf4219d",
                                                               "bytes":  112170431,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.5",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.5",
                          "summary":  "Tutorial step card now stays fully on-screen near any window edge.",
                          "sections":  {
                                           "fixed":  [
                                                         "The first-launch tutorial card could be cut off below the window on the Device Control, Toolbar, and Discord steps; it now senses the window edge and flips or clamps to stay fully visible, and re-positions on resize."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "6d19ec75b09ebf838f70f4d365ca367488aed62bea4bbcd6cb6b44e2090f3d2e",
                                                               "bytes":  112162803,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.4",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.4",
                          "summary":  "Much faster install: the app now writes ~1,160 files instead of ~6,700.",
                          "sections":  {
                                           "changed":  [
                                                           "Removed a 5,500-file code-autocompletion library (jedi) that was bundled transitively but never used at runtime. Fresh installs and auto-updates are dramatically quicker because Windows Defender has far fewer files to scan."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "05d887f6edcab069824a530c86bc47f065d669c0c7ad75c632e452983ad0abc3",
                                                               "bytes":  112162442,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.3",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.3",
                          "summary":  "Satellite and dark by default, plus a refreshed first-launch tutorial.",
                          "sections":  {
                                           "changed":  [
                                                           "Default map is now Satellite, with the dark theme.",
                                                           "First-launch tutorial now covers all three tabs (Teleport, Route, Anti-Speed) and adds steps for Device Control, the toolbar icons, and the community Discord.",
                                                           "Removed a stray theme toggle that overlapped the tutorial."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "83076f5cb306bf9cd4ac1c16449862eeb8c1edd0362152a58bef8413d439bb97",
                                                               "bytes":  116179695,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.2",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.2",
                          "summary":  "Fixes the update notification overlapping the window controls, and a spurious \u0027No device selected\u0027 error that could appear on startup with a phone connected.",
                          "sections":  {
                                           "fixed":  [
                                                         "Update notification toast moved below the title bar so it no longer overlaps the minimize / maximize / close controls.",
                                                         "Removed a spurious \u0027No device selected\u0027 (PND-9030) error on startup: the sticky-lock auto-resume no longer reports an error before the device selection is ready."
                                                     ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "8502f7ef0c014310d66511a1174d03b384519f4b18b57c57ec55de7780488709",
                                                               "bytes":  116179308,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.1",
                          "channel":  "stable",
                          "released":  "2026-06-21",
                          "title":  "PinDrift 1.0.1",
                          "summary":  "Maintenance release that validates the automatic in-app updater end to end. No functional changes versus 1.0.0.",
                          "highlights":  [
                                             "Confirms background auto-download + one-click restart updating"
                                         ],
                          "sections":  {
                                           "changed":  [
                                                           "Version bump to 1.0.1; no functional changes from 1.0.0."
                                                       ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "3e252a7434d1297d8b491a9710f4232168a335087aa3d873905535b68c558335",
                                                               "bytes":  116178740,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "1.0.0",
                          "channel":  "stable",
                          "released":  "2026-06-20",
                          "title":  "PinDrift 1.0",
                          "summary":  "The first stable release. Independent multi-device control lets you place and move each connected iPhone separately, with per-device routes and drag-to-move pins. Anti-Speed adds a phone-side speed governor handed off by QR, and new devices auto-open a guided setup sheet.",
                          "highlights":  [
                                             "Independent multi-device control: each connected iPhone gets its own location, route, and saved spot - they no longer all move together",
                                             "Per-device routes: run different routes on different phones at the same time",
                                             "Drag a device\u0027s pin directly on the map to move it",
                                             "Auto-detect: plug in a new iPhone and PinDrift opens the setup sheet automatically",
                                             "Anti-Speed: a phone-side live speed governor you hand off from the desktop via QR",
                                             "Persist-after-disconnect lock, kept in sync between the desktop and the phone remote"
                                         ],
                          "sections":  {
                                           "added":  [
                                                         "Per-device (per-UDID) control plane: independent placement, routes, and lock state for every connected iPhone.",
                                                         "Auto-detect new device: connecting an unconfigured iPhone opens a guided per-device setup sheet.",
                                                         "Draggable secondary-device map pins.",
                                                         "Anti-Speed phone module: a live accelerometer + heading speed governor, handed off from the desktop tab via a QR code.",
                                                         "Phone remote-control hand-off for driving a session from the phone."
                                                     ],
                                           "changed":  [
                                                           "App version bumped to 1.0.0 across the installer, backend, and UI.",
                                                           "The lock control is now strictly a persist-after-disconnect setting, kept in sync between the desktop and the phone remote."
                                                       ],
                                           "known_issues":  [
                                                                "The installer is unsigned; SmartScreen shows \u0027Windows protected your PC\u0027. Verify the SHA-256 against this page or /dev/smartscreen.html before running.",
                                                                "macOS host build is not yet available; PinDrift is Windows-only on the host side for now.",
                                                                "Multi-device is validated in simulation and in single-device use; running 2+ physical iPhones at once is newly shipped in 1.0."
                                                            ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/win",
                                                               "sha256":  "b73ab164e533402b6c2635d56ca1355c1bdf012c10bb1003f0a35c2d5a25f84d",
                                                               "bytes":  116178839,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "0.2.0-preview",
                          "channel":  "beta",
                          "released":  "2026-05-11",
                          "title":  "Tools tab preview",
                          "summary":  "New Tools tab introduces geofences, recordings, triggers, convoy mode, course importer, and the measure tool. Pin annotations and favorite folders ship alongside. The HTTP API and CLI design is locked; implementation lands in 0.2.0 final.",
                          "highlights":  [
                                             "Geofence designer: draw circles or polygons on the map, then fire enter / exit / dwell on demand to test app triggers",
                                             "Recorder / replay: capture the real GPS trace from your phone over time, replay it later",
                                             "Triggers \u0026 scheduling: time-of-day, geofence, and calendar-based scenario triggers",
                                             "Convoy mode: multiple iPhones move together along a route with per-device offsets",
                                             "Course importer: paste a public Strava / RideWithGPS / Komoot URL to pull a route into the Route tab",
                                             "Mixed-mode routes: walk -\u003e drive -\u003e walk legs with per-leg mode + speed",
                                             "Pin annotations: notes on waypoints and favorites",
                                             "Favorite folders: group favorites into Home / Office / QA / Demo categories",
                                             "Measure tool: click two points for distance and bearing"
                                         ],
                          "sections":  {
                                           "added":  [
                                                         "New top-level Tools tab in the sidebar.",
                                                         "Geofences: draw circles or polygons on the map, persist as named regions with metadata, and trigger enter / exit / dwell actions from the tools list.",
                                                         "Recordings: capture mainPin location samples once per second, save as named recordings, replay at original tempo. Export individual recordings as JSON for sharing.",
                                                         "Triggers / scheduling: time-of-day, geofence-transition, and calendar-tagged triggers persist between launches; enable / pause each independently.",
                                                         "Convoy mode: roster of all connected iPhones; designate one as anchor and configure per-device north/east offsets in meters. Apply to fan a single route across the convoy.",
                                                         "Course importer: paste a public Strava / RideWithGPS / Komoot URL. PinDrift verifies the host and imports the course into the Route tab.",
                                                         "Measure tool: click two points on the map. Distance in metric + imperial. Bearing in degrees + cardinal direction.",
                                                         "Pin annotations: optional note field on waypoints and favorites; stored in scenario export.",
                                                         "Favorite folders: optional folder name per favorite. Folders are collapsible, renameable, and persist their collapsed state across launches.",
                                                         "Mixed-mode routes: new \u0027Mixed\u0027 option in Route mode segmented control. Insert leg breaks between waypoints; each leg has its own mode and speed cap.",
                                                         "Anti-crack hardening architecture document at docs/hardening-architecture.md (internal).",
                                                         "HTTP API + CLI design document at docs/api-and-cli.md (internal). Implementation targeting 0.2.0 final."
                                                     ],
                                           "changed":  [
                                                           "Sidebar grew from four tabs to five (Device, Location, Route, Tools, Settings).",
                                                           "Tab-switcher hides the static-spoof pin on tabs where it would compete with other primary visuals (Route, Tools, Settings).",
                                                           "License policy: previously \u0027one active host PC, unlimited free transfers, unlimited phones connected\u0027. Now \u0027one active host PC, one free transfer per 180-day window, up to 10 phones connected\u0027. The 180-day cooldown prevents license-as-a-service abuse; emergency transfers (theft, hardware failure) can still be expedited with documentation. The 10-phone cap reflects the realistic single-host ceiling on commodity hardware - see dev/multi-device-scaling.html for the engineering reasoning. Existing v0.1.0 licenses are grandfathered: the cooldown only begins on the next transfer initiated after May 11, 2026."
                                                       ],
                                           "known_issues":  [
                                                                "Recorder samples are taken from the static-spoof pin in mockup mode. In production they come from the daemon\u0027s per-device location stream.",
                                                                "Course importer\u0027s mockup mode generates a plausible route around the current pin; production daemon performs the real fetch + GPX parse server-side to avoid CORS.",
                                                                "Calendar trigger backend is stubbed; v0.2.0 final integrates with Outlook / Google Calendar via OAuth."
                                                            ]
                                       }
                      },
                      {
                          "version":  "0.1.0",
                          "channel":  "beta",
                          "released":  "2026-05-09",
                          "title":  "Public beta",
                          "summary":  "First public build of PinDrift. iOS spoofing, multi-device, wireless mode, Windows installer, and a full website ship together.",
                          "highlights":  [
                                             "iOS 17+ tunneling via the developer-disk-image channel (RemoteXPC tunneld)",
                                             "Live map, static spoof, routes (walk / bike / drive), favorites, presets, match clock",
                                             "Multi-device fan-out for Lifetime accounts",
                                             "Wireless mode after one-time USB pair",
                                             "Frameless Electron UI with custom title bar"
                                         ],
                          "sections":  {
                                           "added":  [
                                                         "PinDrift launcher (Python / PyInstaller) with self-elevation to admin so Apple\u0027s mobile-device pipe is reachable on locked-down machines.",
                                                         "Splash + tray UI: native splash on cold boot, system-tray icon for resume / pause / quit while the UI is hidden.",
                                                         "Single-instance guard via a Win32 named mutex (Global\\PindriftSingleton). Launching twice raises the already-running window.",
                                                         "Managed-process supervisor for tunneld (port 49151) and the PinDrift daemon (port 49152). Crashes are restarted with exponential backoff; persistent failure surfaces a tray notification.",
                                                         "Tunneld watchdog: cross-checks usbmuxd against tunneld every 5 seconds; if tunneld is blind to a phone usbmuxd can see for more than 15 seconds, tunneld is restarted in place.",
                                                         "Auto-start at login via Windows Task Scheduler (opt-in during install).",
                                                         "Crash reporter: bundles the last 5 minutes of logs, scrubs lat/lng with a generic regex sweep before upload, requires explicit user confirmation to send.",
                                                         "DPAPI-encrypted local license token so the activation survives reboots without re-entering credentials.",
                                                         "Damm-checksum 33-character license keys (PINDRIFT-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX, 125 bits, Crockford base32).",
                                                         "Frameless Electron UI with custom Minimize / Maximize / Close controls wired through context-isolated IPC.",
                                                         "Frontend Settings panel cleanup: subscription tier and billing references removed (we\u0027re not subscription anymore); collapsible details for advanced toggles.",
                                                         "Single-phone UX: the per-row mini-card hides when only one device is connected; IDLE / SPOOFING pill moves into the main device-card header.",
                                                         "Refund modal aligned with the 14-day / 5-minute refund policy and the Lunis Group competitor-termination clause.",
                                                         "Agreement modal on first launch: blocks the tutorial until the user accepts Terms, Privacy, and Acceptable Use; AAA-arbitration / Fulton County GA forum.",
                                                         "GPX import for routes (drop a .gpx from a bike computer / watch onto the Route tab)."
                                                     ],
                                           "changed":  [
                                                           "Repositioned: PinDrift now sells one host PC at a time, with a 180-day cooldown between transfers. Previous marketing language about \u0027unlimited PCs\u0027 and \u0027unlimited transfers\u0027 has been retired across all affected pages.",
                                                           "Refund policy refactored: zero-usage gate replaced with a 14-day / under-5-minute cumulative active-spoof window. Heartbeat counters (spoof_seconds) enforce this server-side at refund time.",
                                                           "Account model: one license, one active host PC, up to 10 connected phones, one free PC transfer per 180-day window via the web portal.",
                                                           "Pricing simplified to Lifetime $30 one-time, Enterprise custom. Subscription tier was never shipped and has been removed from the codebase.",
                                                           "Country gating: PinDrift is US-only for v0.1. We do not sell to EU / EEA / UK / Switzerland; the checkout will block these countries until the GDPR work in v0.3 lands.",
                                                           "Trademark notices on /vs.html and /dev/apps-and-detection.html updated to name every referenced third party for nominative-fair-use protection."
                                                       ],
                                           "fixed":  [
                                                         "Tunneld \u0027blind state\u0027 after USB replug events: previously required a manual restart, now self-heals via the watchdog within ~15s.",
                                                         "PowerShell mojibake on terms.html (Ãƒâ€šÃ‚Â§ for Ã‚Â§): files were being read as Latin-1 and re-written as UTF-8, double-encoding the section sign. Build process now pins UTF-8 round-trip.",
                                                         "License card layout: long keys no longer wrap weirdly; Show/Hide toggle now lives in the row header (1Password-style code-block).",
                                                         "FAQ inconsistencies: license / move-PC / company-shutdown questions rewritten to match the 1-host-PC + free-transfers model.",
                                                         "Apple Devices service misdiagnosis: launcher used to claim \u0027Apple Mobile Device Service is not installed\u0027 even when the Microsoft Store Apple Devices app was running. Detection now checks for the usbmuxd TCP socket on port 27015 instead of the legacy Windows service name."
                                                     ],
                                           "security":  [
                                                            "Update check is the only outbound call during normal operation besides the licensing heartbeat. The request carries no UDID, email, license, or version-fingerprint information.",
                                                            "Update check pins to https://pindrift.app and rejects cross-host redirects.",
                                                            "Local license tokens are DPAPI-bound to the Windows user account, so copying the token file to another user or machine does not authorize that user."
                                                        ],
                                           "known_issues":  [
                                                                "Code-signing certificate is not yet in place. The installer is unsigned in v0.1.0; SmartScreen will show \u0027Windows protected your PC\u0027. See /dev/smartscreen.html for an explanation and the SHA-256 verification path.",
                                                                "macOS host build is not available. PinDrift v0.1 is Windows-only on the host side. macOS support is on the roadmap but not in v0.1.",
                                                                "Android device support is feature-flagged off in the v0.1.0 installer; the daemon\u0027s Android codepath exists but is not surfaced in the UI yet.",
                                                                "Apple Pay / contactless payments will not work while Developer Mode is enabled on the phone (Apple\u0027s choice, not ours). Toggle Developer Mode off when you need to tap a card.",
                                                                "Step counters in Apple Health and Google Fit are accelerometer-based; spoofing GPS will not add to your step total."
                                                            ]
                                       },
                          "download":  {
                                           "windows_x64":  {
                                                               "url":  "https://pindrift.app/download/Pindrift-Setup-0.1.0.exe",
                                                               "sha256":  "0000000000000000000000000000000000000000000000000000000000000000",
                                                               "bytes":  0,
                                                               "signed":  false
                                                           }
                                       }
                      },
                      {
                          "version":  "0.0.7",
                          "channel":  "internal",
                          "released":  "2026-04-22",
                          "title":  "Pre-release seven (internal)",
                          "summary":  "Final internal build before the public beta. Frozen for QA.",
                          "highlights":  [
                                             "Internal-only build used to validate the full installer and updater chain"
                                         ],
                          "sections":  {
                                           "added":  [
                                                         "Inno Setup installer with the auto-start checkbox and transparent unsigned-installer disclosure card on the welcome page.",
                                                         "build_icon.py and hash_release.py utilities for reproducible release artifacts.",
                                                         "version.json + SHA256SUMS.txt generation in the release pipeline."
                                                     ],
                                           "changed":  [
                                                           "Splash window moved from the main thread to a worker thread so the launcher\u0027s elevation prompt no longer freezes it.",
                                                           "Terms Ã‚Â§ 13 broken into 13.1 (for-cause), 13.2 (discretionary), 13.3 (operational discontinuation), 13.4 (effect), 13.5 (competitor with Lunis Group definition)."
                                                       ],
                                           "fixed":  [
                                                         "Spec file uac_admin=True now actually requests elevation on first run instead of silently failing under PyInstaller --onefile.",
                                                         "Tray icon double-click no longer races the single-instance mutex during cold boot."
                                                     ]
                                       }
                      },
                      {
                          "version":  "0.0.6",
                          "channel":  "internal",
                          "released":  "2026-04-08",
                          "title":  "Pre-release six (internal)",
                          "summary":  "Architecture lockdown: PinDrift.exe launcher supervises tunneld + daemon + Electron.",
                          "sections":  {
                                           "added":  [
                                                         "ManagedProcess supervisor abstraction with restart-with-backoff and tray-notification hooks.",
                                                         "Crash bundle scrubber: regex sweep over the last 5 minutes of logs strips coordinates before the bundle leaves the machine.",
                                                         "Initial Electron preload bridge exposing window.pindrift API (minimize, maximize-toggle, close, is-maximized)."
                                                     ],
                                           "changed":  [
                                                           "License key format finalized: 33 characters, Crockford base32, Damm checksum. Length increased from 25 to 33 to push brute-force entropy past 125 bits."
                                                       ],
                                           "fixed":  [
                                                         "Two-process race during shutdown where the daemon kept the tunneld socket open after the launcher exited; daemon now drops the listener on SIGTERM."
                                                     ]
                                       }
                      },
                      {
                          "version":  "0.0.5",
                          "channel":  "internal",
                          "released":  "2026-03-19",
                          "title":  "Pre-release five (internal)",
                          "summary":  "Multi-device fan-out lands. Frontend rewrite for the device tab.",
                          "sections":  {
                                           "added":  [
                                                         "Device tab: bulk-select pill (All / None) at the top of the device list.",
                                                         "Multi-device action fan-out for Apply / Stop / Route across selected devices.",
                                                         "Per-device editing: uncheck a phone to leave it alone while you edit another.",
                                                         "Match-clock display in the SPOOFING banner (timezone + local time at the spoofed location)."
                                                     ],
                                           "changed":  [
                                                           "Multi-device gated to Lifetime tier (token-cap enforcement, client-side); free-tier accounts see the second device but the Apply button is disabled with a tooltip."
                                                       ]
                                       }
                      },
                      {
                          "version":  "0.0.4",
                          "channel":  "internal",
                          "released":  "2026-02-28",
                          "title":  "Pre-release four (internal)",
                          "summary":  "Routes: walk, bike, drive, custom.",
                          "sections":  {
                                           "added":  [
                                                         "Route tab with waypoint editing, GPX import.",
                                                         "Walk (~5 km/h), Bike (~19 km/h), Drive (snaps to roads, posted speed limits), Custom (set kph) modes.",
                                                         "Driver type selector for Drive mode: Normal / 5-Over / Speeder.",
                                                         "Behavior toggles: Loop, Stop-and-go, Jitter (~4 m GPS noise)."
                                                     ]
                                       }
                      },
                      {
                          "version":  "0.0.3",
                          "channel":  "internal",
                          "released":  "2026-02-04",
                          "title":  "Pre-release three (internal)",
                          "summary":  "First fully wireless session.",
                          "sections":  {
                                           "added":  [
                                                         "Wireless mode: after a one-time USB pair, PinDrift talks to the phone over Wi-Fi.",
                                                         "Headless always-on build skeleton."
                                                     ],
                                           "fixed":  [
                                                         "Wireless reconnect after the phone roamed to a different Wi-Fi network used to require a PinDrift restart. Now reconnects automatically within ~10 seconds."
                                                     ]
                                       }
                      },
                      {
                          "version":  "0.0.2",
                          "channel":  "internal",
                          "released":  "2026-01-12",
                          "title":  "Pre-release two (internal)",
                          "summary":  "Map UI, favorites, presets.",
                          "sections":  {
                                           "added":  [
                                                         "Mapbox-based live map with Standard / Terrain / Satellite styles.",
                                                         "Favorites: save the locations you spoof to often, one-click recall.",
                                                         "Presets: collapsible grid of well-known places (Times Square, Apple Park, Eiffel Tower, ...).",
                                                         "Map labels overlay: street + place names + country borders, including over satellite tiles (Google-Maps-style Hybrid)."
                                                     ]
                                       }
                      },
                      {
                          "version":  "0.0.1",
                          "channel":  "internal",
                          "released":  "2025-12-21",
                          "title":  "Pre-release one (internal)",
                          "summary":  "First working spoof.",
                          "sections":  {
                                           "added":  [
                                                         "End-to-end proof: PinDrift moves an iPhone\u0027s CLLocationManager to a chosen lat/lng via tunneld + DT_Simulate_Location.",
                                                         "Project skeleton: pindrift-backend (Python), pindrift-electron (UI), pindrift-installer (Inno Setup), pindrift-mockup (web preview)."
                                                     ]
                                       }
                      }
                  ]
}