217d5ed29a3076516ddd0a30f9d18f3757e8bca1
The policy editor now opens read-only behind an Edit button, and edit mode brings up an assistant: describe the change, get a complete revised document back, read a line diff of it, and only then press Save. Nobody writes an ACL from memory — it is HuJSON in Tailscale's grammar keyed to names only the server knows — and that, not typing speed, is what made this screen unusable. The model never touches Headscale. It proposes text, the text lands in the editor's draft, and the existing Save button is still the only thing that leaves the browser. A model that could write the ACL directly is one that can partition the network the owner is connected through. The sidecar calls officer-anthropic-proxy on loopback for one request with a timeout — no session, no agent, nothing persisted. It sends the draft on screen plus the tailnet's vocabulary (user, node and tag names) and no credentials of any kind. It does not validate the reply either: Headscale owns the only parser that counts, same argument as policy.ts.
Description
No description provided
42 MiB
Languages
TypeScript
90.9%
Shell
4.7%
JavaScript
4.1%
CSS
0.2%
HTML
0.1%