me-web? 0.5.3: the cards no longer contradict each other
Build / Desktop, server and tools (push) Successful in 1m25s
Release / Every platform, the server, the release (push) Successful in 8m20s

- From the publisher's own network, the tests aimed at its server stay inside the house, so
  the type of address translation, the ports, the hairpin, how long a connection stays open,
  the speed and the round trip described the home network: a report said "hard NAT" next to
  "ports kept". These cards now say the test can't run there, and those messages are not sent.
- Who holds your public IPv4 address is now decided by the same evidence as the address
  sharing card, so a home router behind a provider's shared address no longer reads "your
  router" on one card and "shared with other customers" on the next.
- When your connection differs from what the provider notes say is usual (a shared address,
  port 25), the provider card adds "On this line" with what was found, right under the note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-15 12:59:42 +02:00
1 parent 5a7fbc4c52
commit c72a6be433
117 files changed
+192 -21

No files matched your search

+8
View File
@@ -99,6 +99,14 @@ The Android release key: alias `meweb`, certificate SHA-256
`CheckRunner` skips the router protocols on a mobile link, and a private or 100.64 address on the device with a
different public echo is the operator's NAT (`NatKind.Shared`); before 0.4 a phone on Iliad read "router not
answering" and "can't tell" everywhere downstream. Provider profiles describe home lines, so on mobile the card says so.
- **The publisher's own network measures the house, not the line.** When the public IPv4 equals the server's, or
the IPv6 shares its /48 (`Addresses.SameNetwork`, `RunReport.OwnNetwork`), everything aimed at the server loops
back through the FRITZ!Box: the NAT type, the port burst, hairpin, lifetime, speed and round trip. Those cards then
say `ReachOwnNetwork` and the burst is not sent; before 0.5.3 a home report read "hard NAT" next to "ports kept".
- **One verdict decides who holds the IPv4.** `Verdicts.Holder(NatOf(...))` feeds both the address card and the
provider card's "On this line" row, so a home router behind CGNAT can no longer read "your router" on one card and
"shared with other customers" on the next. Provider notes that the check contradicts (sharing, port 25) get that row
right under them, added when the provider card is settled again at the end of the run.
- **The route is drawn, never trusted.** `Route.Trace` (8 TTLs) feeds the path's wires: hops after the first, up to
the first public one, sit before the shared exit or the provider; public ones carry their AS number into the
internet; unanswered runs collapse to "…". The NAT verdict never reads them (see the 100.64 pitfall).