{
  "entries": [
    {
      "product": "desktop",
      "version": "0.2.196",
      "date": "2026-09-14",
      "notes": "- The sign-in reminder introduced in 0.2.195 never fired: the server reports an expired or revoked account session with a different error code than the app was listening for, so the home screen only said your Worker \"can't check right now\". The app now recognises the server's actual answer and offers to sign in again, while your device connection stays up.\n- Bundles CLI 0.2.179."
    },
    {
      "product": "cli",
      "version": "0.2.179",
      "date": "2026-09-14",
      "notes": "- `nodebase status --refresh-session`, `nodebase worker home` and the account commands now recognise the server's actual \"session no longer valid\" answer, renew the session when the server allows it, and say \"sign in again\" when it does not. A permission the account genuinely lacks is still reported as such, not as a sign-out."
    },
    {
      "product": "desktop",
      "version": "0.2.195",
      "date": "2026-09-14",
      "notes": "- If your account session stops being accepted by the server while your device is still connected, the home screen now says so and offers to sign in again, without disconnecting or restarting the app. Your Worker comes back as soon as you sign in.\n- Bundles CLI 0.2.178."
    },
    {
      "product": "cli",
      "version": "0.2.178",
      "date": "2026-09-14",
      "notes": "- `nodebase worker home --open` no longer offers the Assistant section to accounts the Assistant preview has not reached; accounts in the preview keep the one-step sign-in. Hiding the section on the page needs Worker 0.2.67 or later.\n- `nodebase status --refresh-session` checks whether the server still accepts this account session and renews it when it can; plain `status` and `status --local` stay read-only."
    },
    {
      "product": "ios",
      "version": "1.1 (32)",
      "date": "2026-09-14",
      "notes": "- Nodebase is now an iPad app, not a phone app stretched across a larger screen: every screen is laid out for the wider display, and the iPad turns in all four orientations\n- Signing in asks for your email first and then shows the one step that applies to your account — the emailed code for almost everyone, or the password screen for the few accounts that have one. New and unknown accounts open Web registration, where the Worker location is chosen\n- Home names the exit a switch is moving to, so choosing one and going back to Home no longer looks like nothing was received, and it stops saying \"The tunnel did not come up\" or \"Couldn't stop the tunnel\" once the tunnel has in fact connected or stopped\n- On a network where IPv6 has stopped working, the app notices while you stay connected — not only when you switch networks — and stops carrying IPv6 through the tunnel. This clears a case where part of a page or an app's content stalled for several seconds and then failed while everything else kept working\n- Your carrier's Wi-Fi Calling and text messages over Wi-Fi now always resolve and connect directly, in every mode including Global\n- After a change of network the tunnel follows the link iOS is actually using, instead of picking a cellular context that carries nothing and timing out on every request\n- While a connection is still being set up on a signed-out account, the app says \"Sign in to connect\" instead of claiming the tunnel keeps running, and diagnostic reports now record what the app concluded about IPv6 and the evidence behind it"
    },
    {
      "product": "desktop",
      "version": "0.2.194",
      "date": "2026-09-13",
      "notes": "- Opening Worker Home from your Worker card signs you in to Files and Assistant in one step, and the Assistant session stays connected while the page is open instead of expiring after 90 seconds. This needs a Worker updated to 0.2.65 or later; on earlier Workers Assistant still connects but expires after 90 seconds.\n- Bundles CLI 0.2.177."
    },
    {
      "product": "cli",
      "version": "0.2.177",
      "date": "2026-09-13",
      "notes": "- `nodebase worker home --open` signs you in to Files and Assistant together, and the running Nodebase client keeps the Assistant session alive while the page is open (Worker 0.2.65 or later).\n- When Worker Home was opened from an older client, Assistant now tells you exactly how to connect instead of pointing at a command that only grants file access."
    },
    {
      "product": "desktop",
      "version": "0.2.193",
      "date": "2026-09-10",
      "notes": "- Open Worker Home from your Worker card and arrive signed in in your default browser.\n- SSH setup remains available in Worker details."
    },
    {
      "product": "cli",
      "version": "0.2.176",
      "date": "2026-09-10",
      "notes": "- Run `nodebase worker home --open` to open your Worker workspace in the default browser without copying a login link or setting up SSH first."
    },
    {
      "product": "desktop",
      "version": "0.2.192",
      "date": "2026-09-10",
      "notes": "- Fix a Windows disconnect race that could leave the system proxy enabled after the tunnel had already stopped.\n- Includes the new Off default outside mainland China and terminal proxy settings that follow System Proxy mode."
    },
    {
      "product": "cli",
      "version": "0.2.175",
      "date": "2026-09-10",
      "notes": "- On Windows, ignore terminated process records when checking whether disconnect has finished, so system proxy settings are released promptly."
    },
    {
      "product": "desktop",
      "version": "0.2.191",
      "date": "2026-09-10",
      "notes": "- New devices outside mainland China default to Device traffic Off, keeping ordinary Internet access unchanged while the local proxy remains available on demand.\n- Terminal proxy settings now follow System Proxy mode and clear Nodebase-managed variables when switched off.\n- Enter an existing login code without requesting another, and retry a disconnect that has not finished."
    },
    {
      "product": "cli",
      "version": "0.2.174",
      "date": "2026-09-10",
      "notes": "- Default Device traffic to Off outside mainland China or when the access region is unknown, preserving explicit settings.\n- Enable terminal proxy hooks with System Proxy and release managed variables in Off or TUN mode without removing custom proxies.\n- Detect stale Linux system proxy settings even when Device traffic is Off."
    },
    {
      "product": "desktop",
      "version": "0.2.190",
      "date": "2026-09-10",
      "notes": "- Enter an email code you already received without requesting another, including when sending is temporarily limited.\n- Disconnect now checks that the tunnel has actually stopped, even when local runtime records are missing.\n- An incomplete disconnect offers a clear retry action instead of leaving an endless spinner."
    },
    {
      "product": "cli",
      "version": "0.2.173",
      "date": "2026-09-10",
      "notes": "- Recover clean disconnects when a running tunnel has lost its local process record.\n- Report an error if the tunnel remains active after a stop request, instead of reporting a successful disconnect."
    },
    {
      "product": "ios",
      "version": "1.0 (28)",
      "date": "2026-09-10",
      "notes": "- On a network where IPv6 has stopped working, the app now notices while you stay connected — not only when you switch networks — and stops carrying IPv6 through the tunnel\n- This clears a case where part of a page or an app's content stalled for several seconds and then failed, while everything else kept working\n- Diagnostic reports now record what the app concluded about IPv6 and the evidence behind it, so a report can explain this instead of only listing the failures\n- Your carrier's Wi-Fi Calling and text messages over Wi-Fi now always resolve and connect directly, in every mode including Global, so the tunnel cannot get in their way"
    },
    {
      "product": "android",
      "version": "1.0 (12)",
      "date": "2026-09-10",
      "notes": "- On a network where IPv6 has stopped working, the app now notices while you stay connected — not only when you switch networks — and stops carrying IPv6 through the tunnel\n- Affected pages and apps then fail quickly and retry over IPv4, instead of stalling for several seconds first\n- Diagnostic reports now record what the app concluded about IPv6 and the evidence behind it, and they now carry the sleep-clock section that was missing on Android\n- Your carrier's Wi-Fi Calling and text messages over Wi-Fi now always resolve and connect directly, in every mode including Global, so the tunnel cannot get in their way"
    },
    {
      "product": "ios",
      "version": "1.0 (27)",
      "date": "2026-09-09",
      "notes": "- While a connection is still being set up on a signed-out account, the app now says \"Sign in to connect\" instead of claiming the tunnel keeps running\n- The sign-in step is unchanged; connecting, disconnecting and the tunnel itself are unchanged"
    },
    {
      "product": "android",
      "version": "1.0 (11)",
      "date": "2026-09-09",
      "notes": "- While a connection is still being set up on a signed-out account, the app now says \"Sign in to connect\" instead of claiming the tunnel keeps running\n- The sign-in step is unchanged; connecting, disconnecting and the tunnel itself are unchanged"
    },
    {
      "product": "desktop",
      "version": "0.2.189",
      "date": "2026-09-09",
      "notes": "- Explore common Worker uses from the existing Worker page: websites, network exit, code tasks, remote AI, file sharing, and daily automation\n- Choose an example and work mode online, then copy a task for your AI; guidance stays current without another Desktop update\n- Keeps the existing Worker controls and compact layout"
    },
    {
      "product": "desktop",
      "version": "0.2.188",
      "date": "2026-09-09",
      "notes": "- Publish a local or LAN TCP service on a fixed Worker port, accessible from the Worker and devices with private access to it\n- Use a simpler form with SSH and Web presets, explicit ports, separate drafts, and copyable connection addresses\n- Pause individual ports or all publishing, with automatic recovery after reconnecting\n- Replaces the previous sharing modes: old rules are turned off and must be added again. Requires an updated Worker\n- Bundles CLI 0.2.172"
    },
    {
      "product": "cli",
      "version": "0.2.172",
      "date": "2026-09-09",
      "notes": "- Publish local port 22 as Worker port 2223 with `share add ssh --local-port 22 --port 2223 --worker \u003cid\u003e`\n- Each rule selects its Worker and explicit port; defaults to Worker localhost and private-network access, with `--access worker` for localhost only\n- Use `--disabled` for drafts and `share pause/resume \u003cname\u003e` or `--all`; publishing reports success only after the requested endpoints are ready\n- Removes automatic port allocation, Device ingress mode, `--on`, and the old enable/disable commands. Old rules are turned off and must be added again"
    },
    {
      "product": "desktop",
      "version": "0.2.187",
      "date": "2026-09-09",
      "notes": "- Copy a ready-to-use AI prompt or open the Nodebase Skill from the bottom of your Worker page\n- Help your existing AI work locally or directly on Worker, with guidance for websites, scheduled tasks, and persistent projects\n- Keeps the existing Worker controls and layout"
    },
    {
      "product": "desktop",
      "version": "0.2.186",
      "date": "2026-09-08",
      "notes": "- Map a local TCP service directly to a localhost port on your Worker, with an SSH preset for local port 22 and Worker port 2223\n- Choose the listening location and port, copy the exact connection address, and save and enable sharing in one step\n- Restores persistent mappings after interruptions and reports occupied Worker ports without changing them\n- Keeps Connect available after a reboot when automatic connection is off and the tunnel is stopped\n- Bundles CLI 0.2.171"
    },
    {
      "product": "cli",
      "version": "0.2.171",
      "date": "2026-09-08",
      "notes": "- New port sharing rules listen on Worker localhost by default; use `--port 2223` to publish a local SSH service\n- Use `--on device` to keep a listener on the Device private address; existing rules retain their listening location\n- Reconnects persistent Worker mappings and closes active forwarding when sharing is disabled"
    },
    {
      "product": "desktop",
      "version": "0.2.185",
      "date": "2026-09-08",
      "notes": "- macOS now requests permission before replacing a connected background tunnel after an update, including when launch at login is turned off\n- Bundles CLI 0.2.170"
    },
    {
      "product": "cli",
      "version": "0.2.170",
      "date": "2026-09-08",
      "notes": "- Fixes macOS Desktop update recovery when the previous background tunnel requires administrator permission to stop"
    },
    {
      "product": "desktop",
      "version": "0.2.184",
      "date": "2026-09-08",
      "notes": "- Share local Web, SSH and other TCP ports privately with a selected Worker from the new Port sharing page, with connection instructions and copyable addresses\n- Choose an expiry and bandwidth limits for shared ports, and stop access at any time. Sharing starts off until you explicitly enable it\n- Settings are grouped into connection, app preferences, updates and support, and account sections. Terminal tools are collapsed by default\n- Bundles CLI 0.2.169"
    },
    {
      "product": "cli",
      "version": "0.2.169",
      "date": "2026-09-08",
      "notes": "- Share selected local or private-network TCP ports with one authorized Worker using the new share commands\n- Control expiry, total bandwidth and connection limits, inspect sharing status, and revoke active access immediately\n- Valid persistent and unexpired sharing rules resume when the Device reconnects. Windows includes a scoped firewall setup command when needed"
    },
    {
      "product": "desktop",
      "version": "0.2.183",
      "date": "2026-09-08",
      "notes": "- The window is taller. Home used to need a scrollbar as soon as you were signed in: the connection status, Device traffic, Routing, Internet region and your Worker card no longer fit at once. They do now\n- On Windows the text no longer shifts when a scrollbar appears. The column keeps its width whether or not a page scrolls, so lines stop re-wrapping as content grows\n- Chinese text now asks for a font by name on every platform instead of taking whatever the system offers\n- Bundles CLI 0.2.168, unchanged"
    },
    {
      "product": "desktop",
      "version": "0.2.182",
      "date": "2026-09-07",
      "notes": "- Home reads more clearly: the connection status is the one large heading, the Device traffic note is a single line with a \"Learn more\" for the details, and Rules / Devices / Diagnostics sit on their own row at body size\n- Icons that act as controls (the settings gear, the Worker chevron, close buttons) are now drawn to one weight, buttons share one height, and the dark theme uses a single flat surface\n- Fixed a stray space in the Chinese caption of the \"Terminal tools use Nodebase\" setting\n- Bundles CLI 0.2.168, unchanged"
    },
    {
      "product": "ios",
      "version": "1.0 (26)",
      "date": "2026-09-07",
      "notes": "- Home no longer keeps saying \"The tunnel did not come up\" after the tunnel has in fact connected. The message used to stay under Connected until the next tap, for example when a connection took longer than a minute or when iOS restarted the tunnel by itself\n- The same applies to \"Couldn't stop the tunnel\": it goes away as soon as the tunnel has actually stopped"
    },
    {
      "product": "desktop",
      "version": "0.2.181",
      "date": "2026-09-04",
      "notes": "- Bundles CLI 0.2.168, whose structured output identifies whether it is running on the device or inside a Worker"
    },
    {
      "product": "cli",
      "version": "0.2.168",
      "date": "2026-09-04",
      "notes": "- Device commands now use `nodebase`, while a Worker exposes only `nb`; help and structured output identify the current side instead of mixing both command sets\n- New `nodebase push` previews a safe project transfer before approval, excluding common caches, secret-looking files, and symbolic links by default, and never starting or publishing transferred code\n- Worker guidance now starts from common goals, reports capability reasons and command safety metadata, previews Cron schedules, and checks a managed Web service before explicit public publishing"
    },
    {
      "product": "ios",
      "version": "1.0 (25)",
      "date": "2026-09-04",
      "notes": "- Signing in now asks for your email first and then shows the one step that applies to your account: the emailed code for almost everyone, or the password screen for the few accounts that have one. Nobody is offered a password they do not have, and an account that cannot receive email is never left waiting for a code\n- The code field is focused as soon as it appears, and the explanatory text and links on the welcome and sign-in screens are larger and easier to tap"
    },
    {
      "product": "android",
      "version": "1.0 (10)",
      "date": "2026-09-04",
      "notes": "- Signing in now asks for your email first and then shows the one step that applies to your account: the emailed code for almost everyone, or the password screen for the few accounts that have one. Nobody is offered a password they do not have, and an account that cannot receive email is never left waiting for a code\n- The code and password fields are focused as soon as they appear; the text on the welcome and sign-in screens is larger, and the registration link sits with its text"
    },
    {
      "product": "desktop",
      "version": "0.2.180",
      "date": "2026-09-04",
      "notes": "- The signed-out screen is now explicitly for existing-account sign-in and sends new users to Web registration, where the Worker location is chosen\n- If an email has no Nodebase account, the app now says exactly what happened and opens the registration page instead of exposing an invitation field that cannot complete registration\n- Bundles CLI 0.2.167"
    },
    {
      "product": "cli",
      "version": "0.2.167",
      "date": "2026-09-04",
      "notes": "- New `nodebase web publish \u003cport\u003e` publishes one Workspace HTTP service at a stable public HTTPS address, with commands to inspect, pause, resume, or remove it\n- `nodebase login` is now explicitly login-only: new and unknown accounts are directed to Web registration, where their Worker location is chosen\n- Pasting an invitation into the login-code prompt is refused locally without spending a login attempt and points to the registration page"
    },
    {
      "product": "ios",
      "version": "1.0 (24)",
      "date": "2026-09-04",
      "notes": "- Sign-in is now clearly separated from account creation: new and unknown accounts open Web registration, where the Worker location is chosen\n- The sign-in screen now says that it links this device to the account, while the invitation field has been removed from the app"
    },
    {
      "product": "android",
      "version": "1.0 (9)",
      "date": "2026-09-04",
      "notes": "- Sign-in is now clearly separated from account creation: new and unknown accounts open Web registration, where the Worker location is chosen\n- The sign-in screen now says that it links this device to the account, while the invitation field has been removed from the app"
    },
    {
      "product": "desktop",
      "version": "0.2.179",
      "date": "2026-09-02",
      "notes": "- Windows: fixed an installer defect that could replace the whole system PATH with Nodebase's own folder on machines whose PATH was longer than about a thousand characters, leaving other command-line tools unfound in new terminals. The installer now leaves PATH editing to the bundled CLI, which handles any length and keeps every other entry as it was\n- Windows: uninstalling no longer damages a neighbouring PATH entry whose name starts with Nodebase's folder, such as the standalone CLI's\n- Bundles CLI 0.2.166"
    },
    {
      "product": "cli",
      "version": "0.2.166",
      "date": "2026-09-02",
      "notes": "- Windows: the desktop installer now asks the CLI to add and remove its PATH entry, so a long PATH is read in full instead of being mistaken for an empty one\n- `nodebase shell-proxy on` now writes through a symlinked startup file, such as a `.zshrc` linked from a dotfiles checkout, instead of replacing the link with a detached copy; `off` restores that file in place\n- A startup file whose Nodebase block lost its end marker is reported instead of getting a second block appended over it"
    },
    {
      "product": "desktop",
      "version": "0.2.178",
      "date": "2026-09-02",
      "notes": "- New Settings switch, \"Terminal tools use Nodebase\": command-line tools that read HTTP(S)_PROXY — codex, npm, git, curl — now go through Nodebase instead of bypassing it. It applies to terminals opened after the change; tools that ignore those variables, such as ssh and Docker's daemon, are unaffected. On Windows it covers PowerShell, not Command Prompt or WSL\n- Nothing is set while Nodebase is stopped, so a stopped tunnel leaves your terminal working normally instead of failing every request; if your environment already sets a proxy, Nodebase leaves it alone and says so\n- The Device traffic description now points at that switch instead of only noting that terminal tools bypass the system proxy\n- Bundles CLI 0.2.165"
    },
    {
      "product": "cli",
      "version": "0.2.165",
      "date": "2026-09-02",
      "notes": "- New `nodebase shell-proxy on`: adds one managed block to your shell's startup file so terminal tools reach Nodebase without exporting proxy variables by hand; `nodebase shell-proxy off` removes it and restores the file\n- Turning it on checks itself by opening a real shell and reading the value back, and undoes the change when that shell never runs it\n- `nodebase doctor` now reports when terminals are set up but the shell you are in is not using it\n- Removing Nodebase now also removes that block from your startup file"
    },
    {
      "product": "android",
      "version": "1.0 (8)",
      "date": "2026-09-02",
      "notes": "- Tablets get a tablet layout: text and controls stay in a readable column, and the app calls your device a tablet, not a phone.\n- A new opening screen says what Nodebase does before anything connects.\n- You can sign in with a password as well as an emailed code, and the code field is ready to type into.\n- The clock and status icons stay readable on both light and dark screens."
    },
    {
      "product": "desktop",
      "version": "0.2.177",
      "date": "2026-08-31",
      "notes": "- macOS: the app now recovers automatically within about two minutes when the window freezes after a system graphics crash, instead of appearing permanently unable to start until manually restarted\n- The same fix hardens frozen-window recovery on all platforms"
    },
    {
      "product": "desktop",
      "version": "0.2.176",
      "date": "2026-08-31",
      "notes": "- macOS: the auto-connect-at-startup switch now stays in sync with the system and no longer asks for your password twice\n- macOS: upgrades now correctly recognize startup entries left by older versions, and no longer mistake a separately installed CLI's autostart for the app's own\n- Windows: installer and uninstaller hardening — system proxy and PAC settings are preserved correctly, and a persistent install log is kept for troubleshooting\n- Fixed several truncated labels and untranslated strings across the English and Chinese UI"
    },
    {
      "product": "cli",
      "version": "0.2.164",
      "date": "2026-08-31",
      "notes": "- Windows: more reliable service install, upgrade, and uninstall — stricter ownership and permission checks, cleaner removal of leftover state\n- macOS: desktop auto-connect changes now complete with a single authorization prompt"
    },
    {
      "product": "desktop",
      "version": "0.2.175",
      "date": "2026-08-31",
      "notes": "- Fixed slow or failing connections on networks that advertise IPv6 without a working IPv6 path (delivered via the bundled CLI 0.2.163)\n- Clearer wording for system proxy mode: apps that do not read the system proxy are not covered by it"
    },
    {
      "product": "cli",
      "version": "0.2.163",
      "date": "2026-08-29",
      "notes": "- Fixed slow or failing direct connections on networks that advertise IPv6 without a working IPv6 path"
    }
  ]
}
