github urnetwork/build v2026.9.10-1042581110

3 hours ago

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.

Don't miss a new build release

NewReleases is sending notifications on new releases.