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.isValidfor 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, orChessUCI. - Swift Package Manager and Swift Package Index consumers can depend on version
1.1.0or 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.