v2026.9.10-1042581110
"Chocolate Brown Orbicular Agate"
| Asset | SHA256 | VirusTotal analysis |
|---|---|---|
| URnetworkSdk-2026.9.10-1042581110.aar | cfeaa99f4952cd22294f97a0290f60cc8185c6b8b5b946470a94bdb96284ab65
| not submitted |
| URnetworkSdk-sources-2026.9.10-1042581110.jar | 1c6cb45c75c5ebf5771e9fc62dcc680f73266cb68988c4f5c7b7ff23fd48ce84
| not submitted |
| URnetworkSdk-2026.9.10-1042581110.xcframework.zip | 613e6ad7d7073f3d0ac2abaf5d6e831b6f3574c616624f988e49133c177f12ad
| not submitted |
| URnetworkSdkJs-2026.9.10-1042581110.zip | 70b72847e1def5cb2c0ccd50f59adb9c256e33c8d6e573da8a315043942c5ad9
| not submitted |
| urnetwork-provider-2026.9.10-1042581110.tar.gz | fd35f0377fdcadc60d0d32b0e8a63e94dcd52846294d79589ddf46248cbc178a
| not submitted |
| urnetwork-validator-2026.9.10-1042581110.tar.gz | 1e88167d6d36c0229589871d6a4768dc6400fb6b28f13239c071f899b9cac57d
| not submitted |
| urnetwork-snclaim-2026.9.10-1042581110.tar.gz | e1fab4328f8ebd9928105fb6e0eb92c8b829a7c3c550bf08fe7f3c071057ab89
| not submitted |
| urnetwork-proxy-socks-2026.9.10-1042581110.tar.gz | 327e30fceaf60749fba2bed80d11c51fb4bb283352f7cd8c57fc8e4f98a6b160
| not submitted |
| crx-@urnetwork-extension-2026.9.10.zip | cf6bcb91d071d92f09ef085254f7cd6941192eb1860fc8ac1f483acf4c3b00c7
| not submitted |
| crx-@urnetwork-extension-2026.9.10-firefox.zip | 51a06f245c698125817359da0e485eb9ea3a502ee3bcc3f389a0284816052692
| not submitted |
| URnetwork-2026.9.10-1042581110.ipa | 5caa004c4678294675f1927cc498ffdb0727a1365240aa75689bbdfaf4809ecf
| not submitted |
| URnetwork-2026.9.10-1042581110.pkg | 507979ae636f5f212e1f23ad1d13b8a6df216e7828cc2af97952307ef36d925a
| not submitted |
| URnetworkSdkWindows-2026.9.10-1042581110.zip | 31a9b8b5021171dcc28165145f104ef55f64fa3863e10a52a92fb6e1c956c32d
| not submitted |
| URnetwork-2026.9.10-1042581110-arm64.msi | fc86d2972a8151e974b933abf4b6e410ae3457af23055f570859fe93c1d89925
| not submitted |
| URnetwork-2026.9.10-1042581110-x64.msi | 406704e80e99aeb557d0ad063792965ea3542f4c1b8d974f6997f42312b32fe2
| not submitted |
| URnetworkSdkLinux-2026.9.10-1042581110.zip | 0dc2d59c76dfe54647a470268c7cda039e46e0e60837e8e8c97889a7700cc9cf
| not submitted |
| urnetwork-daemon_2026.9.10-1042581110_amd64.deb | f2b6f046b893c66f816b647236f40ab86abd991f88224ed68827876bf17d4514
| not submitted |
| urnetwork-daemon_2026.9.10-1042581110_arm64.deb | 1162fc065dd54c1b1848fbc00f311c7c227abd53ae92c7906aed8e171c3d9703
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110-amd64.install.tar.gz | 4ea48d83fb722162df7872120ca2c0c8bf061ecaa61d5f8e078d48e145284e79
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110-arm64.install.tar.gz | 7ccc4e27aa14167e3b2a2063114dab05052dbb28266e6d74c041553dff2e8a46
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110.aarch64.rpm | 3b2276cca0d7185016c03a3cf7f04dd68e4053eb6af9bf3b4f47741f2469a602
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110.x86_64.rpm | e2ca16cbefe1af9c9915733786c49b276c60b8f4563c879dd8724a5e770e7211
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110-aarch64.pkg.tar.zst | a28e3fdfba8fe5084d65dadb620855faa28a0ca12065fe70a71a5fcec83e4dd0
| not submitted |
| urnetwork-daemon-2026.9.10-1042581110-x86_64.pkg.tar.zst | 0f4a9f073fb572cc1e8e483c21e572fafeb98f9927aa94c59e858cd368dfdb69
| not submitted |
| URnetwork-2026.9.10-1042581110-arm64.flatpak | e22b9a7974f1f2365c42997d2ca90ddd3d9ae952d777fa809dce129eae509452
| not submitted |
| URnetwork-2026.9.10-1042581110-amd64.AppImage | c0fb15c041938ecaf6d320e58c96bce71e5a5fee2046c33aa6012f5ce53d54ef
| not submitted |
| URnetwork-2026.9.10-1042581110-arm64.AppImage | 1901e0bcaad2783e7dc00227dcc9b15049ea1abbb5d425cca93eedd4f9bf463e
| not submitted |
| URnetwork-2026.9.10-1042581110-amd64.AppImage.zsync | d36ea173fd36d9e0af01b4cbedb0b166e94ad8aa4aef78940f64601ee7aba7db
| not submitted |
| URnetwork-2026.9.10-1042581110-arm64.AppImage.zsync | 150194cfe857dd526e930e5c69458f49b595ee76076c1ddd1335fe21218b57a7
| not submitted |
| com.bringyour.network-2026.9.10-1042581110-play-release.apk | f9d9b74586f07b3f298d01b4e1106e371013eebeddd45d282ec68e9b774d9a2d
| not submitted |
| com.bringyour.network-2026.9.10-1042581110-play-release.aab | 9855a6b5451228be810b26f94a094c87d1ff04650e6ce5a8ff5b9749464f63b0
| not submitted |
| com.bringyour.network-2026.9.10-1042581110-solana_dapp-release.apk | 5a2291601781e3b81a3e120242cdd7429ae58d9329726641cf15db984e2b4c2b
| not submitted |
| com.bringyour.network-2026.9.10-1042581110.apk | 5e6d98739fd38f13e551570c37f7eba07bf46431e52d4fbbdb61ffb499123043
| not submitted |
Full changelog: changelogs/1042581110_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.
- Connect drawer: own the drawer so its gestures and the content's stay apart
- Connect drawer: opening, closing and scrolling the content are separate gestures
- Connect drawer: the content is back at the top whenever the drawer closes
- Connect drawer: the expanded drawer stops two thirds of the way up
- Connect drawer: keep the sheet's own open behaviour, no fling carry-over
- Connect drawer: the content continues the fling on its own clock, not after the sheet stops
Full changelog
Changes in v2026.9.10-1042581110
v2026.9.10-1042298530 ... v2026.9.10-1042581110 -- 54 commits across 9 components.
android
urnetwork/android ab667a2a3...d4e8e2064
- Connect drawer: own the drawer so its gestures and the content's stay apart (
d4e8e2064)
The Material sheet could not keep the drawer's open/close gesture and the content's scroll separate: while its settle animation runs it consumes any touch's down for its own drag, so a scroll that started right after an opening flick went to a sheet already at the top and died there, and a pull through the content fought the animation frame by frame so only a fast flick closed the drawer. Nothing in the sheet state can move, snap or interrupt it from outside. - Connect drawer: opening, closing and scrolling the content are separate gestures (
67f76b828)
The Material sheet hands a gesture across the boundary in both directions: a drag that opened the drawer ran on into scrolling its content, and a content scroll that reached the top ran on into closing the drawer. Each touch is now one gesture of one kind. A touch that lands while the drawer is anywhere but settled open is a drawer gesture: once the drawer reaches the top the rest of the movement and the release fling go nowhere. A touch on the settled-open drawer is a content gesture ... - Connect drawer: the content is back at the top whenever the drawer closes (
6cab035a0)
The reset watched the sheet's current value and fired one animateScrollTo when it flipped to the peek. On the device it never took: reopening the drawer after closing it by the handle, by the Connect tab or by a fling showed the content where it had been left, so the collapsed peek showed the wrong rows. - Connect drawer: the expanded drawer stops two thirds of the way up (
d036368d7)
The Material sheet expanded to the whole screen once the drawer's content outgrew it, so the drag handle ended up under the status bar and the connect graphic disappeared behind the sheet. Cap the scrolling content at two thirds of the screen less the drag handle: the drawer now opens to that height, leaving the top of the connect graphic exposed above it (as the iOS sheet's fixed expanded height does), and the content scrolls to its end within it. - Connect drawer: keep the sheet's own open behaviour, no fling carry-over (
b1f79c7e9)
Reverts the two carry-over changes. A flick that opens the drawer leaves the content at its top again, as the Material sheet does: the report was about the scroll inside the open drawer, not about the opening flick, and the carry-over read as an extra scroll after every fast release. - Connect drawer: the content continues the fling on its own clock, not after the sheet stops (
0626c042e)
The carry-over waited for the sheet's expand animation to finish and only then flung the content with the leftover velocity. The sheet rises on a fixed 300 ms tween that eases to a full stop, so the content setting off afterwards read as a second, phantom flick: "the drawer scrolls after a drag stops as if a flick happened" (S21 recording and touch trace). - Connect drawer: a flick that opens the drawer carries on into its content (
e5854f33d)
A flick from the collapsed drawer expanded the sheet and stopped dead with the content at its top, cut just below the transport bar, and a second flick was needed to read on. The Material sheet's nested-scroll connection consumes the whole fling to settle at the expanded anchor, so the content never saw any of it. Reproduced on the S21 from a screen recording and the touch trace: every pull in the report was a ~100 ms flick, not a drag.
apple
urnetwork/apple a55858243...dcc720263
- Fix instant account completion classification (
dcc720263) - Auth code sign-in is a pushed screen, like the seedphrase sign-in (
8994b0ebe)
The auth code tile opened a short sheet while the seedphrase tile pushed a full screen. Push an auth code screen onto the login stack with the same shape as the seedphrase one: the title, the code field, the launch button, a back chevron in the toolbar, and the 400pt column on tablets. The sheet and its presentation state go away; the strings are the ones the sheet already used. - Connect drawer: drop the momentum carry-over, keep the speed-first release (
932be6a34)
The content no longer scrolls on its own after a flick opens the drawer: the report was about the scroll inside the open drawer, not the opening flick. The release still decides by speed first, so a short flick opens or closes the drawer reliably. (The momentum driver file itself went out with 11af645e.) - Pro celebration easter egg: count taps on the big connector, not the status icon (
c688d418e)
On iOS the hidden tap sequence was wired to the 16 pt globe icon in the "Connected to N providers" row, so tapping the connector itself (what Android counts, and what a user actually taps) never played the Pro celebration. Move the gate to the connect canvas's tap circle: while connected, five taps within 2 s of each other launch the celebration, silently, and a change of connection status starts the count over. The status row keeps only its provider-locations tap. - Connect drawer: the content picks up the fling on the fling's own clock (
76b3054f1)
The carried momentum started the moment the finger lifted, ahead of the sheet, and on Android the same carry-over read as a phantom flick once the sheet had stopped. Time the pick-up like one fling instead: the content starts at the moment the fling would have covered the sheet's remaining travel (closed form on UIScrollView's exponential deceleration), or when the sheet arrives if that comes first, and continues the curve from there. The momentum driver takes the delay and holds until the ... - Connect drawer: a flick decides by speed and carries on into the content (
d342042de)
The drawer's release only looked at distance, so a short flick could snap back, and a flick that did open the drawer stopped dead with the content at its top: the pan owns the gesture while the sheet moves, and the ScrollView never saw any of the momentum. Same symptom as the Android drawer, where the reproduction (screen recording plus touch trace on the S21) showed every pull in the report was a ~100 ms flick. - Pin CI to Xcode 26.3 (#346) (
556fb7982)
CI has been compiling against the iOS 18 SDK while the app runs on iOS 26 devices. Anything that only exists, or only misbehaves, on the current SDK is invisible here, and that gap has started costing real time.
build
urnetwork/build 8f9194e04...b8c7acf6e
- 2026.9.10-1042298530 restore android pin (
b8c7acf6e)
connect
urnetwork/connect 1b442194b...c61694a49
- SUBPROTOCOL.md: decisions of 2026-09-10 and the final design (
e99e393c7) - SUBPROTOCOL.md: design proposal for user subprotocols on the transfer layer (
87544c1f0) - Onboarding spec: connect.day connection days and the enrollment rule of the results cohort (
2faab6f55) - Report expired provider evaluation budgets (
a2a565bec) - Join generated client removal during teardown (
66aaad429)
warp
urnetwork/warp 3745537bc...6544fe135
- Drain Grafana fronts before stopping children (
6544fe135)
sn
urfoundation/sn 7abaa62b0...913d4e92f
- publish finalized staging leaderboards (
4f27c1beb) - chore(testnet): pin carried evidence target repair source (
90479120f) - fix(sim-testnet): bind carried evidence actions to deployed companion (
0a0d42576) - testnet: bind release lock to runtime 455 stake compatibility (
15c934ebd) - crv4: accept reviewed runtime 455 validator stake layout (
4eebf5661)
server
urnetwork/server eecf13b95...ede96da1f
- Classify historical Solana entitlement backfill (
ede96da1f) - Preserve payment reconciliation retry watermarks (
186cbe731) - Repair Stripe payment network fixtures (
ba7348e33) - Stabilize simulator workloads across architectures (
a89d2db54) - Harden signup quality observations (
c1e71aa4d) - Monitor: signup-quality, the device-backed share of a day's new networks (§2.26) (
22c1771de)
On Main from 31 August 2026 a flat wave of 10,000–12,000 API-created seed-phrase accounts a day sat under about 1,600–2,300 real device sign-ups, so 13–16% of each day's networks ever registered a device. Those networks can neither see an onboarding offer screen nor be mailed, and the raw sign-up count misleads every sizing and estimate that reads it. - Onboarding campaign: enroll only networks with an email login or a device (
ced15b9e1)
Every new network got a campaign row at creation, but on Main about 85% of them are created through the API and never register a device (12k/day raw against 1.6k device-backed), so the cohort, the _all rows and every campaign count were inflated by networks that can neither see an offer screen nor be mailed. - Onboarding results: connection days from connect.day events, not the pruned connection table (
821f81315)
The rollup read a cohort's connection days from network_client_connection for connect_7d, retention_d7 and retention_d30, but RemoveDisconnectedNetworkClients prunes those rows 8 h after disconnect: on Main the table reaches back two days against the 31 the windows need, so every matured cohort read as never connected. - Handle lazy Mimir admission counters (
f97759420) - Classify Grafana Mimir drain refusals (
58272ee90) - Require compact monitor ledger records (
6da0765fa) - Monitor provider evaluation budget exhaustion (
8e80249b0) - Report authoritative provider window failures (
ca3331688) - Use database clock for contract lifecycle ordering (
e791f2640) - Monitor probe cleanup lifecycle (
911872126) - Improve egress probe capacity diagnostics (
a97008ecb) - Attribute payment orphan deployment gap (
289fb1939) - Monitor GitHub backup transfer resilience (
39affd9f3) - Monitor contract HMAC compatibility and egress capacity (
c0716125e) - support staging leaderboard reconciliation (
730e9b0c3) - materialize evaluator workload per attempt (
7ea923a69) - fall back to durable competition queue (
dc9b17dab) - accept authenticated IRQ self-check fields (
c4801659f) - session: correct the operator-facing reading of the source counter (
24ba516ea)
Three corrections to prose an operator reads at page time, all found by adversarial review of the previous commit and each verified against the code. - Count client address resolutions by resolver branch (
d63360399)
An ingress that does not overwrite X-UR-Forwarded-For resolves every request to its own address. ClientIpHashForAddr masks that one address to a /29 or /56, so the whole deployment shares a single per-address budget: five network creates per sliding 24h and five auth attempts per five minutes, both refused with 429. Real users are then blocked on their first account. This happened and was community-reported.
localizations
urnetwork/localizations 1fe2959b0...5e09aa5a5
- Site auth code sign-in: reuse the apps' auth code keys and add the hint (
5e09aa5a5) - Sign-up referral link: the site reuses add_referral_code and referral_code; the optional label is retired (
7088c8615)
operator-proxy
urnetwork/operator-proxy 5562337c8...35b0bc761
- Preserve provider control plane through tunnel teardown (
35b0bc761)
Filtered out of this changelog: 4 merge commits (both sides are already listed), 3 version-stamp commits written by all/run.sh on every release, 1 ungoogle re-tag commit written by all/run.sh. Re-run all/changelog.py --from v2026.9.10-1042298530 --to v2026.9.10-1042581110 --filters= to include them.