Skip to content

sunfish v2026.1

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:06
· 4 commits to master since this release
e2c5626

What's Changed

  • nnue_4k: the packed big-int NNUE engine by @thomasahle in #166
  • nnue_4k: rename sunfish_packed.py to sunfish_nnue.py by @thomasahle in #167
  • Trainer: compensation-class oversampling (--compboost) by @thomasahle in #168
  • Cap null moves at static evaluation by @thomasahle in #169
  • Paper: post-release results and the capped-null epilogue by @thomasahle in #170
  • Skip ineffective depth-zero IID probe by @thomasahle in #174
  • Mate scores carry their distance (issue #11) by @thomasahle in #172
  • Fix CI: derive the repo root from file, not a hard-coded path by @thomasahle in #176
  • Require an ELO measurement in the PR template by @thomasahle in #175
  • Warn that a queued quit turns go depth N into depth 2 by @thomasahle in #179
  • Distance-to-mate optimality in both directions, and why the frontier premise cannot be dropped by @thomasahle in #178
  • Eventual trichotomy: NMC eliminated, fuel-oracle null, and the finiteness theorem by @thomasahle in #192
  • Budget the classic builtin clock with no constant that carries a unit by @thomasahle in #196
  • Time management, consolidated: the pool becomes the classic driver's default by @thomasahle in #204
  • Cap shallow quiet moves and prove the lazy tail by @thomasahle in #193
  • Land tuned null shaping and intrinsic LMR by @thomasahle in #205
  • Restore the shallow mate floor by @thomasahle in #206
  • Add an adaptive UCI game-parameter tuner by @thomasahle in #208
  • Restore the null score guard by @thomasahle in #207
  • ctwin: build the driver's two-ply FEN history (twin searched a different tree from black-to-move openings) by @thomasahle in #210
  • Anchor the joint tuner to the current null guard by @thomasahle in #212
  • ctwin: record that the fidelity gate is interpreter-invariant (pypy3 vs CPython 3.9.19) by @thomasahle in #211
  • Cap every shallow move by static gain by @thomasahle in #213
  • Unify shallow pruning under lazy caps by @thomasahle in #215
  • Record #215 timed confirmation by @thomasahle in #216
  • Unify real-move scoring and resolve captures statically by @thomasahle in #218
  • Three measurement-surface fixes: PV fifty-move stop, promotion cap coverage, python-chess drift by @thomasahle in #219
  • Sharp mate-depth accounting: 3k+4 -> 3k+1, with sharpness certificates by @thomasahle in #214
  • Refute the cheap instance of the mate-depth menu's 3k row by @thomasahle in #226
  • Spend the proved mate depths in CI: 7/13/19 -> 4/10/16 by @thomasahle in #223
  • Organize tuning tools by method by @thomasahle in #222
  • Refute the band weakening of the king-capture clauses by @thomasahle in #233
  • Evaluate shallow caps as one lazy tail by @thomasahle in #230
  • Sync the model's QS admission with the shipped one, and cash it in by @thomasahle in #234
  • Fix red master: re-pin the null-probe citations after the target -> t rename by @thomasahle in #235
  • Use pentanomial SPRT for Elo decisions by @thomasahle in #231
  • The classic builtin clock becomes a per-move budget: soft, a five-fold wall, and no movetime by @thomasahle in #217
  • The budget form's measurements, and the last movetime in CI by @thomasahle in #239
  • tools/book: measure an opening book, and reweight it under a written rule by @thomasahle in #242
  • Measure the per-move overhead the venue actually charges by @thomasahle in #238
  • The final fold: (value, move) pairs, ceiling-gated killer, break at the first settled cap by @thomasahle in #236
  • Skip a ponder go instead of forgetting the move before it by @thomasahle in #244
  • pack.sh: restore --no-hoist-literals + shebang strip by @thomasahle in #246
  • tools/book: build a REPERTOIRE book from the CC0 lichess export by @thomasahle in #245
  • formal: the null reduction becomes a free parameter — dtm_optimal at every NULL_RED in [3..10] by @thomasahle in #248
  • Collect all tuning tools under tools/tune by @thomasahle in #249
  • lichess bridge: reconnect the game stream when it drops mid-game by @thomasahle in #250
  • Use learned intercept in GP reports by @thomasahle in #252
  • Keep gated GP recommendations in the accepted design by @thomasahle in #253
  • Speed up informative opponent selection by @thomasahle in #254
  • ctwin: make the interpreter cross-check reproducible by @thomasahle in #256
  • Make five-tuner comparisons reproducible and crash-safe by @thomasahle in #259
  • Ship the packed engine as compressed.py at the repo root by @thomasahle in #257
  • Check the README line count against compressed.py by @thomasahle in #260
  • Make global search tuning reproducible by @thomasahle in #261
  • Harden global search tuning by @thomasahle in #263
  • Tune shallow search jointly by @thomasahle in #264
  • Recompute tuning consensus before validation by @thomasahle in #262
  • Prepare sunfish 2026.1 by @thomasahle in #266

Full Changelog: v2026...v2026.1