# IT-AI agent changelog

> What changed in each IT-AI agent release, newest first: per-device secrets, LAN-direct, background jobs, the VPN exit and signed self-update fixes.

Canonical page: https://glick.run/it-ai/changelog.html

Releases of the IT-AI agent, MCP server and `itai` CLI, newest first, with the date each was published on the [GitHub release page](https://github.com/gitayg/haive-agent/releases). The full detail is in each release and in the [repository history](https://github.com/gitayg/haive-agent/commits/main).

## v3.9.0 · 10 October 2026

- **VPN exit without the kernel WireGuard module.** The agent carries a built-in userspace WireGuard (Cloudflare's boringtun), so a Linux device such as a Jetson can be an exit. A watchdog rebuilds it if its worker dies or hangs, and `/vpn/status` reports `health`, `restarts` and `last_failure`.
- The exit comes up on kernels without IPv6 and on kernels without the TCPMSS target (Jetson Orin).
- Includes 3.8.3: the clean-up that removes the enrollment token from old autostart entries now works on Ubuntu's user-private groups, and Linux autostart agents log to `~/.it-ai/agent.log`.

## v3.8.2 · 10 October 2026

- Agents remove the enrollment token from their own old autostart and service entries once they hold a device secret, rewriting a file only when nobody else can change it.
- On Windows, an agent restarted by a self-update keeps logging to `agent.log`.

## v3.8.1 · 9 October 2026

- VPN exit: no state drift on disable, firewall rules always inserted in a fixed order, and IPv4 forwarding restored to its previous value.

## v3.8.0 · 9 October 2026

- **VPN exit.** A Linux device can act as a WireGuard exit through the hub's UDP relay, even behind CGNAT. The relay carries only WireGuard ciphertext, and the agent never sees a client's private key.

## v3.7.1 · 8 October 2026

- Only one self-update runs at a time, each with its own temp file, and the agent refuses an empty or truncated binary. Before this, two concurrent updates could leave a device with an empty executable.
- macOS agents started by launchd write their log to `~/.it-ai/agent.log`.

## v3.7.0 · 6 October 2026

- **Per-device relay secrets.** The enrollment token is used once; each device then gets its own secret, stored in a 0600 file and never on a command line.
- Includes 3.6: **background jobs** (`job_start`, `job_logs`, `job_stop`, `job_list` and `itai job`), the Claude Code operator skill, and the one-command `itai` setup script.

## v3.5.2 · 26 September 2026

- The agent compares the hub's published checksum before downloading an update, and skips a pushed update identical to the running build.

## v3.5.1 · 24 September 2026

- A test for the self-update rescue path, and consistent MIT licence headers.

## v3.5.0 · 24 September 2026

- **LAN-direct.** When controller and device share a network, traffic goes direct, each call gated by a short-lived capability your hub issues after its authorization, deny-list and audit checks.

## v3.4.0 · 21 September 2026

- The agent, MCP server and CLI are relicensed under **MIT**.
- Self-update can heal itself, and `upload_file` refuses files over 100 MB (use `push_file`).

## v3.3.1 · 30 August 2026

- Screen and camera endpoints require the token on loopback too.

## v3.3.0 · 30 August 2026

- Closes a local privilege escalation through loopback requests, and keeps a vulnerable TLS library off the network path.

