Files
therealaleph 2a5946f457 v1.7.4: ship #275 (YouTube split) + #280 (negative-cache + pre-warm)
#275: youtube_via_relay no longer routes video/image CDNs through
Apps Script. The flag now correctly carves out only the API/HTML
hosts where Restricted Mode is enforced; video chunks come direct
from googlevideo.com (which was missing from the SNI rewrite list
entirely — fixed). Long videos no longer hit Apps Script's 6-min
execution cap, and single-chunk timeouts no longer abort playback.

#280: TunnelMux now caches "destination unreachable" responses from
the tunnel-node (Network is unreachable / No route to host) for 30
seconds, short-circuiting subsequent CONNECTs to that destination
with 502 (HTTP) or 0x04 (SOCKS5). Saves ~5 batches/second on
IPv6-only host probes. Startup pre-warm pool grew 12→24.

143/143 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 23:04:53 +03:00

3.6 KiB
Raw Permalink Blame History

• رفع باگ "video timeout با send YouTube through relay" (#275): قبلاً وقتی youtube_via_relay = true بود، تمام دامنه‌های مرتبط با YouTube از طریق Apps Script رد می‌شدن، شامل googlevideo.com (chunkهای video) و ytimg.com (thumbnails). نتیجه: یک chunk timeout کل پخش video رو در Firefox abort می‌کرد، و video طولانی به ۶ دقیقه cap اجرای Apps Script می‌خورد. Fix: حالا youtube_via_relay فقط API/HTML رو از relay رد می‌کنه (youtube.com, youtu.be, youtube-nocookie.com, youtubei.googleapis.com — جایی که Restricted Mode enforce می‌شه)، در حالی که CDNهای video/image مستقیماً از Google edge می‌گذرن (googlevideo.com که در نسخه‌های قبل اصلاً در لیست SNI rewrite نبود اضافه شد، ytimg.com، ggpht.com). نتیجه: Restricted Mode بدون قطع شدن video. ممنون از @amirabbas117 برای تحلیل دقیق • Negative-cache برای destinationهای unreachable + pre-warm بزرگ‌تر در startup (#280): گوشی‌های بدون IPv6 وقتی پروب IPv6-only host (مثلاً ds6.probe.whatismyipaddress.com) می‌فرستن، 5+ batch Apps Script در ثانیه روی destination تضمین‌fail هدر می‌رفت. حالا cache 30s × 256-entry در TunnelMux نگه می‌داره برای destinationهایی که tunnel-node با Network is unreachable یا No route to host پاسخ داده — short-circuit به 502 Bad Gateway (HTTP CONNECT) یا 0x04 Host unreachable (SOCKS5) برای هر retry بعدی. Pre-warm pool startup هم بزرگتر شد (۱۲ تا ۲۴ connection به‌جای ۸) برای کمتر شدن first-use latency. ممنون از @dazzling-no-more

• Fix "video timeout when 'Send YouTube through relay' is on" (#275): previously, youtube_via_relay = true routed every YouTube-related domain through Apps Script — including googlevideo.com (video chunks) and ytimg.com (thumbnails). Result: a single chunk timeout aborted entire Firefox playbacks, and long videos hit Apps Script's 6-min execution cap mid-playback. Fix: youtube_via_relay now only relays the API/HTML hosts (youtube.com, youtu.be, youtube-nocookie.com, youtubei.googleapis.com — where Restricted Mode is enforced), while video/image CDNs go direct via Google edge (googlevideo.com was missing from the SNI rewrite list entirely; now added; ytimg.com, ggpht.com stay on SNI rewrite always). Restricted Mode bypass without breaking playback. Thanks @amirabbas117 for the detailed analysis • Negative-cache for unreachable destinations + larger startup pre-warm pool (#280): on devices without IPv6, OS/app probes to IPv6-only hostnames (e.g. ds6.probe.whatismyipaddress.com) were burning 5+ Apps Script batches per second on a guaranteed-fail destination. TunnelMux now keeps a 30s × 256-entry cache of destinations the tunnel-node returned Network is unreachable / No route to host for, and short-circuits subsequent CONNECTs with 502 Bad Gateway (HTTP CONNECT) or 0x04 Host unreachable (SOCKS5). Startup pre-warm pool also grew (12 → 24 connections) to reduce first-use latency. Thanks @dazzling-no-more