maxpool 1.17.0 → 1.18.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maxpool",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "description": "Multi-account Claude Code proxy with adaptive, rate-aware load balancing across Claude accounts",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -2592,7 +2592,19 @@ export class AccountManager {
2592
2592
  const fleetRecentWeight = ctx?.fleetRecentWeight ?? 0;
2593
2593
  const recentWeight = this._loadSummary(account, this.scheduler.spreadWindowMs, now).weight;
2594
2594
  const share = fleetRecentWeight > 0 ? recentWeight / fleetRecentWeight : 0;
2595
- const spread = share * this.scheduler.spreadShareWeight;
2595
+ // SPREAD also carries the fast-refill discount (2026-08-29, owner option 1). The
2596
+ // spread term is the equaliser that pulls every account back to fleet parity — at
2597
+ // converged equal share it is ~10x larger than the utilization+pace gap the
2598
+ // discount bought before (measured: spread 1.500 vs 0.152 on the real fleet), so
2599
+ // without this the unlimited account's preference washes out to ~52/48 and a
2600
+ // weekly-limited sibling burns to 100% while the fast window's capacity expires
2601
+ // unused every 5h. Discounted, the equilibrium share of a weeklyAbsent account is
2602
+ // ~mult/(1-disc*(1-share)) of a sibling's — at the default 0.6 discount roughly
2603
+ // 2.3x early in its window, fading to parity at the same ses 0.65 the multiplier
2604
+ // already uses. Same safety invariants as the other discounted terms: a
2605
+ // multiplier of 1 makes it byte-identical to pre-2026-08-25 behaviour, and it is
2606
+ // never applied to concurrency/capPenalty/reserve/critical.
2607
+ const spread = share * this.scheduler.spreadShareWeight * refillMult;
2596
2608
 
2597
2609
  const ramp = this._recoveryRamp(account, now);
2598
2610
  const reserveCost = this._reserveCost(account, now, weeklyState);