- #288 (@amiralishoja): adds i686-pc-windows-msvc to the release matrix. 32-bit Windows users get mhrv-rs-windows-i686.zip on every release. - #290 (@dazzling-no-more): per-deployment longpoll fallback state with TTL-based auto-recovery. Replaces a global AtomicBool that one degraded deployment could permanently flip. Now the aggregate legacy gate only fires when every configured deployment is marked, and self-corrects on TTL expiry — upgraded tunnel-nodes rejoin the fast path automatically. 4 new tokio::test virtual-time tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
• اضافه شدن build برای ویندوز ۳۲ بیتی (i686-pc-windows-msvc) به matrix release (#272, #288): کاربری که سیستم قدیمی ویندوز ۳۲ بیتی داشت درخواست build اختصاصی کرد. حالا artifact mhrv-rs-windows-i686.zip هم در release page موجوده. ممنون از @amiralishoja برای PR
• رفع باگ "یک deployment معیوب همه sessionها رو روی cadence legacy گیر میاندازه" (#290): قبلاً وقتی یکی از deploymentها fast-empty (long-poll نمیشناخت) برمیگردوند، flag global server_no_longpoll فعال میشد و کل sessionها رو روی cadence ۳۰ ثانیهای legacy گیر میانداخت — حتی اگه deploymentهای دیگه راحت long-poll میکردن. اون flag همچنین هیچوقت reset نمیشد، پس tunnel-node بازنشانده تا restart process به مسیر سریع برنمیگشت. Fix: state per-deployment با TTL ۶۰ ثانیه. flag aggregate فقط وقتی فعال میشه که همه deploymentهای یکتا mark شده باشن، و خودش رو از روی expiry self-correct میکنه. tunnel-node ارتقا داده شده خودش به مسیر long-poll fast بدون restart برمیگرده. ۴ تست جدید با tokio::test(start_paused = true) پوششدهی timing logic. ممنون از @dazzling-no-more
• Add 32-bit Windows (i686-pc-windows-msvc) to the release matrix (#272, #288): a user with a legacy 32-bit Windows machine asked for a dedicated build. mhrv-rs-windows-i686.zip now appears alongside the other artifacts on every release page. Thanks @amiralishoja for the PR
• Fix "one degraded deployment drags all sessions onto the legacy cadence" bug (#290): previously, a single fast-empty observation from any one deployment flipped the global server_no_longpoll flag, dragging every session onto the 30-second legacy cadence even when the other deployments were happily long-polling. The flag also never reset, so a redeployed/recovered tunnel-node didn't return to the fast path until the mhrv-rs process restart. Fix: state is now per-deployment with a 60-second TTL. The aggregate flag flips only when every unique configured deployment is marked, and self-corrects on read when entries expire. An upgraded tunnel-node rejoins the long-poll fast path on its own. 4 new tests using tokio::test(start_paused = true) to cover the timing logic without burning real wall-clock seconds. Thanks @dazzling-no-more