#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>
3.6 KiB
• رفع باگ "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