v68.3.0: cut backup-retry cooldown 15s -> 5s#229
Merged
Conversation
The FailedBackupPlayerTypes lockout kept the backup search off a contaminated player type for 15s. In the universal CSAI-flip reality a type can become clean again within seconds; 15s left the search avoiding a recovered type far longer than warranted. Cut to 5s, porting GosuDRM/TTV-AB v8.0.0 'reduced ad-induced stalling'. Deliberate latency/load tradeoff: ~3x more retry fetches. Shipped with the cold/warm token-fetch instrumentation (#228) so the added cold-fetch load is visible in field logs and tunable/revertable against data. vaft-only. Testing pair shipped direct (v650.0.0). Rebased onto current master; CLAUDE Testing version kept at 651. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
abe658b to
3362a65
Compare
ryanbr
added a commit
that referenced
this pull request
May 21, 2026
Append cold-cache decomposition to the 'backup found in Nms' log: '(cold cache: N token fetch[es])' vs '(warm cache)'. A per-search local counter increments on the cold path where the GQL getAccessToken round-trip is actually taken — which only happens when BackupEncodingsM3U8Cache misses, not in warm steady state. Pure observability — no behavioral or load change, the entangled backup-search loop is untouched. Complements v68.3.0 (cooldown cut) by making the cold-fetch-load cost visible in field logs. Rebased onto current master (post-#229 merge); CLAUDE Testing 651 preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ryanbr
added a commit
that referenced
this pull request
May 21, 2026
Append cold-cache decomposition to the 'backup found in Nms' log: '(cold cache: N token fetch[es])' vs '(warm cache)'. A per-search local counter increments on the cold path where the GQL getAccessToken round-trip is actually taken — which only happens when BackupEncodingsM3U8Cache misses, not in warm steady state. Pure observability — no behavioral or load change, the entangled backup-search loop is untouched. Complements v68.3.0 (cooldown cut) by making the cold-fetch-load cost visible in field logs. Rebased onto current master (post-#229 merge); CLAUDE Testing 651 preserved. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ryanbr
added a commit
that referenced
this pull request
May 21, 2026
Consolidates the master-only v68.3.0 (cooldown 15s -> 5s, #229) and v68.4.0 (cold/warm token-fetch instrumentation, #228) CHANGELOG entries into a single v68.2.0 release section, and renumbers the release-pair scripts to v68.2.0/83 to match. GitHub Releases is currently at v68.1.0; the v68.3.0/v68.4.0 labels on master were staging, not formal releases. The next formal published release is v68.2.0, content-identical to the v68.4.0 master snapshot. Auto-update consequence (deliberate): Tampermonkey/Violentmonkey will not downgrade local @Version 68.4.0 to 68.2.0 — clients who pulled the master raw URL between #229's merge and this commit will stay on v68.4.0 (which is a content-superset of v68.2.0) until the next release >=68.5.0 ships. They lose nothing. #230 (IVS WASM crash circuit-breaker, still open) is currently at v68.4.0/85 in its branch and will need rebasing + renumbering (to v68.3.0/84) after this lands. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
FailedBackupPlayerTypeslockoutif (failedAt && (Date.now() - failedAt) < 15000)→< 5000in vaft's backup-search loop (all 4 vaft files).Why
The 15s lockout keeps the search off a player type that returned ad-laden — but in the universal CSAI-flip world a type often becomes clean again within seconds. 15s left the search avoiding a recovered type far longer than warranted, prolonging ad-break stalling. Ports the GosuDRM/TTV-AB v8.0.0 "reduced ad-induced stalling" tuning (
_getBackupPlayerRetryCooldownMs15000→5000) to vaft's equivalent mechanism.Tradeoff (deliberate, instrumented)
A 5s cooldown retries an ad-laden type ~3× more often → more token/m3u8 fetches → more pressure on the
ConsecutiveTokenFetchFailuresdetection/rate-limit tripwire. This is not a free win. It ships with the cold/warm token-fetch instrumentation (v68.2.0 / #228) precisely so the added cold-fetch load is visible in field logs — the(cold cache: N token fetches)counts are the trip-wire. If they climb materially after this lands, the cooldown is tuned up or reverted against that data.vaft-only (video-swap-new has no
FailedBackupPlayerTypesequivalent). Testing pair already shipped direct to master (v650.0.0). acorn-clean.🤖 Generated with Claude Code