Commit Graph
20 Commits
Author SHA1 Message Date
clawbot 769511dec2 Add Starlink status lines for the physical gateway pane (closes #3) (#7)
check / check (push) Failing after 4s
Detection is a TCP connect to the dish endpoint bound to the physical
interface; once a dish answers, get_status is read every 5s and two
status lines render under the physical pane, red on disconnect or
alert. No dish: nothing drawn, no RPC. Minimal vendored proto bindings
for get_status only. Independent review passed (PR 7 comment 100012).

Model: opus-4-8 (implementation and review); model: claude-fable-5
(merge)
2026-09-22 20:56:01 +02:00
clawbot 486a47397c Detect interfaces per platform; add macOS and single-interface support (closes #2)
check / check (push) Failing after 0s
Linux runs exactly as before when both bridge interfaces exist. When they do
not, the lone default-route interface is monitored, and a single interface
draws a single UI pane instead of an empty second one.

macOS is newly supported: a running VPN tunnel (utun) is monitored as the
primary pane alongside the physical default-route interface, or the physical
interface alone when no VPN is up.

Detection lives in internal/netdetect: interface/route data types, pure
selection logic keyed on OS name, and route parsers, all unit-tested on Linux
for both platforms. Only the real route query and the per-platform TCP dial
binding are build-tagged. NewMonitor now takes a list of interfaces.

Not verified on a real mac: live netstat parsing, IP_BOUND_IF dialing, Mullvad leak protection.

Model: opus-4-8 (implementation); fable-5-1 (landing commit)
2026-09-21 15:01:59 +02:00
clawbot 7dd4ac798d Adopt repo standards: scaffold, policies, lint-clean (closes #1)
check / check (push) Failing after 0s
Standard scaffold: script/ entrypoints with the Makefile as thin shims, a Dockerfile whose lint and test phases gate the build, a Gitea CI workflow running script/cibuild, REPO_POLICIES.md, TODO.md, .editorconfig, .dockerignore, LICENSE, wider .gitignore. .golangci.yml is byte-identical to the canonical copy in the prompts repo.

211 lint findings fixed in code: package globals became functions/fields and a cobra command constructor, magic numbers became named constants, ctx is threaded into the probes, monitor loops split. Tests moved to external _test packages with export_test.go. Behavior unchanged.

Readers will trip over: make lint/test/check now need a Docker daemon; the personal rsync copy/run targets are gone and make run runs locally.
Disclosure: four //nolint:gosec remain on the fixed-argv ping/curl calls and the operator-chosen log file, as the reference repo annotates the same class.
Disclosure: module path left as-is.

Model: opus-4-8 (implementation); fable-5-1 (merge)
2026-09-21 09:22:28 +02:00
sneak cf9dc39053 latest 2026-09-20 22:56:40 -07:00
sneak a8ab26752a initial 2026-01-06 10:20:34 -08:00
sneak 0e1fc6a88d latest 2025-05-21 21:34:06 -07:00
sneak 2ad2aef700 higher frame rate, PL meter 2025-05-21 21:24:20 -07:00
sneak 29b96b3405 fix import 2025-05-21 11:29:36 -07:00
sneak bf1ec22492 add library 2025-05-21 11:23:08 -07:00
sneak 3ac8e9b450 bugfix 2025-05-21 11:22:57 -07:00
sneak e5546fedd4 add aider stuff 2025-05-16 05:28:39 -07:00
sneak 9298891565 fix: remove colorization from standard deviation display in drawIface 2025-05-16 05:14:48 -07:00
sneak 67a5a0d545 fix: align columns and colorize numbers in drawIface function 2025-05-16 05:13:30 -07:00
sneak 25dca3f857 latest 2025-05-16 05:03:53 -07:00
sneak 6955b10ec6 control-c works now 2025-05-16 04:49:41 -07:00
sneak 5d6ce56406 color! 2025-05-16 04:42:41 -07:00
sneak 31936b21a2 add module 2025-05-16 04:29:55 -07:00
sneak 3d543f9c5b latest 2025-05-16 04:29:05 -07:00
sneak 26e7fd997f latest 2025-05-16 04:25:04 -07:00
sneak 9d2aa2b4de initial 2025-05-16 04:20:20 -07:00