Skip to content

feat(#274): standing no-clearnet-leak egress gate in the harness#288

Merged
VijitSingh97 merged 3 commits into
developfrom
feat/274-egress-harness-gate
Jun 17, 2026
Merged

feat(#274): standing no-clearnet-leak egress gate in the harness#288
VijitSingh97 merged 3 commits into
developfrom
feat/274-egress-harness-gate

Conversation

@VijitSingh97

Copy link
Copy Markdown
Collaborator

Closes #274. The permanent proof of #270 — turns "we verified all-Tor once" into "every harness run gates on it."

What

Validation (gouda, live)

Note: the verifier stays at tests/integration/benchmarks/bench-verify-egress.sh (shared with the #256 benchmark gate, PR #268 — which will rebase onto this refined copy).

🤖 Generated with Claude Code

Promote the #256 egress verifier into the live harness as a standing privacy
assertion (the runtime proof of #270): the --check phase now FAILs if any app
container holds a persistent direct public connection — what config-level checks
miss (it caught the #165 stale-image p2pool leak and the #271 Tari direct-dial).

Refine bench-verify-egress.sh: poll N times (default 4×10s) and flag only IPs seen
in >= --min-hits polls, so post-restart startup transients (a brief direct dial
before Tor circuits build) don't false-positive — only sustained leaks fail.

Validated on gouda: caught a grandfathered Tari leak (2 persistent IPs → FAIL),
then a clean PASS (all 4 apps via Tor) after a restart cleared it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@VijitSingh97 VijitSingh97 merged commit 0f495ab into develop Jun 17, 2026
12 checks passed
@VijitSingh97 VijitSingh97 deleted the feat/274-egress-harness-gate branch June 17, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Promote bench-verify-egress.sh into the live harness as a standing no-clearnet-leak check

1 participant