thepra/packages.arasaka.software now reads this repository's releases and publishes
them with every other joined app, so the daily packages and F-Droid jobs, their
scripts and the repository's F-Droid settings leave this repository. The release
still signs the rpm on its own page with the Arasaka key, as the README promises,
and the F-Droid listing stays in packaging/fdroid/metadata, read at each tag.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The box updates the tools that build packages.arasaka.software every morning, and
packages.yml rebuilds and re-signs the apt and rpm repositories when those tools change,
so a broken update shows up the same morning, not at the next release.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9uhaCTSycTh1r8At679Pz
- Every day the F-Droid repository's tools are checked for a newer version that has been out for at least two
weeks. When there is one, or when the app's listing changed, the repository is rebuilt with it, and releases
use it only once that worked, so a faulty update of the tools can never hold up a release.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9uhaCTSycTh1r8At679Pz
- Each release now installs the newest version of F-Droid's own tools that has been out for at least two weeks,
instead of one fixed version, so the repository keeps up with F-Droid without anyone updating it by hand.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9uhaCTSycTh1r8At679Pz
- Nothing changes in the app. 0.15.1 never reached the F-Droid repository at packages.arasaka.software/fdroid/repo;
this version is the first one there, so F-Droid, a store like it, or Obtainium can now find it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9uhaCTSycTh1r8At679Pz
- The Arasaka F-Droid repository, packages.arasaka.software/fdroid/repo, is signed with the same key as the app, so
the fingerprint F-Droid or Obtainium checks is the one already on the download page for the APK.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T9uhaCTSycTh1r8At679Pz
- The provider card now names the address block your connection belongs to in Asia and the Pacific, in Africa, and
in Latin America and the Caribbean, not only in Europe and the Middle East. The blocks come from the address
registries APNIC, AFRINIC and LACNIC, used with their permission, and travel inside the app, so this works
without a connection too.
- In Latin America and the Caribbean the registry gives no names for its blocks, so the card says how the block was
handed out instead, for example "passed on by the provider to one of its customers".
- The app is about 6 MB larger, because it carries these blocks.
- The app's name no longer has quotation marks where it stands on its own: the window title, the name under the
icon, the version line and the website's titles. Inside a sentence it keeps them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
.gitea/scripts/packages.sh signs the rpm with the org secret PACKAGES_SIGNING_KEY,
publishes the deb and rpm into a new snapshot of the repository, signs its metadata and
rewrites SHA256SUMS.txt, on the nuvola runner. Tested against a copy of the live
repository with Debian 13 apt and Fedora 44 dnf.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KizzWs2WQPWN2qgE7G6r8B
- The app now carries the whole RIPE Database list of address blocks, all five million, small single-customer blocks
included, so the provider card and the path can name the block your connection belongs to without a connection to
the publisher's server. The downloads are about 25 MB larger for it.
- When the publisher's server can't be reached, the provider card still names your network and its block, from the
public address your router reports or the one the STUN test sees.
- The table is read a small piece at a time, so it takes almost no memory on a phone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
- The provider card now shows the address block your connection belongs to, as the RIPE Database names it, for
example "MOBILE-USERS-BLOCK (IT)" on Iliad mobile or "FASTWEB-L3-PAT_NAT (IT)" on a Fastweb shared address. The
path shows it under your provider too.
- No block is left out: the server keeps every block in the RIPE Database, small and unique ones included, and tells
the app the block of the address it sees, never anyone else's. The app also carries about 430,000 of the larger
blocks, for when the server can't be reached.
- Only each block's range, name and country are used, nothing about people. The data comes from the RIPE NCC's RIPE
Database, used with the RIPE NCC's permission; it may lag behind the live database, and the "What this app
contacts" sheet gives its date.
- The privacy page says that the server's answer now includes that block name; nothing new is stored or sent.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
- Behind your provider's shared address, me-web? now shows how its exit hands out ports
(kept, one after another, from one block, or at random), the range it gave this device,
and how many customers may share the address at most; the estimate sharpens with each
check on the same address.
- It tests whether two devices behind the same address can reach each other (hairpin), and
how long an unused connection stays open: the card says "measuring" for about two minutes
after the check, then the answer.
- With the test from outside, the publisher's server also traces the route back to your
address: your provider's routers and the networks in between appear on the path, with
their names.
- The provider card says which networks your provider reaches the internet through.
- On mobile data, the path shows the operator and the type of network (5G, 4G) read from the
phone; on Android 13 and later the phone asks once for permission to read the network type.
- The speed card adds the round trip to the publisher's server.
- The network data now comes from the publisher's server, refreshed there from open sources:
iptoasn.com, DB-IP Lite (CC BY 4.0), the University of Oregon Route Views Project (CC BY 4.0)
and the Android Open Source Project's list of mobile operators (Apache 2.0); the release
notes list each source's date and checksum.
- Source links in the cards wrap instead of being cut off.
- New strings, drafted in every language.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
MeWeb.Core runs seven checks concurrently and reports each as it settles:
online or behind a login page, this connection, the public IPv4 and IPv6
seen from v4./v6.meweb, the provider from a built-in map, the router
(UPnP IGD, NAT-PMP and PCP, read-only), address sharing (router WAN
against the echo, TTL hops only as a hint), and the history kept on the
device. The app draws the path from this device to the internet and lights
it node by node, with a card per check and a sheet listing every host it
contacts.
The provider map is iptoasn's table compressed to 2.1 MB by
tools/knowledge.cs and built before every app release; eleven Italian
provider profiles carry each fact with who said it, the source and the
month. The server gains a download page (en, it) and /download/{platform}
from the latest Gitea release.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
The first screen (online or not, a Check button, every language with a
draft notice), the desktop and Android heads, the server's /api/info and
/api/ip, a release tool that builds deb, rpm, a Windows exe, macOS zips,
a signed APK and the server, and the Gitea workflows that run it. Rules
adapted from passolo; AGPL-3.0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB