Skip to content

SwiftChessTools 1.1.0

Latest

Choose a tag to compare

@Trickfest Trickfest released this 13 Jul 20:22

SwiftChessTools 1.1.0 strengthens chess-data validation, fixes several rules and notation edge cases, and improves ChessUI state handling and accessibility. It remains a source-only Swift package with no binary artifacts.

Highlights

  • Exposes read-only Square.isValid for safely inspecting application-boundary coordinates.
  • Corrects FEN en-passant validation so a legal target remains valid even when no capture is available.
  • Hardens FEN, PGN, SAN, board, square, counter, and UCI-score handling against malformed or extreme input.
  • Preserves live game history, repetition state, and draw claims when ChessUI renders the current game position.
  • Avoids retaining move callbacks in the board model while retaining the existing model callback as a compatibility fallback.
  • Improves promotion behavior, modal accessibility, task cancellation, legal-move marker cleanup, and coordinate contrast.
  • Adds regression coverage for CRLF PGN, en-passant semantics, malformed SAN, extreme values, invalid coordinates, game history, accessibility, timed hints, and Black promotion at the minimum board size.
  • Makes GitHub-hosted CI optional and manual-only while expanding the authoritative local validation gate.

Compatibility

  • No consumer migration is required.
  • Public API compatibility diagnostics against 1.0.5 found no breaking changes in ChessCore, ChessUI, or ChessUCI.
  • Swift Package Manager and Swift Package Index consumers can depend on version 1.1.0 or later within their chosen version range.

Validation

  • All 319 Swift package tests passed.
  • Release package build and ChessCore recipe smoke passed.
  • Public API compatibility checks passed for all three library products.
  • The iOS ChessUIHarness suite passed.
  • All 21 macOS ChessWorkbench UI tests passed.
  • A generic iOS arm64 source-package build passed.

See CHANGELOG.md for the complete list of changes.