Back to Newsroom

Product

23 October, evening: live permission switching, faster Tailscale connect, sidebar divider, measured deploy

Chat permissions switch live, Tailscale connect answers in seconds and the sidebar has a divider. A probe measured a deploy with 0 failed requests of 1786.

User impact: Not reviewed

Second release of 23 October 2026. The first is in the entry above.

How a deploy switches ZeroLog to new code without downtimeVisitors, the tunnel and worker machines all connect to port 8080. An nftables table redirects that port to the active front-door proxy, either instance a on port 8084 or instance b on port 8085. The proxy sends traffic to the one active app slot, blue on port 8082 or green on port 8083. A deploy tests the new code, takes a backup, starts the idle slot, health-checks and activates it, reloads the proxy, and restarts the background worker with a drain.restart,with drainone instance at a timeactive slot onlystart idle slot,activatereload proxyApp slots, one activezerolog@blueport 8082zerolog@greenport 8083Front-door proxy (Node.js)zerolog-proxy@aport 8084zerolog-proxy@bport 8085Visitors, tunnel andworker machines(all use port 8080)nftables table zl_zdtredirects port 8080to the active proxydeploy.shtests, backup, switchzerolog-workerbackground jobs
How a deploy switches to new code. Diagram from the docs.
Text version

A proxy serves one slot, blue or green. A deploy starts the other slot, checks it and switches.

  • Tailscale connect answers within seconds while the environment starts. The sign-in tab waits up to 3 minutes with a note. The chat agent gets a sanitized device list and uses the local SOCKS5 proxy. The tailscale command stays off-limits to it.
  • Chat permissions switch live: automatic releases approvals already waiting, switching back asks again on the next tool call. A hint offers "Switch to Automatic?".
  • The sidebar has a draggable divider between navigation and chat history (mouse, touch, keyboard), and remembers its size.
  • Operators get an admin-only operations log, and the operator account a session recording, for debugging. Customer accounts stay zero-log. The privacy policy 1.9.7 describes this and is live.
  • Deploy measurement: an external probe ran 14:22 to 14:37 UTC with 1786 requests, none failed, longest gap 1.45 s. A 275 second chat stream opened before the 14:27:50 switch ended cleanly after it. Later probe streams failed because the probe account ran out of credit.
  • Server-side tools get their own level per chat: "Ohne Rückfrage" runs at once, "Mit Rückfrage" asks before paid calls, "Rückfrage automatisch" applies fixed rules and then a small reviewer model, and asks you on any doubt, error or answer slower than 3 s, and "Manuell" does not run the call and shows a Start button. The level switches live. Existing chats keep their behaviour.

Correction (23 October 2026): "none failed" covers plain requests only. The probe also counted 37 aborted chat streams (HTTP 401) and rated that run an outage. We claim no measured zero-downtime deploy for the 14:27 switch.

Corrections belong here too. Feed · Docs · X · Legal & privacy