v2026.9.11-1043550030
"Translucent Blue Nodular Jasper"
| Asset | SHA256 | VirusTotal analysis |
|---|---|---|
| URnetworkSdk-2026.9.11-1043550030.aar | be1083622f09670407e6e446bd76ce402898857db3abc4bf51dbbda71ac0c0b4
| not submitted |
| URnetworkSdk-sources-2026.9.11-1043550030.jar | 740d03e84686824ea65f7e4be46c60466cd623a59b921f47aa7e60b91e7a275f
| not submitted |
| URnetworkSdk-2026.9.11-1043550030.xcframework.zip | b488baf8262a2213d8e913d6b47e55e0a469b28a35a90dcde42c01156a4276f7
| not submitted |
| URnetworkSdkJs-2026.9.11-1043550030.zip | ca4e67a974024167a2864fa34f50d3b51177f2da79fba7e569ce26f05bdd3e6c
| not submitted |
| urnetwork-provider-2026.9.11-1043550030.tar.gz | b83aba69f1765aa1f90ba90f6d60f8f089d23980e6ecccd608821e3868d7bfba
| not submitted |
| urnetwork-validator-2026.9.11-1043550030.tar.gz | c30202d3eeff79a10204333b4817ac8635874f5099c99ba7255c9fd1818f29e8
| not submitted |
| urnetwork-snclaim-2026.9.11-1043550030.tar.gz | 327cce216c2d9e290ac8b85fe3fb4d270e45c58dd84f15096ae3347826d29102
| not submitted |
| urnetwork-proxy-socks-2026.9.11-1043550030.tar.gz | ba332a0f03259f7ac6f520a2fb809ecb56a83bc599fc16711b1fde0f12340625
| not submitted |
| crx-@urnetwork-extension-2026.9.11.zip | 5147c1c1529edddf20eec0b9682064fe02ef0e88c2005c10788b541c70b42810
| not submitted |
| crx-@urnetwork-extension-2026.9.11-firefox.zip | 1f7ad7d11cc358ee74c406f029bdc9384d830203df2b46447b0af9886a7a869a
| not submitted |
| URnetwork-2026.9.11-1043550030.ipa | 16600cb263b410143e2cc6b3d59edb06ea0429cbb31d0904ccaa25b358fe5a0f
| not submitted |
| URnetwork-2026.9.11-1043550030.pkg | de12583e615b8f5ce35394693753fa3c44c20cafc441566d34811040e96fe4dc
| not submitted |
| URnetworkSdkWindows-2026.9.11-1043550030.zip | 0c65a93a1f367a59a9b1f8f9190abd37200f076bb65a0fbcaece2eb762b4e164
| not submitted |
| URnetwork-2026.9.11-1043550030-arm64.msi | 976a1e9662b81c5320c8e149d7974d4991ee00aee86809df7eb3189f5fb0da7b
| not submitted |
| URnetwork-2026.9.11-1043550030-x64.msi | ee65347c4e1d53aa9fb9dc9ac885ed2540676a928067164eeedda5ef2decc288
| not submitted |
| URnetworkSdkLinux-2026.9.11-1043550030.zip | 2b567dc30699493104e2b9b456b10510932ff673bb540ab7fc2f91047c592b88
| not submitted |
| urnetwork-daemon_2026.9.11-1043550030_amd64.deb | 404a62871c68d722563afa5df690e156691d7b715d33c278feabcf19b64a5a9b
| not submitted |
| urnetwork-daemon_2026.9.11-1043550030_arm64.deb | 0f83f929aed95998a3c649cc762c3df9eeb45f0e87a2a004020c24b76cd4bdd2
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030-amd64.install.tar.gz | 866ec692c2c1a44f077b81b97cb5af7594dcb487fa2792625442d6d49a708845
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030-arm64.install.tar.gz | 3eb69f0bfc3c0bcc253d94913038217995a0dca8d440041a6143918fc4fd4ac2
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030.aarch64.rpm | 53c4ef9c933ebfc584b1ec984fac54883ebe5e75c075ad12d339d52e066d8e84
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030.x86_64.rpm | 80915f2c1b95f825ec75713acd2a5201465aac2f7c886ac1acc8d2618232acbd
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030-aarch64.pkg.tar.zst | 90885afc277ac6cbdb2a05bf1f007a4344c139aaad770e58352e57f41beb3b75
| not submitted |
| urnetwork-daemon-2026.9.11-1043550030-x86_64.pkg.tar.zst | 497b750fedac3af623273b83906360ebd3179f2be26d7cc92b14e6c4e076f646
| not submitted |
| URnetwork-2026.9.11-1043550030-arm64.flatpak | f8a9d1519b5574be21216dc2a3e533d1c920eef6320a435683a4f971d1b9a7f7
| not submitted |
| URnetwork-2026.9.11-1043550030-amd64.AppImage | 0e911cd5d525ff89f8ae5488cb78aac8c95ffb017f103946e146b4dbe9b6a852
| not submitted |
| URnetwork-2026.9.11-1043550030-arm64.AppImage | 8ce198ba3d1f5780ac8a8191e144d01eba10040cefcd24aa21592230aa3f3113
| not submitted |
| URnetwork-2026.9.11-1043550030-amd64.AppImage.zsync | 3ba9a47834be03517ecb0e8246ccc03849ac7c3a65c7618bafb244f3480df957
| not submitted |
| URnetwork-2026.9.11-1043550030-arm64.AppImage.zsync | be01280c9cc5643befe831ab2b45a9d5936cab020bfeab308e5517a24b507543
| not submitted |
| com.bringyour.network-2026.9.11-1043550030-play-release.apk | 166c9399b2eef28e063db8d35e06c431728e7f6eb0c08b22d62db1b8d96aa6c4
| not submitted |
| com.bringyour.network-2026.9.11-1043550030-play-release.aab | 7c555006133fe848cdd598d453611b35fa06ccdf1f5c5c9f3f3ee2841988ab6f
| not submitted |
| com.bringyour.network-2026.9.11-1043550030-solana_dapp-release.apk | d60880228aea3f36da6534eeabd49875d56c76b6707a492abe61833f26e8a27f
| not submitted |
| com.bringyour.network-2026.9.11-1043550030.apk | b10b8009929ebc188e3272626ce06f56985b961cc1fefed259c825ba5e1f4c4f
| not submitted |
Full changelog: changelogs/1043550030_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.
- Pro celebration: pixelate a window snapshot on macOS too
- Pro celebration: pixelate a snapshot of the screen, not the clear overlay
- Pixelate a window snapshot under the Pro celebration instead of the acrylic veil
- 2026.9.10-1042581110 restore android pin
- Subprotocol stats: mirror the query counters and expose the per-id received count
- Expose subprotocols on the device: enable by id, raw listeners, send, query, stats
- Wait for processed client key registration before tunnel admission
Full changelog
Changes in v2026.9.11-1043550030
v2026.9.10-1042581110 ... v2026.9.11-1043550030 -- 106 commits across 9 components.
android
urnetwork/android 446673c21...164a1562b
- update (
164a1562b)
apple
urnetwork/apple 03ca14c11...533d5b399
- Pro celebration: pixelate a window snapshot on macOS too (
533d5b399)
The macOS branch of ProScreenSnapshot returned nil, so the celebration flew confetti over an unfiltered screen. Draw the key window's content view into a bitmap at the backing scale with cacheDisplay and hand it to the same snapshot mosaic iOS uses. - Pro celebration: pixelate a snapshot of the screen, not the clear overlay (
ea9131f6a)
Since the celebration moved onto a clear overlay (the pixelation is a raster-layer filter, and the UIKit-backed tab view under it cannot be rendered into that layer without the unsupported-view placeholder), the mosaic had nothing to sample: the confetti flew over a sharp screen.
windows
urnetwork/windows 43d3167d7...ed9a7cb3b
- Pixelate a window snapshot under the Pro celebration instead of the acrylic veil (
ed9a7cb3b)
build
urnetwork/build bcb80e165...f667cf5a6
- 2026.9.10-1042581110 restore android pin (
f667cf5a6)
sdk
urnetwork/sdk 552c023b8...6337f4e54
- Subprotocol stats: mirror the query counters and expose the per-id received count (
6337f4e54) - Expose subprotocols on the device: enable by id, raw listeners, send, query, stats (
e0a0d6758)
connect
urnetwork/connect 8e46dde54...cba4ea17a
- FLIGHTGATEFIX.md: Phase 0 matrix, device baseline, third report, PRs become the base (
99556e3a6) - FLIGHTGATEFIX.md: fold in the full throughput report and review PRs 208 and 209 (
76abd8124)
The second report supplies rig evidence for four of the six mechanisms and two upstream PRs. Records what each PR changes, the RTO release that grows the window, the ack policy that reverses LOWBAR's measured ack affinity on mobile, the low-bar regime the gate change reaches, the tun bound that leaves the reentrancy in place, and the missing failure tests; restructures the candidates one per mechanism with gates. - FLIGHTGATEFIX.md: peer review of the unreliable flight gate report and a research plan (
861001616)
Confirms the route-wide admission gate against per-lane flight accounting, then names four untested mechanisms that produce the same trace: acks pinned to the p2p lane, cross-carrier reordering read as loss, RTP fragment loss amplification, and a fast path with no liveness. Lists the deterministic tests that decide each hypothesis, the missing mixed-carrier PERFVAR campaign, the counters to add first, and how each fix candidate is judged. - transfer: defer a timeout resend while cumulative ACKs are still advancing (
9f09f848e)
With a direct datagram lane and the relay lane both active, the relay lane suffered spurious-RTO cascades: the sequence's scaled RTO (2x mean RTT, floor 300 ms) sits below the relay's queue-inflated round trip, so a whole window of relay-carried items times out and is re-sent while their ACKs are still in flight. The resends add load, which adds delay, which fires more timeouts. Measured on the provider as bursts above 1,000 timeout resends per 2 s, recurring every 2-4 s for as long as the ... - transfer: end-to-end regressions for the unreliable-lane gate and the ACK lane (
124f48d7f)
The unit tests around the flight-gate fix exercise the predicates directly. These two drive the real Client send and receive pumps over in-memory routes, so they fail on stock with the exact shape of the field failure rather than on an internal invariant. - transfer: mixed-lane recovery — stop gap-resending relay items that are merely behind the direct lane (
51cb08b91)
With a direct datagram lane (WebRTC fast path, ~20 ms) and the relay carrier (150-300 ms) both active, an ordered stream is striped across the two. Every relay-carried item is routinely acknowledged after three or more later items that rode the direct lane, which selective-ACK gap recovery read as a hole and re-sent at once: 1,000-2,800 gap resends per 2 s on the provider while p2p was live, i.e. the relay's traffic doubled by copies of packets that were only late. The same mixing fed the ... - transfer, p2p: keep ACKs off the unreliable lane and size the ICE UDP socket buffers (
e50b4b38a)
With the flight-gate fix in place, a live p2p route still cost the pinned provider most of its throughput: the client's cumulative ACKs for p2p-delivered packets were sent back with p2p carrier affinity, and the provider's kernel UDP receive buffer (Linux default ~208 KB; connect never set SO_RCVBUF on the ICE sockets) dropped thousands of them per run (Udp6RcvbufErrors +934 / +5261 / +7916 in three p2p-live runs). Each lost cumulative ACK timed out the sender's whole 2 MiB window ... - transfer: never let a full unreliable flight stall a sequence that has a reliable carrier (
4c47ef2bc)
Root cause of the "pinned provider collapses to ~1 Mb/s / 0 and never recovers" report. When a p2p (WebRTC datagram fast path) route joins the h1 relay route, items first carried by the unreliable lane are tracked in the sequence's unreliable flight (sendFlightController). canSendForKey() gated every send of the sequence — h1 included — while byteCount >= byteLimit, and an RTO only halved the limit (floor 8 KiB / 8 messages) without releasing the lost items. On a lossy p2p carrier the ... - Wait for processed client key registration before tunnel admission (
eb163c007) - tun: reproduce the injecting-reader deadlock through the real stack (
54546839a)
The existing tests cover the bounded wait at the link endpoint. This one reproduces the deadlock that motivated it: the goroutine draining the tun's outbound queue is also the one injecting inbound packets, and the injected packet provokes a reply netstack writes back into that same full queue. - tun: bound the netstack outbound-queue wait so an injecting reader cannot deadlock the stack (
c109440ac)
tunLinkEndpoint.WritePackets waited without bound for space in the outbound (tun read) queue. The goroutine that drains that queue can itself be inside an inbound injection: the socks client's tun reader calls SendPacket, the multi-client synchronously hands a race-buffered response to the receive callback (ip_remote_multi_client.go:6798), the callback writes it into netstack, and netstack answers it (a RST for a closed flow) by writing back to the tun. That write waits for the queue this ... - SUBPROTOCOL.md: the retain helper's name in the proposal section (
16090f2c3) - SUBPROTOCOL.md: RetainSubprotocolBytes takes the bytes and returns a pooled copy (
8aab4db67) - Client.receive: an empty batch still reaches the callbacks (
d5481bc76)
The subprotocol dispatch only runs on a non-empty batch, and only a batch that was made entirely of subprotocol frames and queries ends there. The receive hook had returned early on any empty batch, which skipped the callbacks for the nil batch two inline-dispatch tests hand in directly. - Docs: SUBPROTOCOL.md is implemented; DESIGNNOTES.md gains the layer (
aa7a40368)
The design document drops "proposal" from its title and its status line names the four commits. The layered model in DESIGNNOTES.md lists subprotocol.go as the layer where user protocols ride as frames. - Subprotocols end to end over the in-process transports (
91d88278a)
Two clients on the gateway transports of transfer_test.go: a hand-rolled codec and a ProtoCodec of SimpleMessage from a to b, a raw listener alongside the typed handler seeing the same messages in order, an unregistered id dropped and counted, a plain frame delivered after them, the sender and receiver counters, the peer query answered over the companion reply, and the old-peer case where the receiver has forgotten its registry: the subprotocol frames drop, the sequence keeps delivering. - Client.receive hands subprotocol frames and queries to the registry first (
492f0bbdd)
The dispatch runs ahead of the generic receive callbacks, inline on the receive goroutine like every frame today: subprotocol frames go to their raw listeners and typed handler, the two query frame types are answered or completed, and the compacted rest of the batch reaches the application callbacks as before. A batch left empty returns early. The sequence layer is untouched. - Subprotocols: codec, registry, dispatch, sends, peer query and stats (
b34042daa)
The user-facing side of SUBPROTOCOL.md §10 in one file. A subprotocol is an id and a codec (Size, MarshalAppend, Unmarshal, the Go protobuf shape; a ProtoCodec adapter covers any protobuf message, and a codec may own its instances through New/Release). A send takes one pool buffer of exactly the wrapper size, writes the SubprotocolMessage header by hand and lets the codec append the payload in place, byte-identical to proto.Marshal; a codec whose Size disagrees with what it wrote is ... - protocol: the subprotocol message and the peer subprotocols query (
4eaba5b5c)
Adds the three messages of SUBPROTOCOL.md §10.1 and their frame types: Subprotocol (30) carrying a SubprotocolMessage{subprotocol_id, message_bytes} whose payload a registered codec decodes in place, and the TransferSubprotocolsQuery/Result pair (31, 32) that lets a peer ask which subprotocols another can receive. The message carries a Message suffix because a proto3 enum value shares the package scope with message names. ToFrame/FromFrame gain the generic cases; the hot path in ... - SUBPROTOCOL.md: review notes and the companion reply of the peer query (
040af21dc)
warp
urnetwork/warp 6544fe135...61f9a55c9
- Gate Grafana publishers on child readiness (
61f9a55c9)
sn
urfoundation/sn 3a042dabc...bed0fe4f9
- Make server test fixtures portable (
bed0fe4f9) - Keep provisional payout cohort diagnostics separate from API failures (
8744f44a0) - Use recorded V2 receipts for provisional epoch completion (
54dccbda1) - Handle absent native storage and record settled testnet usage (
b2895a5fb) - Observe provisional validator intents from the retained V2 state (
d455b10da) - Canonicalize validator contract addresses before measurement production (
2b22fb192) - Record actual runtime recovery in the shortened testnet plan (
b653ff83f) - Exclude local replay work from attempt stream HTTP timeout (
67bdfc7f0) - Prioritize the running epoch scenario in testnet execution plan (
793610746) - Retain original EVM recovery checkpoints through finalization (
69410c2ca) - Keep conformance drills out of provisional traffic startup (
88eb0611f) - Resume provisional campaigns through unlimited owned RPC (
732fe11d0) - document canonical competition patches (
582e4a38f) - Reuse authenticated parent deployment payloads during provisional campaign (
45cc59bc2) - Give provisional boundary reads their bounded shared preparation budget (
eb344cc0d) - Reuse native campaign connection and retain closed measurement inputs (
74b1bf9d2) - Reuse live provisional receipts at scenario entry without repeating doctor (
9b59927a3) - Keep initial trail registration across step waits and waive provisional publication gate (
79c527827) - Observe fresh proofs during provisional campaign instead of blocking launch (
d3125920e) - Run provisional testnet with retained staging authority and partial providers (
c6de16048) - Keep provisional provider startup running through slow readiness (
a57f4a5b3) - Record archive preparation as waived for provisional campaigns (
681ad8cb5) - Resume provisional validators from completed local recovery and publication records (
8b9368c46) - Tolerate brief empty argv observations during child startup (
01b8c1f8c) - Reuse retained historical observations during provisional validator startup (
4299079da) - Read claim discovery epoch independently of optional chain settings (
6bf920e67) - Resume provisional validators from retained activation and coordinator history (
cc695b1a3) - Resume retained validator namespaces and tolerate recovered provisional restarts (
4540ae8e7) - Keep provisional testnet runs alive through log findings (
a22168636) - Resume authenticated validator disk state without legacy migration (
0cb0f2aca) - Lock the live testnet resume correction (
2ead69c81) - Resume closed activation attempts and prioritize live testnet execution (
a7d7fbe4c) - Lock the repaired validator evidence source and record recovery (
66a1f1590) - Honor transition limits for typed validator evidence (
6b442d1a7) - Allow the measured serial custody race census to finish (
36c638dce) - Freeze the reviewed testnet release lock and resume handoff (
909c8c6d9) - Track current Subtensor deployment files in the release lock (
26b1ced91) - Resume completed activation setup with signed provider wallets (
8951baf38) - Split simulator evidence owners and record provisional progress (
e76a0e696) - Record incomplete finalization evidence and remaining acceptance work (
bc7dd7e0c) - Reuse processed tunnel registrations across validator requests (
a0c082d79) - Prepare pinned validator tunnel before sending verify traffic (
6a8ebde22) - Use normal control routes for loopback HTTP operators (
5fb408d89) - Align validator control timeouts with provider registration (
ac888985f) - Defer closed native inputs explicitly in provisional testnet runs (
0eaac9c4e) - Require processed identity keys for validator tunnel clients (
03579c352) - Preserve shared attempt preparation across trail timeouts (
e8a73014e) - Reuse successful provisional admission history across refreshes (
c42d8a9b6) - Skip repeated doctor for verified no-spend live resume (
1e38b3846) - Allow explicit seeded admission discovery for provisional testnet (
206258ab1) - Report retained validator admission refresh failures (
0bb6235a2) - Adopt live topology during provisional testnet resume (
761578612) - Allow testnet swarm registration to wait for chain observations (
728fe0eaf) - Stage provisional provider startup within the shared RPC quota (
18482b9c2) - Allow synthetic wallet compatibility in provisional testnet resumes (
8079bd051) - Allow provisional testnet resume with authenticated completed work (
6414df77c) - Persist verified historical audits across executor restarts (
79022715f)
Authenticate exact immutable proofs and retain fresh chain and local evidence checks. Preserve successful install reads before later receipt failures and retry interrupted read-only EVM response bodies within the existing bounds.
server
urnetwork/server a87ec1b62...ce6d26e2e
- Clarify stale client rollout evidence (
ce6d26e2e) - Add service observability and subscription monitoring (
907c72004) - Fix provider key publication monitoring (
5cf417d4a) - Harden monitor root-cause diagnostics (
7ff0219bc) - Drain provider blackhole probes independently (
785f8084c) - Fix Connect daily onboarding event writes (
d0d30a0fa) - Require coherent proxy pool metric snapshots (
652fd5eb5) - Document Grafana publisher readiness failures (
f5b37eeed) - Reject undersized reserve moves and reconcile expired unsigned deposits (
4ff898076) - Use the server logging module for artifact stream diagnostics (
36f73e620) - Recover expired epoch closes and keep bounded evidence streams readable (
d0cdededd) - record staging evaluator capacity (
cf796ee06) - fix evaluator scorer repository trust (
1771f2b68) - Batch transaction fee preparation to avoid repeated RPC queue waits (
0de2125e4) - Seed historical provider attribution fixtures without current membership assumptions (
4b8c3303f) - Diagnose Subtensor peer loss (
9766c1175) - Verify monitor binaries are executable (
d707a7a2e) - Use canonical Subtensor deployment runner (
26690ed52) - Use current Connect cleanup revision (
7ea9bae08) - Classify onboarding app-open attribution failures (
fd1f0b296) - Track onboarding email engagement (
0aac4806b)
Filtered out of this changelog: 5 merge commits (both sides are already listed), 1 version-stamp commit 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-1042581110 --to v2026.9.11-1043550030 --filters= to include them.