Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 11:24
· 117 commits to master since this release
b40a23e
  • scripts/patch_scryfall_arena_ids.py adds Arena ids from 17Lands card
    ratings to Scryfall default-cards data. Use its output with
    export-set-data --bulk-file for a set Scryfall has no Arena ids for.
    docs/set-profiles.md describes the steps. (#861)
  • The daily profile refresh uses the committed card data for a set when
    Scryfall has no Arena ids for it, so sets such as FRA no longer fail with
    card-metadata-unavailable. The refresh summary lists the sets that used it.
  • Draft Omen keeps following a human draft after Arena restarts in the
    middle of it. The parser picks the draft up from the in-progress course in
    the EventGetCoursesV2 course list, so the packs after the restart show up.
    Arena does not log the picks made before the restart. When Draft Omen saved
    them before the restart, recommendations and the pool still use them, and
    the full pool from DraftCompleteDraft fills any gap at the end. (#856)
  • watch and replay no longer fail in the middle of a human draft when
    Arena answers a failed pick with the table state. The parser drops the
    failed pick and records the card from the resubmitted request. Other
    unknown pick response bodies are ignored. (#855)
  • Before the first draft arrives, draftomen-tui watch --source moxgate says
    it is waiting for the Moxgate extension to send a draft instead of waiting
    for Arena. (#851)
  • The desktop app no longer has a Mocked Draft button in the header. Mocked
    Draft is now an option in the draft source selector next to Arena and
    Moxgate, and choosing it opens the Mocked Draft dialog. With Moxgate
    selected, the account shows as moxgate and cannot be changed. (#850)
  • The TUI Moxgate snapshot test waits for the receiving phase as well as the
    rendered pack. The pack can render before the phase changes, which failed
    at random on a busy CI runner.
  • draftomen-tui watch --source moxgate shows Moxgate drafts in the TUI.
    --plain is no longer required. Quitting the TUI stops the receiver and
    frees the port. (#833)
  • The TUI account-cycling tests wait for the ChooseAccount worker to finish
    after pressing "a" instead of pausing once, which failed at random on a
    busy CI runner.
  • The desktop app has a draft source selector next to Settings. Choosing
    Moxgate starts the receiver on 127.0.0.1:47326 and shows whether it is
    loading card data, waiting for the extension or receiving a draft. Choosing
    Arena stops the receiver and frees the port. A port already in use shows an
    error naming the port. Card data comes from the Mocked Draft Scryfall bulk
    file set in Settings or passed with --scryfall-bulk-file. (#829)
  • draftomen-tui watch --source moxgate --plain saves Moxgate drafts under the
    fixed account id moxgate and prints a deck build sheet after "Draft
    complete". Moxgate snapshots carry no account id, so these drafts were not
    saved before. (#839)
  • The Qt adapter startup coalescing test waits for the post-start state to
    arrive instead of reading the observed states as soon as the session is
    ready, which failed at random in the parallel CI gui job. The gui nox
    session now runs the Qt test files one at a time, because several of them
    failed at random with parallel workers on the 4-core CI runner. Other tests
    still run in parallel.
  • A Chrome extension in extensions/moxgate reads the Moxgate draft page and
    posts each pack and pool to draftomen-tui watch --source moxgate --plain on
    127.0.0.1. Load it unpacked from chrome://extensions. Its popup shows whether
    Draft Omen is running and what happened to the last snapshot. A new extension
    CI job runs its tests. (#828)
  • draftomen watch --source moxgate --plain starts the Moxgate receiver
    instead of following Player.log and shows recommendations for each pack the
    browser extension posts. --moxgate-port overrides the default port 47326.
    Card data for all sets comes from one local Scryfall bulk file, --bulk-file
    or the Mocked Draft download in the app dir, and watch fails at startup when
    that file is missing. The Moxgate source needs --plain for now. (#832)
  • Tests run in parallel with pytest-xdist by default. The full suite takes
    about a quarter of the time it took before on a 10-core machine. Pass -n 0
    to run tests one at a time. The Moxgate receiver also checks for shutdown
    every 0.05 seconds instead of 0.5, so stopping it is faster. The CI tests
    job no longer runs the Qt test files, which the gui job already runs, and
    a Qt adapter test now waits for each published state before reading it.
  • Add a loopback receiver for Moxgate snapshots. It listens only on a loopback
    address, accepts POST /moxgate/snapshot from chrome-extension:// origins
    that send the X-Draftomen-Moxgate header, caps the body at 256 KiB and
    answers a malformed snapshot with 400. Accepted snapshots go on a queue that
    the session thread turns into draft events. Nothing starts the receiver yet.
    (#831)
  • Add a Moxgate snapshot adapter that turns successive draft page snapshots
    into the existing draft events. It derives each pick and its pack and pick
    coordinates from the change between snapshots, and rejects out-of-order,
    skipped or unresolvable snapshots with an error. (#826)
  • The website has a News page that shows the release notes of each version,
    taken from this changelog. Releases now write the page with
    scripts/write_release_news.py, and the release check fails if it is missing.