@torrent-tv/proxy 2.80.7 → 2.80.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -324,6 +324,21 @@ export class EncodeOrchestrator {
324
324
  )
325
325
  });
326
326
 
327
+ // A move is the plan taking a running encoder away from where it already
328
+ // stands, which is exactly the decision that was found wandering back and
329
+ // forth in the field on 2026-09-07 with no way to see why: the "because"
330
+ // line names the comparison in words, never the numbers it was decided
331
+ // from. Said here, once per reconcile, and only when a move actually
332
+ // happens — everything a rerun of the same decision needs: the windows
333
+ // this call saw (priority, the real time, which side of the viewers),
334
+ // the budget, and where every live run stood.
335
+ if (actions.some((action) => action.type === "move")) {
336
+ this.logger.info(
337
+ `encode-plan move on ${address}: windows=${JSON.stringify(windows)} ` +
338
+ `maxRuns=${this.#affordableOn(address, live)} ` +
339
+ `live=${JSON.stringify(live.map((run) => ({ from: run.from, to: run.to, head: run.head, speedX: run.speedX })))}`
340
+ );
341
+ }
327
342
  for (const action of actions) {
328
343
  if (action.type === "stop") {
329
344
  this.#stop(action.run, action.because);