1.0.6RoachNet for macOS

RoachNet 1.0.6 replaced the bundled Node runtime with a native Swift helper, rebuilt the installer on it, and added the RoachTail control plane the iOS 0.2.0 companion pairs with.

10 October 2026build 1064 min read
On this page
Update to 1.1.3

1.0.6 has a DNS-rebinding hole that 1.0.7 closed, a download problem that 1.1.1 fixed, a Dev pane problem that 1.1.2 fixed, and a privacy problem that 1.1.3 fixes. Use the current release.

Released10 October 2026Version1.0.6, build 106PlatformApple Silicon Mac, macOS 14 or laterInstallerRoachNet-Setup-macOS.dmg, ad-hoc signed, not Apple-notarizedCompanionRoachNet iOS 0.2.0, a separate releaseDownloadNo longer offered. Install the current release.

RoachNet 1.0.6 replaces the bundled Node runtime with a native Swift helper, rebuilds the installer on it, and adds the native RoachTail control plane the iOS 0.2.0 companion pairs with. RoachWares tested it by hand and reviewed it for security before release.

What's new

  • No more bundled Node. The local runtime is roachnet-runtime, a native Swift helper inside RoachNet.app/Contents/Helpers/ built only on Apple system frameworks. It serves the same loopback API as before and runs the iOS companion bridge in-process. The default build refuses to package Node.
  • Native installer. RoachNet Setup checks for Apple Silicon and macOS 14 or later, free disk space and a writable location, stages the install beside the target, boots the staged runtime as a smoke test, and only then swaps it in. Storage is carried across upgrades; a failed install rolls back and leaves no staging folders. roachnet-runtime --install does the same headlessly, which is what the Homebrew cask uses.
  • RoachTail control plane. Expiring, single-use join codes, per-device peer tokens stored as hashes, approved routes and relay metadata. The RoachNet hostname alias is written natively, with a one-time administrator prompt only when /etc/hosts needs it.
  • RoachClaw native surface. Playbooks, service health, scoped tools, jobs, reports, memory, backups, provider routes and agent-run summaries are exposed to the Mac app; status refreshes share short-lived Ollama probes.
  • Phone lanes restored. Chat, services, account and RoachSync over the companion bridge work with the native runtime again.
  • Bundled Ollama 0.40.2, checksum-verified, up from 0.33.1. Models pulled with older versions are upgraded in the background on first run, and the originals are kept as a backup.
  • Reduce Motion stops every decorative timeline in the macOS shell, and the launch guide no longer carries a stale v1.0.5 label.
  • The legacy admin/ WebUI is gone from the public tree.

Security and privacy fixes

Fixed before release:

  • The in-app update lane requires the release's .sha256 file, verifies the downloaded installer against it and deletes a mismatch. Before, any installer URL from the releases feed was downloaded unverified and opened.
  • Malformed HTTP body framing (negative Content-Length, oversized chunk headers) no longer crashes the runtime.
  • The loopback API and setup service reject non-loopback Host headers and non-JSON bodies. (1.0.7 found and closed a look-alike-name case this check missed.)
  • RoachTail join codes pair exactly once and retire after five wrong guesses; pairing devices can't choose their own peer id.
  • A paired phone can only queue downloads from public hosts.
  • Secret-bearing state files are written readable by your account only, the companion token no longer reaches the Ollama child process, and the privileged hosts-file alias accepts only a plain hostname.
  • The bundled Ollama 0.40.2 carries open advisories with no fixed version (crafted-model and crafted-request denial of service, missing auth on model management). It binds to 127.0.0.1 and is reachable only from the same Mac; 1.1 retires the bundled Ollama.
  • There's no telemetry.

Install, upgrade and roll back

This build is ad-hoc signed and not Apple-notarized. On first launch macOS says RoachNet Setup can't be verified: open System Settings › Privacy & Security and choose Open Anyway for RoachNet Setup; it doesn't ask again. The installer clears quarantine on the app it installs. Verify the download against the attached .sha256 file first.

  • Upgrade: quit RoachNet and run Setup over the existing install; storage is preserved. Back up your storage before an upgrade and keep the backup until the upgraded install works.
  • Roll back: 1.0.6 adds local state schemas, so don't assume an older version can read a 1.0.6 storage folder. Restore storage from a backup made before upgrading.
  • Remove: there's no one-click uninstaller. Quit RoachNet, then remove the app and runtime folders under ~/RoachNet; keep storage to keep your data.

What stays on your Mac

The app, the Vault, the local API, RoachClaw's state and your local models stay on the Mac. It goes online only when you use a feature that needs the network: GitHub Releases for update checks and downloads; apps.roachnet.org for the catalog and pack descriptors; model endpoints, providers, memory services, webhooks and integrations you configure; and map, archive, catalog, account, support and media sources you choose.

Known issues

Limitation Impact Workaround
Ad-hoc signed, no Developer ID or notarization. Gatekeeper blocks the first launch of RoachNet Setup. Open Anyway in Privacy & Security; the installer clears quarantine on the app.
The bundled Ollama 0.40.2 has open upstream advisories with no fixed version. Local-only denial of service or model management by another process on the same Mac. Ollama is bound to loopback; 1.1 replaces it with RoachInference.
Network-backed catalogs, maps, archives, updates, model downloads and remote providers don't work offline. They can't refresh or download without a connection. Download content and local models ahead of time.
Windows and Linux installers are not shipped. — Use an Apple Silicon Mac.
No one-click uninstaller. Removal means separating app and runtime files from your storage by hand. Follow the removal steps above.
Checked against v1.1.4 · 5 November 2026
esc
↑ ↓ move↵ openesc closeSearches on your device. Nothing is sent anywhere.