aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 18:47:24 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 18:47:24 -0400
commit2fa41ee1d61a47490cf0ec352d3deed3157d994b (patch)
tree014d374f96aa86dfa8b466dbd2b939cbf1964865 /todo.org
parent1c7b12806efbdf3cba09419786809bb36ca57176 (diff)
downloadarchsetup-2fa41ee1d61a47490cf0ec352d3deed3157d994b.tar.gz
archsetup-2fa41ee1d61a47490cf0ec352d3deed3157d994b.zip
docs(spec): tunnels phase 1 shipped, proton CLI ground truth noted
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org4
1 files changed, 2 insertions, 2 deletions
diff --git a/todo.org b/todo.org
index e36a83d..9e0f74a 100644
--- a/todo.org
+++ b/todo.org
@@ -32,8 +32,8 @@ Spec: [[file:docs/design/2026-07-02-net-panel-other-interfaces-spec.org]] (DOING
Tunnels visible and controllable in the net panel: tailscale + NM wireguard + proton-vpn-cli probes, a Tunnels group in Connections, diagnose/doctor route-ownership awareness, a bar badge when a tunnel owns the default route, archsetup operator flag + package swap, and the one-time NM import of the seven Proton configs. Origin: roam inbox capture 2026-07-02.
-*** TODO Phase 1 — overlays.py probes (dotfiles) :feature:
-tailscale JSON / nmcli wireguard filter / protonvpn status probes, one dict shape, TDD over fake binaries; =net status= grows an overlays section.
+*** 2026-07-02 Thu @ 18:47:05 -0400 Shipped phase 1 — overlay probes (dotfiles 2d9d060)
+=net/src/net/overlays.py=: one probe per backend, shared row shape ={kind, name, state, addr, detail, can_toggle}=. tailscale parses =status --json= (up/down/needs-login/stopped, tailnet + N/M peers online + exit node detail, first TailscaleIP); wireguard rows filter =nmcli connection show= by type with uuids for the existing up/down wrappers; proton drives the official CLI — ground truth sampled live before writing the parser: the GUI-running refusal prints to stdout and EXITS 0 (text-detected, =can_toggle false=), disconnected = "Status: Disconnected", and the CLI's account store is separate from the GTK app's (=protonvpn info= → Account 'None' — sign-in is a phase 6 migration step for Craig). =net status= gained a fast-path overlays section (tailscale + wireguard only; the python CLI's ~300ms startup stays out of the indicator poll, and an active proton tunnel surfaces as its NM wireguard row anyway), guarded so a probe crash yields =[]= not a dead indicator. 19 new tests over fake-tailscale/fake-protonvpn/fake-nmcli (45 suites green); live check on velox: tailscale row up, 5/6 peers, hot path 149ms. proton-vpn-cli 1.0.1 installed on velox (GTK app stays until phase 5).
*** TODO Phase 2 — panel Tunnels group (dotfiles) :feature:
Fourth Connections group with Up/Down through the worker thread; AT-SPI smoke extension.