v2026.8.22-1026185650
"Charcoal Fibrous Diorite"
| Asset | SHA256 | VirusTotal analysis |
|---|---|---|
| URnetworkSdk-2026.8.22-1026185650.aar | 2384f9342f1cbfc4848b83541f7625b0bed916a05c850c58f058bd36f61287f3
| ok |
| URnetworkSdk-sources-2026.8.22-1026185650.jar | 8933e88901a63ee623a5d574a522b62ff8ee118b5e9a58ae198c13a0b4cfa973
| ok |
| URnetworkSdk-2026.8.22-1026185650.xcframework.zip | 7b31b50496da6e98e42752c6db4e2ee50b2fa4d4b3397473a81479312734cd46
| ok |
| URnetworkSdkJs-2026.8.22-1026185650.zip | 745fef7e21386155c3f9cc9f795d18eb119e7901ca8b30b9ca4d608ed5e72895
| ok |
| urnetwork-provider-2026.8.22-1026185650.tar.gz | d50d280c5255f97881b2fcafa942919860dc718204472c7f6fdbfebdfd3360a3
| ok |
| urnetwork-validator-2026.8.22-1026185650.tar.gz | d693b6233c2f285c091ba572c46ec241c4b45b739226b6b0980baabf4a67409c
| ok |
| urnetwork-snclaim-2026.8.22-1026185650.tar.gz | c2b4b8c11dda77c27e5d50411d684cf5242befa9b0d64a1a33c0bd33c253dc16
| ok |
| urnetwork-proxy-socks-2026.8.22-1026185650.tar.gz | d274a8b0729ddf01ea73a6d91fda0104d039d0b55a76d0a43a6c0fd136cbfb08
| ok |
| crx-@urnetwork-extension-2026.8.22.zip | bead77b4eafc5a904357097f51f66a03a440dfd4400a86aa54db0ce55a08acd8
| ok |
| crx-@urnetwork-extension-2026.8.22-firefox.zip | 2507863a8d19cd82248ffb84544e0938058e317a46cfc50bc30a93662d412cb5
| ok |
| URnetwork-2026.8.22-1026185650.ipa | b2c0ddb8b74f2e36fc23ccb8c38ce3439b4c72abf25a66314b6792249a2e6df5
| ok |
| URnetwork-2026.8.22-1026185650.pkg | 645e6e99fdeff59c071e8b20227852af3a35c63458cd6513921adb271c64864a
| ok |
| URnetworkSdkWindows-2026.8.22-1026185650.zip | a3947eefae6c311d9ecbcd9a9a1a4aff4e06b5ba1fa68f1405e077622b64451d
| ok |
| URnetwork-2026.8.22-1026185650-arm64.msi | ac61a613e61edd9318e92682f6a5c264b360e9116c37322ef0cf6f988c591d9a
| ok |
| URnetwork-2026.8.22-1026185650-x64.msi | 5495aeccf470e0893e4149045aba228f4225225dfed7184d2823de2bc1a88093
| ok |
| URnetworkSdkLinux-2026.8.22-1026185650.zip | f9383a2229b0941b9281c137025a8a4142c43a83ad82256285dd1c9f4fca6bd2
| ok |
| urnetwork-daemon_2026.8.22-1026185650_amd64.deb | 34bebcf9d22d95547829dbb762e4d91ae87c99e635a91c3eeb7957877cd0e62c
| ok |
| urnetwork-daemon_2026.8.22-1026185650_arm64.deb | f4512263b6ae4e9b800781c1872a60cc80f5a9c8392375a50338e4eec462661a
| ok |
| urnetwork-daemon-2026.8.22-1026185650-amd64.install.tar.gz | 5b27c565a9034f53a5b67e89aeab2f50c70f1a738bdda90deea98c9832bdb0cf
| ok |
| urnetwork-daemon-2026.8.22-1026185650-arm64.install.tar.gz | b19e578920960d9f629d8a298bd176505754f34e63a278311e2841cb24a1019f
| ok |
| urnetwork-daemon-2026.8.22-1026185650.aarch64.rpm | c6a7379f0ee1cb2caa4230b2e862244cf7de939d51a74e1a1132429d3cb1aef2
| ok |
| urnetwork-daemon-2026.8.22-1026185650.x86_64.rpm | 7bf57a9451d670a41a1cd0b93930b5f6235410a440adb4eb4b5f37259d5fde32
| ok |
| urnetwork-daemon-2026.8.22-1026185650-aarch64.pkg.tar.zst | 06cc1837d5084bbfacf65fbb3b5779dce45ecc862e262a86b792e8f21beb406b
| ok |
| urnetwork-daemon-2026.8.22-1026185650-x86_64.pkg.tar.zst | 5d9f4e27b1bcbf1ddb22c7a9b4e44727eb1bfbc1b1ffbc93a4df6fc062e51212
| ok |
| URnetwork-2026.8.22-1026185650-amd64.AppImage | 8a8a254025f38fc5abba88783d2a2a5cd60623f8d2d9552275743ea6ed58580b
| ok |
| URnetwork-2026.8.22-1026185650-arm64.AppImage | cc15e69a27c30698698fa0df142056c1f7a114ff270452e91813d5263e71b538
| ok |
| URnetwork-2026.8.22-1026185650-amd64.AppImage.zsync | 8a4030baa79548d0ab93a5e14903eaa91e2c96e602ba2352ef9334565f53728b
| ok |
| URnetwork-2026.8.22-1026185650-arm64.AppImage.zsync | fe93a5dddb555b3d0909c1175f18559062f1adf24cadd7a8232bc5930b5f5c7c
| ok |
| com.bringyour.network-2026.8.22-1026185650-play-release.apk | 44563e43ff82ef21355979a44a44162a8258845b38c7919c344c31737c1075db
| ok |
| com.bringyour.network-2026.8.22-1026185650-play-release.aab | 1d3341f66783d3f062aa0d2d4f18f25c0d12eabeac9fadb8c8dbe39a8fac67e6
| ok |
| com.bringyour.network-2026.8.22-1026185650-solana_dapp-release.apk | 96330941d6fa1550b6eddd62e550543dc56cc416be467b7a039e9a9b0bb14199
| ok |
| com.bringyour.network-2026.8.22-1026185650-ethos_dapp-release.apk | 4a5edddc1c9db09eed07bf42187ff7a37d59193013ebd0ed0fe4e8d89d18e1a9
| ok |
| com.bringyour.network-2026.8.22-1026185650.apk | 816fcdc34415ebc25f6b09afce520011a417ae1390e9b53821e4f2cbcaa841d3
| ok |
Full changelog: changelogs/1026185650_Full.md -- every commit in every component since the previous release. Per-store notes for Play, App Store Connect, Partner Center and AppStream are in that same directory.
- Replace the nine
anycasts and drop an unused listener param - Stop writing the SDK callback refs during render
- Extension: bump the submodule past the lint fixes
- Sdk: keep runtime/pprof out of the iOS builds
- Bootstrap the egress prober's credential without a human
- Detect providers that go dark, separately from egress health
- Make the active bandwidth probe budget a deployment setting
- Name the prober as the fault when the whole fleet fails identically
Full changelog
Changes in v2026.8.22-1026185650
v2026.8.21-1025763520 ... v2026.8.22-1026185650 -- 31 commits across 10 components.
apple
urnetwork/apple d2567e195...9a8a7b22d
- tests: the selectable transport order is H1-first, matching the SDK (
6a4080625)
TransportStatsTests asserted [.h3, .h1, .dns, .dnsPump] in four places that read their value from the SDK. The SDK's order is H1-first, and it is explicit about it: - ci: build and test the apple app on every push (
e5e66859b)
This repo had no .github directory at all, so nothing verified that the iOS and macOS apps still compile or that the unit suite still passes. The release pipeline (build/all/run.sh) archives and signs; it never runs networkTests. This closes that gap.
extension
urnetwork/extension 8f75f07d8...660e05e39
- fix(types): replace the nine
anycasts and drop an unused listener param (fbc4ec63f)
Pure typing/style debt, no behaviour change --as anyerases at compile time and the one runtime edit (dropping a trailing listener parameter) is invisible to the caller. - fix(connect): stop writing the SDK callback refs during render (
4e1c494c7)
useConnectionManager kept the latest authNetworkClient/removeNetworkClient in refs with bare assignments in the hook body: - ci: add timeout and concurrency; correct the lint comment (
c793894d5)
Two things the workflow was missing and two the comment got wrong. - ci: report lint without gating build and test (
0f912dec0)
eslint .fails on a fresh checkout of main with 12 pre-existing errors (10 no-explicit-any, one unused binding, two react-hooks ref-during-render in elements/src), which stopped the run before the tests or either build ran at all. - ci: build and test the extension on push (
9f4d6fdf6)
Adds the repo's first CI. Runs the checks the repo already defines -- eslint, the tsconfig.test.json type-check, and the vitest suite -- then builds both store targets the way the Makefile does (npm run build, npm run build:firefox) and asserts each produced a real zip.
build
urnetwork/build 4de28e9dd...8c422231f
- changelog: one directory, one file per audience, per release (
7ee456401)
The previous commit gave apple, windows and linux a note of their own but scattered them into fastlane-shaped paths that each release overwrote, and left the full changelog inlined in the release body. This puts all six files in one place and keeps every release's set. - changelog: one release note per storefront, app changes first (
785a706fe)
There is no such thing as "the store note". Four storefronts serve four different artifacts and not one of the three numbers that matter -- the limit, the format, the field -- is shared between them: - extension: bump the submodule past the lint fixes (
57ed7d8c2)
The extension leg of the CI has been red since it was added, and it is not the workflow's fault: this repo pinned extension at 8f75f07d8b, which predates urnetwork/extension#36.npm run lintfails there with 12 errors -- 9 no-explicit-any, an unused parameter, and two react-hooks/refs violations, one of which was a real correctness bug (refs assigned during render, feeding a ConnectionManager built once with [] deps that invokes the auth thunk from timers). - changelog: say so when running anonymously degrades the store note (
25f5f0d8e)
The store note holds CI/test/docs-only commits back by looking up which files each candidate commit touched. That is one extra API call per candidate, and anonymous callers get 60 requests/hour -- so on any real span the lookups start returning 403. commit_files() then fails OPEN by design, because a missed lookup must never delete somebody's work from the release notes, which means the commit is KEPT. - changelog: generate release notes from the commits instead of copying a placeholder (
1e816e157)
Every changelog this repo has published says the same thing. all/run.sh copied metadata/en-US/changelogs/pending.txt verbatim into metadata/en-US/changelogs/<version code>.txt on every release, pending.txt is a static one-liner, and so 1025763520, 1025613560, 1025339670 and 1025223880 are byte-identical: "- Bug and performance fixes."
sdk
urnetwork/sdk e3c36a9ba...3739dcfac
- Raise iOS extension SDK size limit to 60 MiB (
3739dcfac) - sdk: keep runtime/pprof out of the iOS builds (
497d82552)
The iOS extension SDK is over its size budget and cannot simply be raised past it:
warp
urnetwork/warp 678b25a8b...e13673c63
- ci: bound the job, cross-compile the shipped platforms, race the suite (
682388b50)
Follow-up on the same workflow. Five additions, all verified against a clean ubuntu:24.04 before pushing: - ci: quarantine TestNginxLogsOmitClientAddr, which fails on ubuntu-latest (
a2b0a0503)
The first run of this workflow went red, and the cause was an assumption in the previous commit that CI just disproved: that warp's nginx tests would skip on a runner. One of them does not. - ci: build and test warp on every push (
afb3f80ef)
warp had no CI. This adds the same build-and-test job the other urnetwork Go repos run, so a push or PR compiles every package and runs the real test suite rather than nothing.
server
urnetwork/server 66af1304a...2c9e92b45
- feat(model,api,taskworker): bootstrap the egress prober's credential without a human (
a2731f132)
A deployment that had never had an operator hand-mint a prober credential had no egress probing at all, and said nothing about it. The steps were: create a network, POST /network/auth-client, paste the by_client_jwt into the prober's environment. Miss them and every provider goes unprobed, which is indistinguishable from a fleet that is simply healthy -- the failure is silent in exactly the way that matters. - feat(model,api): detect providers that go dark, separately from egress health (
ed51f6d60)
Egress health is the wrong instrument for this question. It samples ~131 destinations across several classes and takes minutes per provider, so it can only sweep the fleet slowly -- measured on beta, a provider went days between measurements. For that whole window a provider that has stopped carrying traffic is invisible: it stays connected, keeps accepting clients, keeps being advertised, and answers nothing. Making health cheaper is not the fix; the sampling breadth is what makes it worth ... - test(model): pin the egress-health age bound that stopped advertising blackholes (
8debc157b)
The bound landed with the fix; nothing pinned it. That is the gap worth closing, because the behaviour it enforces is a NEGATIVE one -- a provider disappearing from the map -- and a bound that silently stops applying looks exactly like a fleet that happens to be healthy. - feat(model): make the active bandwidth probe budget a deployment setting (
d3e5a95c2)
The hourly probe budget is CAPACITY, and capacity is a property of the deployment rather than of this code. A 40-provider fleet on a 4-core box and a production network carrying ~100k providers cannot share one compiled-in number: each has to measure its own limits and set its own. That is the opposite of a behavioural knob like the sampling rate, which stays one value everywhere precisely so every deployment exercises the same path. - feat(model): name the prober as the fault when the whole fleet fails identically (
b6aee48a2)
A prober whose platform jwt had been rejected reported EVERY provider as no_consensus for eight hours. Every individual record was well-formed, every endpoint returned 200, the due queue kept handing out work and the prober kept taking it. Per provider the data was indistinguishable from a genuinely unreachable fleet, and nothing anywhere said "credential".
proxy
urnetwork/proxy bb5794710...3e94ca0f2
- ci: add a concurrency group and a vet step (
52910aebc)
Two house conventions the first commit left out. - ci: build and test proxy on every push (
f76ff29f4)
proxy had no CI. This adds the same build-and-test job the other urnetwork Go repos run, so a push or PR compiles every package and runs the real test suite rather than nothing.
localizations
urnetwork/localizations e4715b9f2...d64c666e2
- ci: build and test the localization store on every push (
bd3fb6fd5)
This repo had no CI. Nothing validated keys/*.yaml until the release build rannpm run genand wrote into the app repos, so a malformed key -- the common failure when a translation lands -- surfaced far from where it was introduced.
glog
urnetwork/glog 45662c0f2...93fe11b3e
- ci: record the TestRollover flake this workflow surfaced (
ed159a35e)
The first CI run on this branch went red on TestRollover, then a re-run of the same commit went green. Root cause, reproduced locally 50k+ times and independent of CI: - ci: add concurrency group and timeout to the glog workflow (
36e3f1128)
The previous commit renamed test.yml to build-and-test.yml but landed only the rename; this carries the content change that was meant to go with it. - ci: build and test glog on every push (
1ee639974)
glog had no CI of its own. This adds a build-and-test workflow so a push to master, a PR against master, or a manual dispatch compiles the package and runs the real test suite. - ci: build and test glog on every push (
ec233ad58)
glog had no CI. This adds the same build-and-test job the other urnetwork Go repos run, so a push or PR compiles the package and runs the real test suite rather than nothing.
goidenticons
urnetwork/goidenticons 408ab24fc...325750b38
- ci: bound the run and vet, and name the file for what it does (
4a65af535)
Follow-up on the same branch, aligning this workflow with the newest house convention (server/test.yml, linux/build.yml) rather than the oldest (connect/test.yml, sdk/test.yml, which predate all three of these habits): - ci: build and test goidenticons on every push (
9293c1409)
goidenticons had no CI. This adds the same build-and-test job the other urnetwork Go repos run, so a push or PR compiles the package and runs the real test suite rather than nothing.
Filtered out of this changelog: 18 merge commits (both sides are already listed), 1 version-stamp commit written by all/run.sh on every release. Re-run all/changelog.py --from v2026.8.21-1025763520 --to v2026.8.22-1026185650 --filters= to include them.