{
  "schema": 1,
  "product": "miblo",
  "version": "1.22.0",
  "date": "2026-10-07",
  "notes": "# Miblo 1.22.0\n\n- **Up to four Wi-Fi networks, no more factory resets (firmware 1.22.0):** take your Miblo from home to the office and back and it joins whichever saved network is around, the strongest one (the one it used last wins a near tie). If none of them shows up for two minutes it opens its setup network as before, but now nothing is erased: pairings, name, pet and settings all stay, and it keeps looking for its networks in the background. A network you join through the setup network is added to the list. Your current network is kept on the update.\n- **Change or add Wi-Fi from the settings page:** the new **Wi-Fi** card (after the on-screen code) lists the saved networks and has **Change / add Wi-Fi**: search for networks (with signal bars), type the password and press **Test and save**. Miblo tries the new network while keeping the current one, checks that it reaches the internet, comes back and tells you how it went: saved (with its address on that network), or why not (wrong password, network not found, no internet), with nothing changed. Tick **Make it the main network** to have Miblo move there right away. **Forget** removes a saved network; the one in use is forgotten only after Miblo moved to another saved network that works. The password travels encrypted from the page to your Miblo.\n- **From the terminal:** `miblo wifi list`, `miblo wifi add <name>` (the password at a hidden prompt, or piped on stdin, never on the command line; plus the code on your Miblo's screen) and `miblo wifi forget <name>`. `miblo settings --wifi` opens the settings page at the Wi-Fi card.\n- **Your computer follows your Miblo:** after a move to another network the pairing stays, and your computer finds your Miblo again at its new address by itself.\n- **A simpler settings page:** the top now shows your pet, its name, its address, the firmware version and the Wi-Fi it is on. What people change most is right there (name, pet and look, Wi-Fi, firmware update); everything else sits in sections that open with a tap (screen and schedule, alerts and well-being, about you, looks and community, my pet, paired computers, advanced) and stay the way you left them.\n- **Run your own relay server:** `miblo server set https://…` — open source at github.com/marcus-campos/miblo-relay; the phone and account then never touch miblo.ai.\n- **Fixes:**\n  - In the Miblo app's window, **Code on the screen** on the settings page did nothing: the page asked for the code in a browser dialog the app never shows. The code field, the confirmations (forget a network, remove a computer) and the factory-reset code are now part of the page itself.\n  - A Miblo no longer turns \"unauthorized\" (needing to be paired again) when a Claude Code window not reloaded since the update still runs the previous Miblo next to the new one. The new pairing token is never stored where that older copy would send it in clear, and with firmware 1.22.0 the older copy keeps working for a week after the switch to the new token.\n  - Once an older Miblo is seen running in another window, the current one stays in charge instead of handing your Miblo back to it after a quiet half hour.\n  - `/miblo:status` says when the bridge answering belongs to an older Miblo (reload the other Claude Code windows), and says plainly when a Miblo really needs to be paired again; `/miblo:pair` then shows the code on the gadget's screen.",
  "assets": [
    {
      "name": "miblo-geekmagic_ultra-1.22.0.bin",
      "kind": "firmware",
      "board": "geekmagic_ultra",
      "path": "firmware/1.22.0/miblo-geekmagic_ultra-1.22.0.bin",
      "size": 886368,
      "sha256": "acf4815fbeb8119b186743d6e2296845d0876005ba9d21c9aeffdcd790cf4f3b"
    },
    {
      "name": "miblo-loader-geekmagic_ultra-1.22.0.bin",
      "kind": "loader",
      "board": "geekmagic_ultra",
      "path": "firmware/1.22.0/miblo-loader-geekmagic_ultra-1.22.0.bin",
      "size": 313184,
      "sha256": "91bd1d5c854764ef74ba545fd3746d69ac482fff68eac06ecaf27f411068ee45"
    },
    {
      "name": "miblo-plugin-1.22.0.zip",
      "kind": "plugin",
      "path": "plugin/miblo-plugin-1.22.0.zip",
      "size": 417506,
      "sha256": "b1e6cecd40c9313a6f5fcc6535f50cd0c0a0319ce0980284ff167dbf1d4af4af"
    },
    {
      "name": "Install-Miblo-macOS.zip",
      "kind": "installer",
      "path": "installers/1.22.0/Install-Miblo-macOS.zip",
      "size": 19856,
      "sha256": "9713d077cd99f0f32db092b069c5c9dcc68976e1dff939a51f5286b3a6647271"
    },
    {
      "name": "install.ps1",
      "kind": "installer",
      "path": "installers/1.22.0/install.ps1",
      "size": 68152,
      "sha256": "298a78e9c6c1286a419d070fd37b14731c1d796992bd13e1d89732b1c5e4d7bc"
    },
    {
      "name": "install.sh",
      "kind": "installer",
      "path": "installers/1.22.0/install.sh",
      "size": 63480,
      "sha256": "85f728e771a85e1b67bbb2d14400bc671a05a874f4fba48df8ade16cb2476f0d"
    }
  ]
}
