Skip to content

v0.111.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 15:04
· 181 commits to main since this release
Immutable release. Only release title and notes can be modified.
33aa23a

Downloads

Desktop installers are published with the desktop releases: https://github.com/phase-rs/phase/releases/latest

This release carries the signed native servers the desktop app downloads for itself:

Platform File
Windows (x64) phase-server-slim-x86_64-pc-windows-msvc.exe
macOS (Apple Silicon) phase-server-slim-aarch64-apple-darwin
Linux (x86_64) phase-server-slim-x86_64-unknown-linux-musl
Linux (aarch64) phase-server-slim-aarch64-unknown-linux-musl

Changes

  • fix(engine): make the recipient-read classifier exhaustive (#9884) (#10034)
  • client: priority alerts — glow, chime and tab title when priority returns (#9982)
  • chore: refresh metagame feeds (#10033)
  • Fix Rally the Righteous: pump every creature reached by the Radiance … (#9963)
  • Fix Code of Constraint: propagate ParentTarget through spell resolution next-untap restrictions (CR 207.2c, CR 608.2c) (#9989)
  • feat(engine): full one-time boon support (#9686)
  • Add Grim Repriser (#9994)
  • chore(card-data): refresh MTGJSON token & subtype catalogs (#9990)
  • perf(engine): offer named-choice answers without per-answer simulation (#9988)
  • feat(client): let Host Game pick each AI seat's deck (#9974)
  • Fix hidden-object name leak in id-keyed side tables (#9377 section 2) (#9542)
  • Add "Starting intensity N": 12 cards unlocked, Ribald Shanty fixed (#9978)
  • Fix unread enters-with counter placements failing open; read paid X in the choice branch (#9662) (#9983)
  • chore: refresh metagame feeds (#9984)
  • parser: "they" / "that player" in accepting-player, vote and punisher bodies bind the frame's player, not the caster (CR 608.2c) (#9981)
  • engine: after an exile-until loop or a counter, "that card" / "it" names that object, not the trigger source (CR 608.2c); coverage reports a counter rider tail the runtime drops (#9980)
  • parser: bind "that player" / "they control" to the clause's subject or declared damage recipient, not the caster (CR 608.2c) (#9971)
  • engine-implementer: comment-only and semantics-neutral lint commits rerun only the checks that can see them (#9979)
  • Fix Gandalf the Grey modes on bounce (#9955)
  • engine: an accepted cast's spell is not redirected by its "If you don't" decline branch (CR 608.2c, CR 614.1a) (#9970)
  • Fix Crippling Fear: keep "that aren't of the chosen type" in the pump subject (#9950)
  • fix(parser): a derived costed line is an activated ability, not a static (#9969)
  • perf(engine): share one off-zone keyword gather per unchanged state (#9951)
  • perf(engine): share unchanged objects across GameState clones (#9965)
  • perf(ai): memoize exact search successors and reuse root decision work (#9933)
  • parser: an additional-cost line labeled by an ability word or flavor word parses as the spell's cost (CR 207.2c, CR 207.2d, CR 601.2b) (#9948)