• v0.65.0 7d34f90d50

    v0.65.0 Stable

    joeyr released this 2026-09-29 20:31:50 -05:00 | 25 commits to main since this release

    The three changes 0.64.0 refused now exist, as rehearsals that are never sent. A
    free-agent pickup, a waiver claim with a FAAB bid, and cancelling a claim were never
    tested against ESPN. They run every check and say what they would have sent, but no
    setting of ESPN_WRITES sends them. They are built so they can be tried now and finished
    later: each needs one live probe before it sends anything. The four changes 0.64.0
    measured are untouched and still send under live.

    Added

    • create_free_agent_pickup: add a free agent and drop one of the team's own, at
      once. It refuses a player on waivers (that is a claim), a player on another roster, and
      a name that does not match its id. Rehearsal only.
    • delete_waiver_claim: cancel one of the team's pending claims, named twice, by
      claim_id and by expected_add_player_name, the exact name of the player it adds. It
      refuses a claim that is not the team's or not pending. Rehearsal only.
    • bid_amount on create_waiver_claim, for a league that bids with FAAB. It is
      refused in a league that does not, required in one that does, and checked against the
      budget left. A claim with a bid is a rehearsal; one without is sent as before.
    • untested: true on every rehearsal, with dry_run: true beside it, so a consumer
      that reads only dry_run never offers a rehearsal as a real change. Measured changes
      now say untested: false.
    • The request shapes, read from ESPN's web bundle and not measured. A pickup is a
      claim with type FREEAGENT (addPlayers). A cancel is a WAIVER transaction with no
      items, executionType: CANCEL and relatedTransactionId set to the claim
      (cancelWaiverClaim). The fake ESPN in the tests models both, marked GUESSED. Tests
      that widen the measured set drive the send and read-back paths against it.
    • What promoting one takes, in docs/operations.md: a probe each, and what to
      measure. A FAAB bid cannot be measured in this league, which does not bid.

    Changed

    • Rule 6 in writes.py is now "only what was measured is sent". MEASURED names
      the three changes that send (lineup, claim, reorder), and a test pins it. _sends
      checks it for every change, and _send refuses any POST outside it as a backstop.
    • A claim for a free agent is refused with a pointer to create_free_agent_pickup,
      where it said that pickups were unsupported.
    • The instructions and descriptions name the rehearsals as NOT LIVE YET and tell the
      model to say the change was not made. The live boot line says pickups, bids and cancels
      are rehearsed, never sent.

    Fixed

    • Nothing tested that a claim-order preview or dry run sends nothing. A mutant that
      let the reorder send under both passed the whole suite. The guard itself was right; it
      was unproven. A test now covers both, and all 19 guards touched in this release were
      mutated one at a time and caught.
    Downloads