Three facts the client cannot produce alone, kept deliberately separate: mtu.pmtud_down (largest datagram that arrives unfragmented — meaningful only because the server sets DF), mtu.frag_delivery (whether larger ones arrive once fragmentation is allowed), and train.udp_downstream (loss, reordering and arrival spacing in the download direction, which a round trip cannot separate from upstream loss). ServerMeasurement now runs them on the same ProbeSession as the echo train. It had to: a fresh session restarts client-side sequence numbers and the server's anti-replay window discards the lot, so the re-primed source is never recorded and every granted send goes to a socket that has already closed. That produced four confidently-wrong FAILED tests and a RED verdict on a healthy network. Live against fmr: path MTU 1500, fragments to 4000, 100/100 downstream, GREEN. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
1.4 KiB
JSON
36 lines
1.4 KiB
JSON
{
|
|
"$schema": "node_modules/wrangler/config-schema.json",
|
|
"name": "echolot-site",
|
|
"main": "src/index.js",
|
|
"compatibility_date": "2026-07-30",
|
|
|
|
// Static files are served directly from the edge; the Worker only runs for
|
|
// paths that do not match a file (i.e. /apk and /fdroid below).
|
|
"assets": {
|
|
"directory": "./public",
|
|
"binding": "ASSETS"
|
|
},
|
|
|
|
// Both hostnames must exist as zones/records in the same Cloudflare account.
|
|
"routes": [
|
|
{ "pattern": "echo-lot.app", "custom_domain": true },
|
|
{ "pattern": "www.echo-lot.app", "custom_domain": true }
|
|
],
|
|
|
|
// Nothing here needs touching per release: /apk asks the Gitea API for the
|
|
// latest release at request time (edge-cached 5 min). Any empty value makes
|
|
// its route fall back to the homepage's install section, so nothing 404s
|
|
// before the first release exists.
|
|
"vars": {
|
|
// Gitea repo API base. The repo (or at least its releases) must be
|
|
// publicly readable for /apk and /api/latest to resolve.
|
|
"GITEA_REPO_API": "https://git.rambossek.at/api/v1/repos/EchoLot/echolot",
|
|
// Manual override / fallback while GITEA_REPO_API is unreachable.
|
|
"DOWNLOAD_URL": "",
|
|
// F-Droid listing, once it exists: https://f-droid.org/packages/app.echo_lot.app/
|
|
"FDROID_URL": "",
|
|
// Public source URL, the footer + /source target.
|
|
"SOURCE_URL": "https://git.rambossek.at/EchoLot/echolot"
|
|
}
|
|
}
|