-
v1.2.0 Stable
released this
2026-09-29 20:14:07 +02:00 | 1 commits to master since this releasefetch: every outbound request carries one generic browser User-Agent
Stripping forwarding headers kept our IP and chain out of reach, but the
User-Agent went through untouched. Clients that fell back to their own name
("crawlkit-roles", "crawlkit-virk", ...) tied all ten exits together as one
actor, and one missing UA meant Go-http-client. The proxy now overwrites the
UA on every request (WEIRCON_USER_AGENT, default current Firefox) and the
egress prober uses the same string.Also dropped: From, Sec-Ch-Ua* (would contradict a Firefox UA) and any
X-Weircon-* by prefix. New end-to-end test drives the whole handler and
checks what the target actually receives.Claude-Session: https://claude.ai/code/session_01AUj1LSMmrowcomkn1ciAgj
Downloads
-
v1.1.0 Stable
released this
2026-06-01 10:59:02 +02:00 | 2 commits to master since this releaserotate egress over a larger WG pool, with graceful drain and live status
Keep the N always-on tunnel slots fixed but let each slot's WireGuard config
rotate through a larger pool, so a 10-concurrent provider cap (e.g. Proton) can
still cycle 50-100 profiles.- lxc/rotate.sh + weircon-rotate.{service,timer}: round-robin one slot at a
time through wg-pool/, repointing a symlink and restarting only that slot. - service: proxyManager tracks per-slot in-flight + drain/undrain state; a
localhost admin server (WEIRCON_ADMIN_LISTEN) lets rotate.sh drain a slot
before teardown and warm it back in after, so no request is routed to a
tunnel mid-rotation. Slots self-heal if undrain never arrives. - GET /status: poll-friendly JSON of per-slot egress IP/state plus inferred
next-rotation slot + ETA, fed by a background egress-IP prober. - docs + env examples for all new knobs.
Downloads
- lxc/rotate.sh + weircon-rotate.{service,timer}: round-robin one slot at a
-
v1.0.0 Stable
released this
2026-05-30 21:32:27 +02:00 | 3 commits to master since this releaseci: source release body from the annotated tag message
The release step created releases with no body. Read the tag's annotation
into RELEASE_NOTES.md and pass it via body_path so each release carries
purpose-written notes. Fetch full history so the annotated tag object is
available to the build.Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Downloads