Changelog

Every change to mistboard.com, month by month, newest first, each line linking the commit that made it. The highlights are on Updates.

The record itself is CHANGELOG.md in the repository.

October 2026

Playing

  • The homepage Jungle Chess row steps from Misty up to KataGo, the new top Jungle Chess bot (c44741d5)
  • When your open correspondence game expires with no taker, the bell tells you and offers to post it again (58b0ac0d)
  • KataGo, the engine that won the Jungle challenge, is the new top Jungle bot above Misty, credited to hzyhhzy's KataGomo, lightvector's KataGo and Kouza's Dandelion 4 network (f424b2df)
  • Every variant can now be played by correspondence, days per move, from the correspondence page, the lobby and a player's profile (851d1a41)
  • Correspondence is now an inbox with boards and deadlines, your own fog view on Fog Chess games, a start-a-game panel, open seeks, and a page for visitors showing every game in progress (e14e36b0)
  • The Flip Jungle room has a larger board with the face-down pieces under it, laid out like the banqi room (574656cf)
  • The banqi room is laid out around its wide board, with the face-down pieces under the board and the table level with it (6ffe2f45)
  • Crazyhouse Xiangqi is open to everyone: captured pieces join your hand, advisors and elephants start in hand and roam their own half, and a drop may give check; rated in the lobby (e463a334)
  • in-game buttons and the clock span the move column; after a bot game the postgame offers New game, and Challenge a friend opens on a random side (6e9613e2)
  • The homepage's play panel is now one row per game: pick a bot level and clock and press Play, or switch to Play a person for open and rated games (0c8f1f8f)
  • Every game can now be played rated through Find opponent between signed-in players: jieqi, Duck Xiangqi, banqi, Jungle, Flip Jungle and Fog Xiangqi join xiangqi, Fortress and Atomic; rated Atomic games now update ratings (27542e79)
  • new game rooms no longer show the 'clock starts after the opening moves' note; the header already shows the time control (0bd24a2a)
  • The game-over badges play again each time you step back onto the final move (9434239f)
  • Fortress Xiangqi shows every droppable piece in each player's tray, faded until you hold it, with a count when you hold two or more (13f88a60)

Learning and puzzles

  • New post: KataGo, a stronger Jungle Chess bot, reading two of its wins over Misty with both engines' evaluations (fa06feca)
  • A Crazyhouse Xiangqi study of six engine games, with notes on the drops that decided them, embedded on the rules page (95b57417)
  • Crazyhouse Xiangqi games, studies and lines can be embedded, with both hands shown (0bc99f1f)
  • the Crazyhouse Xiangqi rules page is rebuilt around boards with both hands drawn: drop zones, drop check and mate, and an engine game to play through (d2170ca3)
  • The jieqi bot wins post shows each game from the winner's side (e2800c4d)
  • the 1,000 games played post reads in Simplified and Traditional Chinese (/zh-hans/blog/one-thousand-games) (85975f14)

Watching and review

  • Jungle bot games now pair only Misty and KataGo, at the strength you play against (e4d993df)
  • A post on the reveal bug in our Pikafish jieqi bot (/blog/pikafish-reveal-bug): what went wrong, where it is in the code, the fix, and what it cost in strength; in English and Chinese (b9ef83cf)
  • The AB-JChess post links all 400 match games, each with its own review page (8b6617f1)
  • Embedded Jungle studies show comments, move marks and side lines, like the study page (fa06feca)
  • Live Crazyhouse Xiangqi games show their board with both hands on Current games and correspondence cards, instead of a variant icon (c44741d5)
  • Atomic Xiangqi games in progress now show their board on Current games, Watch live and the correspondence inbox (58b0ac0d)
  • The note box under a study board shows only on a move with a note, with no empty gap on the others (95b57417)
  • Finished Flip Jungle games on Current games show their final board, with unflipped pieces face-down (dbb4ce56)
  • Current games is now a board wall: live and correspondence boards side by side, filters for variant and for people or bots, and the latest finished games below (e3c8e84f)
  • Embedded games show the analysis marks, and the better move as an arrow on the position where it was missed; the review page draws the stored better move without your engine running (e3c8e84f)
  • Crazyhouse Xiangqi games get computer analysis, and its bot games appear on Watch (0bc99f1f)
  • upcoming events on the broadcasts page are listed soonest first (95b11226)
  • The third player page, Lại Lý Huynh 赖理兄 (/blog/lai-ly-huynh), the world champion: his unbeaten 2025 title run and the final he won with black, the year since, five wins on the board and a 38-chapter study; in English, Chinese and, a first for a player page, Vietnamese (/blog/lai-ly-huynh-co-tuong) (dc9614b2)
  • an event stays under Upcoming until its first games are posted, and the top card on the broadcasts page says why it leads (a6b33f1e)
  • a broadcast added after its event finished now fetches its games by itself for a week, instead of waiting for a manual poll (c2abab09)
  • a broadcast added after its event finished now fetches its games by itself for a week, instead of waiting for a manual poll (f15ea83a)
  • Our bots now play each other every day in xiangqi, jieqi, Duck Xiangqi, Jungle Chess and Banqi, and those games are searchable under Engine games and downloadable from the game data page (ec3a7712)
  • a broadcast with no games yet keeps its game list and chat column, so the page has the same shape before play as during it (b792d6b5)
  • The homepage TV marks each player with a disc in their colour, so Banqi and Flip Jungle show who plays which side (a dashed ring until the first flip decides it) (f27e98d0)
  • in Jieqi game review, a reveal is graded on what its player could know, counting their own face-down pieces that were captured unseen (a730bab6)
  • Game search hides games shorter than ten plies by default, with one click to show them (cce12ac5)
  • Every game page's Share and export panel can download a board image and copy an embed code (cce12ac5)
  • jieqi computer analysis now runs on AB-JChess, the strongest jieqi engine on the site, and its chart and move marks use AB-JChess's own scale; games analysed earlier keep their Pikafish analysis (d561cb46)

Community

  • Profile game lists filter by result and by opponent (cce12ac5)

Site

  • Contribute and Work with us now link to each other; play-testing and translation help live on Contribute (efc0c7c2)
  • New Work with us page for titled players and coaches, creators and streamers, event organizers, writers and engine authors (c44741d5)
  • the homepage play panel lists variants in the same order as the menus, not by recent play (5e2e44d1)
  • the variant menus and rules list put Duck, Crazyhouse and Fortress ahead of Atomic and Fog Xiangqi (e3c8e84f)
  • The homepage deep-dives row is now labelled Xiangqi deep dives (5edb33f3)
  • the Crazyhouse Xiangqi rules page is unlisted while it is revised, and its News entry links to the game (ce818f36)
  • the privacy page now names PostHog and what it records (3ec676b4)
  • less empty space above and below the footer on the homepage (774f9cff)
  • the changelog shows the latest two months, and each older month has its own page (95b11226)
  • The homepage's second article row is now Deep dives, starting with the player pages, and every new post appears on the homepage the day it publishes (45217d23)
  • Every player colour disc on the site is now one shared design, and the black disc stays visible on the dark theme (c3d5a774)
  • Jieqi, Banqi and Flip Jungle are back on the game data page, and every downloaded game of theirs now records what each flipped piece turned out to be, so it replays from the file alone (9037d497)
  • Every finished game is now downloadable from the new game data page: one file per variant per month, free to use under CC BY 4.0 (b4162222)

Removed

  • Jieqi, Banqi and Flip Jungle are off the game data page until their files can show which piece each reveal turned out to be (4ce02088)

Fixed

  • A judged jieqi reveal's best move is now a clickable branch in the review, and jieqi game links with ?ply= open on that move (67546f65)
  • The rules pages now load with their text in English and both Chinese scripts, and the localized blog, rules, videos, bots and course pages each name their own address to search engines (3edc86b1)
  • A correspondence game posted from the homepage lobby now uses the variant you picked, and variant game headers show Rated for rated games (851d1a41)
  • The jieqi Pikafish bot and its analysis no longer overrate turning over a piece: Black's reveals were scored by their best possible outcome, and outcomes the search cut short were averaged in as if exact (94eec584)
  • On the homepage, only the Play button starts a bot game; a click elsewhere on the row no longer does (5edb33f3)
  • Open correspondence games now leave the board after 14 days, and posting the same open game twice keeps just one (5edb33f3)
  • Banqi and Flip Jungle rooms show Resign, the move list and your own seat row again, after two days hidden on short boards (6ffe2f45)
  • a game whose stored moves no longer replay now reads as not found and stays out of TV and game lists (e463a334)
  • The banqi rules page names the cannon house rule it does not play, instead of listing its own rules as rejected ones (1a95e357)
  • Embedded banqi games no longer leave a blank band under the board (1a95e357)
  • rematch now swaps colours, including in xiangqi; Copy invite shows only while a seat is empty (6e9613e2)
  • a finished broadcast whose source never posted games says No games published instead of promising records (0bd24a2a)
  • an open game whose player has left now drops off the list within 10 seconds, and a matched game you join alone ends after 30 seconds instead of showing an invite link (0bd24a2a)
  • studies and game reviews without move notes no longer leave an empty gap between the board and the tabs below it (3ec676b4)
  • diagram labels and blog cards on Chinese and Vietnamese pages are translated (3ec676b4)
  • starting a Fog Xiangqi bot game during a site update no longer blocks other bot games for 30 minutes (9ec82c36)
  • a Fog Chess or Fog Xiangqi game against the bot no longer ends in a forfeit when the engine server restarts mid-game; the bot reconnects and plays on (96cde925)
  • in Jieqi and Jungle game review, the board shows the ?!, ? or ?? mark on the selected move, and a judged reveal names the better move ("Mistake. i5-i0 was best.") (d40f4fb1)
  • The homepage board no longer stays live with a running clock when the server stops answering (602e3d40)
  • The first download of a game data file no longer pauses live games while it is built (4ce02088)
  • Latest studies on the homepage and /study lists the newest studies first; an automatic hourly update no longer lifts two older studies back to the top (5dcc4b03)
  • A Fog Chess game's download no longer shows the real name of a player whose seat is set to private (b4162222)

September 2026

Playing

  • Flip board in a live game: the ⇅ button at the end of the move arrows, or f, turns the board, clocks and captured pieces over in xiangqi, jieqi, duck, atomic and Fog xiangqi, jungle and Fog chess (ccffa6d3)
  • The game room's right column, redrawn after lichess: the table centres on the board, the clocks read 00:24.9 in larger digits, turn red in their last stretch and carry a time-left bar, the arrows are bolder, and a finished game puts the result at the end of the move list with Rematch, New opponent and Review game pinned below it; a magnifier opens the review at the move on screen (f044599c)
  • AB-JChess joins jieqi above Pikafish Level 8: an open-source engine with its own neural network, by Huorongrong and Laoxu (Kouza), played here with their permission; it beat full-strength Pikafish 248-136-16 over 400 games, and /source credits it (b65b6107, 0405e44a)
  • Jieqi levels: Pikafish Level 1 to 7 join full-strength Pikafish, so jieqi has an eight-level ladder like xiangqi; the bot menu and the homepage start at Level 4, and /bots lists the levels (bcbbdaa2)
  • A Jungle board for xiangqi: the square grid on a green lawn, a cream rug in each palace and a painted river, made with children in mind; pick it under Board, and Jungle and Flip Jungle turn green with it (82a72047)
  • Animal (no disc) piece set: the animal pieces without their cream disc, a little larger, with a thin outline on the lined board (3bd84ef9)
  • The Fortress treasure diamond draws a heavier line and sits centred on its disc (c8de4e19)
  • Every bot game starts at 10 + 5 unless you pick another clock, in every variant (games against people keep their own defaults), and Fog Chess and Fog Xiangqi bot games now offer 10 + 5 as well as 5 + 5 (dc66e529)
  • The game-over badges reach duck xiangqi, atomic xiangqi and jungle: a captured general is marked where it fell, a jungle den entry crowns the animal in the den, and a jungle repetition marks the pieces that repeated (a9bfda07)
  • When a xiangqi or jieqi game ends while you watch, the generals say how: a red badge on the loser's naming the ending (checkmate, resignation, timeout, perpetual check), a green crown on the winner's, grey on both for a draw (4e80220d)
  • No game ends because a connection dropped: a player who disconnects mid-game against another person is no longer forfeited after 30 seconds either, the way a bot game already was not; if they never come back their clock runs out, the same as leaving a board (770a18ef)
  • A bot game no longer ends because you put your phone down: a disconnect never forfeits a game against the computer, and the 30-second countdown a human opponent's leave starts is now shown in every variant's room rather than three of them (aad6f186)
  • The Jungle tiger jumps the river sideways as well as lengthwise, the same leap as the lion, following the Chinese rule sets (Tencent's QQ游戏, Leiden) rather than English Wikipedia's lion-only reading; the bot, the analysis board, the rules page in three languages and the puzzles follow, and one material puzzle the new jump refutes is withdrawn (6f499b0e)
  • On the banqi board, selecting a piece tints its whole cell and a piece it can capture is outlined in green; the old inset tint and thin ring were easy to miss (819b3fa4)
  • The Lobby's bot rows change every six hours: Fortress, Duck and Atomic Xiangqi offer Level 3, 4 or 5 in turn, and each row's clock cycles through the variant's slower paces (never faster than its default); the Xiangqi Level 2/5/8 ladder stays fixed so it can be climbed (f845ae22)
  • Atomic Xiangqi is rated: a rating pool of its own, a row on the profile rail with a game count and Games-tab filter, a leaderboard ladder, and rated matchmaking through Find opponent for signed-in players (friend links and bot games stay casual) (ac497feb)
  • Atomic Xiangqi captures sound like what they are: an explosion for the mover and for the side it was done to, the cannon's shot keeping its slam as the one capture that does not explode (714beb2d)
  • The variant order everywhere (play menu, quick pairing, the study and analysis pickers, the TV and rules rails, the rating grids) is now Xiangqi, Jieqi, Banqi, Atomic, Fog Xiangqi, Duck, Fortress, Fog Chess, Jungle, Flip Jungle: the Chinese-chess games in play order, then the originals (9a2ce1f6)
  • Atomic Xiangqi is launched: in the play menu, on the homepage lobby rotation and quick-pair table, in the News box, and its launch note leads the homepage article row (10f45e56)
  • Atomic Xiangqi is listed: the rules page joins the rules rail and tiles, the launch note the /blog index, and the variant has a Mistboard TV channel, a Find-opponent seek, a profile flair and a marker of its own; the rules page shows one board per rule with a sample game embedded from the study, and the eight bot levels carry ratings from a 144-game calibration (96981921, e1576d09)
  • Atomic Xiangqi, unlisted: every capture explodes the four points around it, soldiers survive a blast, a cannon shot takes only its target, and a general in a kill zone is in check; play the computer at eight levels or a friend by link at /rules/atomic-xiangqi, with the explosion drawn on the board and twelve annotated engine games in a study (ce70fed9, 4707901f)
  • Correspondence players get one email a day, at most, listing the games that have been waiting on their move for half a day or more; never one per move, off under Notifications on the account page (5b5f188f)
  • A play streak on your profile: the days in a row you finished a game, counted on your own calendar and still alive the day after, with your best run (f772d19c, 1e3eef02)
  • A Chinese-language interface, or an English one in a Chinese-reading region (CN, TW, HK, MO, SG, MY, VN), starts on the traditional hanzi piece set; everyone else keeps the international art, and a set picked in Pieces wins either way (81303048)
  • Duck Xiangqi launches on every public surface: rules page, homepage card, lobby seek, a rated ladder, and a bot that plays it (dd12f1fd, 2488aea2, aa91538e, 8e5704af)
  • Duck Xiangqi offers 3+2 alongside its other paces (7bc64a41)
  • Hong Kong Mahjong is registered and playable behind its flag; the table reads left to right and a complete hand says what it is worth (5b2769f7, 828b344f, 5bb370ea)
  • A finished room reveals the whole game to everyone who opens it, players and spectators alike; a live fog room still shows each seat its own view and spectators nothing (869b29b4, 02e3c043)
  • Xiangqi moves read chess-style by default: piece letter, x on capture, destination square, + and # (Che3, Cxe7+), Chinese notation by default for zh readers; the choice in the theme gear now reaches the live room, Mistboard TV, and puzzles, not just review and analysis, and a pasted or linked game in that notation imports (d129f051)

Learning and puzzles

  • Study embeds of compositions show the result the line ends in ("Red wins" under a mate), as game records already did from their tags (e6f2142a)
  • Decisive-moment lessons open on the opponent's move that led there (marked on the board), name both players above and below the board, let you try again just by moving, and give a hint that names the piece and circles it (339429d4)
  • Guess-the-move study chapters fit the screen with the site bar back, a resizable board, a chapter list of players with the side to move marked, and a coach column that opens with whose move it is and the game it came from; the decisive-moments lessons now ask for the one move that turned the game and play the reply for you (f48e5eb1)
  • The Duck Xiangqi launch post is now a strategy guide for your first game, at /blog/duck-xiangqi-strategy; the old address redirects there (4a5bdbdc)
  • The xiangqi rules are rewritten for chess players: the six rules that catch them out, setup, repetition as the site scores it (perpetual check loses), common mistakes, the three notations, a first opening, and new questions on the characters and the flying general (adb78502)
  • Chơi cờ tướng với máy: the Pikafish page in Vietnamese, at /blog/choi-co-tuong-voi-may (19942f24)
  • Every rules page shows its sample game in the study embed, with a link to the study it came from: Duck Xiangqi, Fortress, Jieqi, Jungle, Flip Jungle, Fog Chess, Xiangqi and Chess join Banqi and Atomic, and study embeds now draw Fortress (with both hands), Jieqi and Flip Jungle games. Flip Jungle gets a study of twenty engine games (b304a491)
  • Study embeds show fog of war chess chapters, so a fog chess study can be framed on another site the way a xiangqi or chess study can (1477f52d)
  • The Bamboo Fragrance Studio Manual (竹香斋象戏谱) and the Hundred Games Manual (百局象棋谱), the other two of the four great Qing composition manuals, join the library with the Hundred Variations Manual (1522) and its sequel the Wondrous Variations Manual: 392 more problems, each on its own board with the book's line as the mainline, credited to dpxq.com (fb827d2a)
  • Banqi by the Numbers: 200 engine games at ten million nodes a move, reduced to what a player can use mid-game — how big a lead is safe at each stage, when the lead stops changing hands, and what losing the general first costs (e1128dea)
  • The xiangqi course is readable in Chinese at its own address (/zh-hans/learn/xiangqi, /zh-hant/learn/xiangqi) after shipping in three languages behind one English URL, the board shows its coordinates on every level because the lessons name points, and six lesson defects are fixed: a perpetual-chase demo whose scripted reply was an illegal move out of a pin, a 卧槽马 sitting on the 钓鱼马 point, g9 called a palace corner, cannons described as sitting behind the horses, a Register tile promising progress on any device when progress is stored in the browser, and a phone layout that hid "Back to menu" (77aba92e)
  • The banqi rules page draws every rule on the real board with the board's own move marks, checked against the rules engine, with the ladder as a row of pieces, a first-flip diagram, five FAQ rows instead of nine, and a companion study of twenty MistyBanqi games at ten million nodes embedded as the sample game (9e4aa092)
  • Every study says which game it is: the variant leads the meta line on the /study cards and sits beside the heart on the study page, in the reader's language (chess studies read 国际象棋 in Chinese) (02be9642)
  • A second chess study, "The most played move is an inaccuracy": 144 opening positions from the Lichess explorer (1600-2200 players, 500,000+ games each) where the club's most played move loses winning chances against the engine at 20 million nodes, each played out to a verdict beside the engine's line, with the club share and the masters' top move by era (d4accc3a, a99f6bc9)
  • Copy to my studies: any study you can open becomes a private study of your own, every chapter included, to annotate as you like; in Share & export beside the PGN download (790543a3)
  • Two curated studies fill themselves from the 2026 tournament broadcasts and grow as rounds land: Central Cannon vs Screen Horses model games (the whole game, every judged move marked with its numbers and the engine's line, the first departure from the usual line noted) and Where it turned (the board parked before each game's decisive move, guess the better one); a recipe file decides the opening, the events and the chapter count (e6ed9ee9)
  • Studies can hold standard chess: a chess chapter opens on the same review board as the other games (SAN move list, a local Fairy-Stockfish panel with its lines drawn as arrows, the judgment badge on the moved piece, drawn shapes) and embeds on other sites with the game move marked. Chess is study-only: there is no chess to play here (a530fe14)
  • The Banqi, Flip Jungle, Fog Xiangqi and Fog Chess rules pages each answer whether the bot can see your hidden pieces (it cannot: face-down tiles reach it as unknown, fog bots get only their own vision), in English and both Chinese scripts, matching what the Jieqi page and the Misty post already said (ae40e3f7)
  • The Banqi, Jungle, Xiangqi and Jieqi rules pages answer the questions people actually search: a capture-order table and a rule-variants section on Banqi (which of the three regional rulesets Mistboard plays, and why), a piece table on Xiangqi, and a common-questions block on all four, in English and both Chinese scripts (8e2e720e)
  • 心武残编 and 渊深海阔, two of the four great Qing composition manuals, are public studies (470 problems, credited to dpxq.com, held back where the record and the engine disagree); the rest of dpxq's classical shelf is seeded unlisted and follows in batches (840ccd46)
  • "Horde on the Xiangqi Board: The River Is a Cliff" is published: the measurement behind a second variant that was not built, with kernel-checked boards and links to the full map and the evidence repository (b21eb9ed)
  • A puzzle streak: the days in a row you solved a puzzle, on your own calendar and still alive the day after; it shows under Success when a puzzle is solved and on your profile with your best run, for signed-in solvers (2191f43d)
  • The Duck Xiangqi launch post and the anti-xiangqi article read in Simplified and Traditional Chinese (0f2894e9)
  • "Antichess on the Xiangqi Board Is a Draw" is published: the measurement behind a variant that was not built, with kernel-checked boards and links to the full analysis and the evidence (334789ba)
  • A rules page for Hong Kong mahjong at /rules/mahjong, unlisted while the table is invitation-only: the claims, why a complete hand is not always a win, and the faan table as the site scores it (bcb70396)
  • Every mate puzzle that fits one of the 23 named kill patterns (杀法) says which (e2ce0d45)
  • "Puzzles with more than one solution" is published, with the two boards playable in place (a6d82d8b)
  • Every study card carries a thumbnail drawn from its first chapter: a composition shows its diagram, a game collection its opening a few moves in, and the four archive covers stay where they were (c12e3019)

Watching and review

  • The game database now searches every variant, not just xiangqi: pick one from the list on the left, and engine matches such as AB-JChess vs PikaJieQi have their own source; switching variants no longer makes the page jump (137ccfca)
  • All 400 games of the jieqi engine match between AB-JChess and PikaJieQi (4 seconds a move; AB-JChess won 248-136-16) replay on the site, with each game crediting AB-JChess by Huorongrong and Laoxu (Kouza); pieces the match never turned over show as unknown (example, 7577b94e)
  • An embedded fog game, from a study or straight from the site, has a White, Truth and Black switch above the board: pick a side and the board shows only what that side could see at that move (b5aee4dd)
  • Pieces glide when you step through a game on the blog and in embedded studies, lines and broadcasts, for xiangqi, chess and every variant board except Duck and the fog variants; the Fortress and Atomic game replays glide too (0fb113f0)
  • The homepage board works like a TV channel: it shows the live game, or a fog game still airing (joined where it is now), or the last game's final position; a game you missed is no longer replayed, and every replay plays each move at the time it really took, with the clock ticking at real speed (09d92fb1)
  • Pro players carry their title (GM, IM, FM, NM) from the CXA's grade lists and the WXF's international titles, each with a source: 90 players tagged instead of 8, and none whose grade the match-fixing rulings revoked (14d1871e)
  • Broadcasts start following an event by themselves from 12 hours before it begins until a week after it ends, so an upcoming event no longer waits for someone to switch it on (b2640430)
  • The second player page, Cao Yanlei 曹岩磊 (/blog/cao-yanlei): the ten-game match he won against the world champion Lại Lý Huynh, then his 2026 event by event, six games on the board seen from his side, and a 75-chapter study with every game annotated (86cc7c0d)
  • Pages for the 13 archive players the Chinese Xiangqi Association sanctioned in the 2024 to 2026 match-fixing case say so in one sentence linked to the case write-up, and players whose ban may have revoked their grade no longer carry a GM or NM tag, on the event cards too (51d72464, 534426da)
  • Broadcasts sourced from dpxq show every pairing with its result, including boards whose game record was never posted (a faded start position marked Result only), and standings count them (0d225575)
  • Mistboard TV opens on the game in progress and lands on it when it ends; the LIVE badge is gone (6e5cb064)
  • Pro player pages cover every player on the CXA lists, not only those in our broadcasts, and add each player's record by colour, head to head, openings in English and rating history since 2019; player and broadcast pages now carry their own titles, descriptions and share cards, and are listed in the sitemap (4c5a389c)
  • Broadcast games embed on any page (copy the code from the game's Share tab, or paste a game link into WordPress, Discourse or the forum): English names, the event and round, the engine's marks and better lines with their verdicts, and a live game that keeps up; side lines in every embed now read like the article boards (88adbb82)
  • Broadcast games download as PGN with English names; xiangqi game reviews (broadcast, site and archive games) keep your place in the address, so a copied link opens on that move; broadcast game, round and event links preview as the game's board with both players (98262a71)
  • The broadcast calendar keeps every event we relay this year, so January's to August's events sit behind Show earlier months instead of dropping off after two months (bb2aebba)
  • The broadcast list puts past events in date order, newest first, and gives events still in progress their own Ongoing section; the calendar opens on the current month; the 21st Asian Xiangqi Individual Championship (men and women, October 2 to 8) has its pages ahead of play (b3c0e0e2)
  • Eight more 2026 events join the broadcasts with English names: the Guangdong Ten Tigers matches against Shandong, the Young Masters, Beijing and Chongqing, and the Xintai, Baizuishan, Tianchang and Gaoxin Gaogang Cup opens (9290db95)
  • Three 2026 invitationals join the broadcasts: the 32nd Five Rams Cup, and the Chunqiu Dayie Cup masters ten-game match (Cao Yanlei against Lai Lixiong) and masters challenge, with English names; the players of both national team championships now appear under Pro players (16187857)
  • The 2026 women's league has its broadcast page before its first game is posted, opening on its format and dates; its matches are scored by its own rules (three tables, a level match settled by one blitz game won 2-1), and a round with no time yet no longer reads "Upcoming" (c8bb763c)
  • Pro players moved under the broadcast section, beside Broadcasts, Calendar and About, in the shape of lichess's FIDE players page: one panel with search, led by the CXA points list, each player's team linked under the name; new Pro teams pages rank the teams by their top five players' points and list each team's players (2754e340)
  • The national team championships show their matches and standings the way the organisers score them (2 points a match win, opponents' match points as the first tiebreak), with the Teams tab and team filter; club and bureau names read in English instead of half-translated pinyin (31cb9062)
  • Broadcast events pick their round from a panel that shows each round's start and status (Finished, Ongoing, in 27 minutes); each event has a cover card in its header and on the broadcast list; live games mark the side to move; the Overview's share links copy with one click (07f50810)
  • Broadcast event pages take lichess's shape: the round's game list sits pinned on the left with the event's chat room under it, each game showing an evaluation pill, titles (GM, NM) and results in colour; the right side holds the header, pill tabs and the boards, four to a row with pages of 12, 24 or 48. A team round is one grid with a team filter, and its matches and scores moved to the Teams tab (beb13bb9)
  • A broadcast's Overview is one strip of the event's facts (dates, format, time controls, city) with Source and Standings links, then the share links; the Players tab links each name to the player's page (0516380f)
  • A broadcast board opens in place on its event page, the way lichess's does: the round's game list stays in the left column, and the board and moves take the rest of the page at the full height of the screen. The arrow beside the round name goes back to the boards, and Back and Forward move between them without reloading. The event header is shorter, so the boards start nearer the top (08419c61)
  • The broadcasts page follows lichess's: a side menu (Broadcasts, Calendar, Pro players, About), the featured event, then live, upcoming and past events, each card saying where the event stands ("Round 5 · Sep 18") and who the strongest players are. A calendar lists the top events coming up, and an about page says where the games come from. On an event page, board cards show each player and their score above and below the board, the game list stacks both players with scores, and new toggles show only live games or hide every result (2d0e1cd6)
  • A broadcast game seats its players above and below the board, the way lichess does: the name, the team, and a link to the player's page. Names in the seat strips on other reviews are clickable now too (4f437059)
  • Finished broadcast games get the engine analysis site games get, computed once on the server and shown to everyone: the review opens with the advantage chart and the move marks, and the round grid shows an evaluation gauge beside each board (toggle it off above the grid). Older games fill in over a few days (3dbee330)
  • A team league round on a broadcast reads as its matches: each match shows the two teams and the score over its slow and blitz games, then its tables in order, and a Teams tab ranks the league by its own rules (match points, then game points). Games carry their table, their real start time and their time control (8ba1a2e7)
  • The xiangqi analysis board runs Pikafish in the browser, at full strength on its own net: the same engine that reviews finished games on the server, now in the local panel (which names it and shows the one-time 51 MB net download as it lands); fortress, atomic and duck keep Fairy-Stockfish (9a8bb492)
  • Pro players (/players) sits in the Community rail beside Leaderboard, Rating stats and Online bots, where lichess keeps FIDE players; the players pages render inside that layout, and the broadcast index links to it (2c7b1640)
  • Player pages show the current CXA 竞赛积分排名 (tournament points) next to the closed 等级分 history, spot-checked row by row against the source before publishing — the pipeline never auto-corrects an OCR name against a known-name list, since a first pass silently relabeled an amateur's record with a world champion's name off a one-character match (b2702ce2)
  • The player index and player pages take the shape of lichess.org/fide: a face (or the surname character), a title tag, the team under the name, a search box, the whole row a link; a player page opens with the portrait and a fact list, then the official CXA 等级分 series 2019–2023 as a sparkline with the last value and rank, and the note that the CXA replaced Elo with tournament points in 2026 (835e820d)
  • Player pages: /players lists every professional the archive has seen in an A-level event, with team, games, W-D-L and score, sortable; /players/<name> is one player's page, the record by event and every game they played in a relayed event, each a link to its board, with a button to the written profile where one exists (468429eb)
  • A study chapter embed shows the verdict a chapter's mainline plays out to, in the last move's eval slot (05effc8c)
  • A study chapter embed numbers a sideline's moves the way the game rows are numbered (b73d9543)
  • A study chapter embed shows the chapter's sidelines: the note under a judged move, the alternative line as steppable moves with its verdict at the end and its own comment, for xiangqi and chess chapters alike; the arrow keys walk into a line and back out (4108cd67)
  • The first player page, Yin Sheng 尹昇 (/blog/yin-sheng): the 31 games he went unbeaten through in August and September, how he plays as measured by the engine across all of them and against the whole field, five games on the board that open at the moment the paragraph is about, and a 31-chapter study with every game annotated; replay boards can now open at a chosen ply (startPly) (cd7df251)
  • A live tournament board shows the engine while the game is on: an eval bar, the top three lines and their arrows at the latest move, computed once on the server and shared by every viewer (ea509eb0)
  • Live Jieqi, Banqi and Flip Jungle games can be watched from their room link while they are being played: the board as both players see it, with face-down pieces still face-down, and in Jieqi a capture tray that shows a taken piece's role only if it was face-up when taken; the homepage board and Mistboard TV can now feature a live Jieqi game (35a799a7)
  • Atomic Xiangqi has an analysis board (/analysis/atomic-xiangqi), a board editor, and a postgame with the local engine, annotations and Share & export; the browser Fairy-Stockfish is now built with the same patch the atomic bot runs, so it plays atomic's rules rather than a half-read definition, and a finished atomic game can request computer analysis for the advantage chart (0374aaae)
  • Atomic Xiangqi games export as PGN with move text spelled against the board the game actually had (the explosion replayed), alongside JSON (401bd59b)
  • A broadcast is one event page, lichess-style: the tour header with a round selector, then Boards (default, opening on the live round or the latest with games), Overview (dates in the event's own clock, venue, source, the schedule, share links) and Players (standings computed from the broadcast games); a round with no records yet says so and points at the source (d44bca22)
  • A finished broadcast game opens on the site's review board, with the engine, whole-game analysis, the reader's notation, Game info and Share & export, and the round's pairings in the left rail; a live game keeps its streaming replay, now in the reader's notation too (d44bca22)

Community

  • Edit your own forum post in place from the post's Edit action; edited posts carry an "edited" mark, and a locked topic no longer takes edits (0b5e4c7c)
  • Forum topics and posts written in another language open translated when a translation already exists, on the homepage box, the forum lists and the topic page, with one click back to the original; new posts are translated as they arrive, and "Show forum posts translated" in Display settings turns it off (80e3f8e5)
  • A Mistboard game, study or puzzle link alone on its line in a forum post shows as the board it points at; game links can name a side and a ply (e901ca07, f4758e4d, 4a0a82f4)

Site

  • 1,000 games played: a post marking the milestone, with the statistics page on the day the count crossed (c3945390)
  • Fourteen wins against our jieqi bot: the jieqi ladder's post, in English and Chinese: the full-strength bot's record since August 23, and four of the games people won, each opening just before it turned (bff62721)
  • Each rules page ends on one rule to carry into your first game instead of a shared "playable on Mistboard" line, and About and the FAQ explain fair play and engines in plain words (d86675e1)
  • The About page says what the site is for both English and Chinese speakers, one lobby and one set of games in three languages, instead of telling Chinese readers it was built for people who cannot read Chinese (dd7a2116)
  • The site describes itself as "Chinese chess and original strategy games" instead of "Chinese chess for chess players", and the Chinese pages lead with jieqi and banqi (633da554)
  • The homepage puts Latest studies beside the daily puzzle and the forum, and the chat moves to the lower right beside the article rows (96544bf7)
  • The top bar lines up with lichess's on wide screens instead of running to the edges, keeps its links on the bar down to a 940px window, and shows the full mistboard.com name whenever it fits (c654ede1)
  • The xiangqi and chess rules pages show their famous game in the page instead of an embedded one-game study: the 1632 horse-sacrifice trap in the blog's card layout, Carlsen–Anand 2014 game 11 on the chess replay (0ea95e5e)
  • Tables in blog posts fit a phone: short data tables tighten their spacing on a small screen and tables of sentences wrap, instead of scrolling sideways (86cc7c0d)
  • In a blog post's annotated boards the result sits under the move list, level with the controls, and reads Red wins or Black wins; tables of names wrap on a phone instead of scrolling sideways (d524258d)
  • Embedded boards step like the boards in our posts (back, a menu, forward), keep the move list beside the board at its own width, fill small frames on phones, and follow your settings live on Mistboard's own pages (8018f928)
  • The play-online questions moved from the homepage to the top of the FAQ; the homepage keeps the one-line summary under the tagline (933c9104)
  • /bots is the page for playing xiangqi against the computer, in English, simplified and traditional Chinese: the eight levels come first with Pikafish on top, level 2 says Start here, and each level leads with a Play xiangqi button (d74cb0c5)
  • The home page says what it does under the tagline (free in the browser, no download or sign-up, eight computer levels, play a friend) and answers six common questions above the footer; the play column sits on one spacing with the event cards at the lobby's bottom edge (21bdbc4c)
  • The sitemap is split into pages, studies and chapters, each entry carries the date it last changed, and a study chapter is listed only when its study earns search traffic or its moves carry commentary: 6,093 chapter URLs became 855. Unlisted chapters still open from their study (cca3c724)
  • The homepage broadcast spotlight shows at most two rows, most pressing first (live, then between rounds, then starting soonest), gives an event's men's and women's sections one row, dates events by their own day, and links the rest (358ff65e)
  • Broadcasts is the first item in the Watch menu (cd94da3f)
  • An unlisted study is no longer indexable: its page served the home page's title and description, and Google had eleven chapters of a manual still being verified in its index under that title (6ae24ef2)
  • The sitemap stops listing a chapter per game for the two studies whose chapters are numbered rather than named — an engine match and a bulk position set, 344 URLs that earned no impressions in ninety days; every study page and every named composition stays (6ae24ef2)
  • Chinese home pages at /zh-hans and /zh-hant: the same lobby baked in each script, with their own title, description and hreflang. The path used to answer with a browsable listing of the build directory, and the site had no Chinese URL for the page a Chinese search is most likely to want (0dc7831c)
  • The sitemap now names every localized page it has: both Chinese blog indexes and all three language variants of each study permalink, which the study pages had been advertising through hreflang while the sitemap listed only the English URL (0dc7831c)
  • A bot's page carries its own title and description instead of the homepage's, so a crawler following the Pikafish article's first link sees the bot (9c12b7bc)
  • An article card whose art carries words sets them in the page language: the Pikafish card reads PIKAFISH in English and 皮卡鱼 (皮卡魚 in traditional) on the Chinese pages, tagline to match (80d2cd14)
  • The News box no longer shows an announcement twice on the homepage when it points at a blog post of its own (93a5e704)
  • Mistboard is on X as @Mistboard: every News entry is posted there once, by the release that ships it (6dd2a1a7)
  • A News entry can be scheduled: it goes live at 09:00 Pacific on its date, the same moment as a scheduled blog post, so an announcement ships with the post it points at and neither goes out first; the homepage and /feed pick it up on the day without a deploy (fc5151d9)
  • The server-restart banner ("Update pending", "Server restarting now") reads in the page's language on zh-Hans and zh-Hant pages (146efc9d)
  • The "On this page" box on articles matches brianhliou.com: a bordered card, muted links, the current section in heading colour with no fill (e8cb2294)
  • Statistics shows one Games per week chart, switchable by variant, over full weeks only; the week in progress is a line of text under it, both charts on the page share the same start and the same Monday ticks, and the always-rising Games over time chart is gone (c3bab05d)
  • The homepage's event spotlight lists broadcasts on its own: a tour that is live, starting within two weeks, under way, or finished in the last week gets a row linking to its broadcast page, so an event no longer depends on someone editing the homepage. It sits under the games-played line in the play column, level with the bottom of the lobby panel (7564fcbd, 76e161b4)
  • The homepage has a two-column layout between 960 and 1240px wide (lobby, forum and chat beside a rail with Play, the viewer, the daily puzzle and Top studies), instead of dropping from three columns to one narrow column (109eeaf8)
  • Patron support takes a one-time payment as well as a monthly subscription, over the same $5/10/20/50 amounts; a one-time payment carries the badge for one month per $5, and Stripe Checkout offers Alipay and WeChat Pay on it, so a mainland Chinese player can pay without a card (17616293)
  • An Atomic Xiangqi game's link preview shows the game's turning point once it has been analysed, not only the final position (d6ea0745)
  • The homepage's fourth band is a learn row: how to play, the piece lessons, puzzles, the openings explorer, play the computer, the 心武残编 manual and every champion, one card each and all on this site, with our own episode leading; it renders everywhere, including where YouTube is blocked (ac73fcf7)
  • The Atomic Xiangqi launch note's card shows the moment of a blast on the board, and its atom marker is bolder (70b8c4b2)
  • This changelog is a page, /changelog on the about rail: months newest first with anchors, one line per change linking its commit; Updates keeps the highlights and links here from its foot (c4ca3740)
  • /stats is a real page on the about rail, leading with games per week; every count excludes the operator's own accounts and browsers, guests count as players by browser, and a game counts only once both sides have moved (87ba6d14, cd4f58b3, ea5d57a0, b916a663)
  • One identity line across the tagline, About, README and the repository (2952b177)
  • A shared link to any finished game, in every variant, previews the game: the board at full height in the site's own piece set, the two seats level with their back ranks behind their king, and the score; rules pages, position links and studies draw through the same card, and the site card is the logo, wordmark and identity line (f5a24d9d)
  • The homepage "games in play" line shows only while a game is actually in play; at zero it is gone rather than announcing an empty site, and the games-played total carries the recency (1fb35ef0)

Removed

  • The player page's All players button and head-to-head picker, and the players list's team filter: the sidebar, the games list's opponent filter and the Pro teams page cover them (25e972ef)
  • The collapsed Table under Games per week on /stats (0be3e4d4)
  • Fairy-Stockfish's xiangqi net (11 MB) and its lazy load on the analysis board, superseded by Pikafish's (9a8bb492)
  • The "still face-down" panel in the Jieqi room: Jieqi reveals a captured hidden piece to the capturer only, so the panel could not know which of your own hidden pieces were already gone and listed them anyway; the captured strips carry the same facts. Banqi and Flip Jungle keep theirs (bbfad4c0)
  • The homepage YouTube video strip is gone; the video library stays at /videos (ac73fcf7)
  • The play streak, a day after it shipped: with nothing showing in the room it was a number on the profile that mostly read zero; the puzzle streak stays and now sits on the Puzzles heading line instead of in its own block (b1ec937d)
  • Eleven unlaunched variants are gone from the code, one commit each: Crossroads Chess and Dark Crossroads Chess, Fog Shogi, Drop Mini Xiangqi, Dark Mini Xiangqi and Mini Xiangqi with their puzzles, Reveal Chess, Dark Crazyhouse, Kriegspiel, Luzhanqi, and Dark Draft960 together with the whole pregame draft phase of Fog Chess. Their rules pages answer 410; finished games of theirs still replay. Five reserved-but-unbuilt spec ids went with them. Measured on the commit before and after: 551,242 → 477,016 source lines (−13.5%), 24 → 10 registered variants, 18 → 9 rating pools, 54 dead lazy chunks out of the web build; CI time unchanged (2bf6490e through ef6d463e, #396)
  • /rules/shogi4 stays, unlisted, because it is linked from outside the site (638bee89)
  • The dev-only lab pages (/xiangqi-spike, /xiangqi-demo, /pixel-lab, /variant-marks, /dobutsu-chess-preview, /deepdive, /engine-review), the dev:lab profile, test:parked, and the orphan one-off scripts (29a00041, 7a0cf35a)
  • The tenant runtime's unused setup-submission phase; every room on every stack is playing from creation (c77489c4)
  • The "Move notation" row in account display settings, a lichess-shaped switch nothing ever read; the theme gear's xiangqi notation is the one setting, and it offers Algebraic, Chinese and WXF only: Coordinates and ICCS leave the list (exports, fog xiangqi and ?notation= embed links still use them) (d129f051)

Fixed

  • In Flip Jungle, a piece's slide now starts from the square it left for both players and on TV and review; the second player used to see every glide come from the mirrored square (39933b48)
  • A finished xiangqi or atomic xiangqi bot game's rematch plays the same bot again instead of opening an empty friend room, and spectators are no longer offered a game of their own (f044599c)
  • The xiangqi game database now reaches every game it counts: from page 7 on, pages used to come back empty, hiding about 1,370 broadcast games (6f4169b0)
  • In Fog of War, a side left with no moves at all (every piece blocked) now draws, instead of the game sitting stuck until a clock ran out; the rules page says so (def1cb0b)
  • A game started while the site is restarting for an update now waits and starts by itself once the server is back, with the message in your language, instead of refusing every click (4e8a1601)
  • The statistics page lists every live variant, so Atomic Xiangqi appears; games in retired variants still count toward the total (72002664)
  • Games and studies embedded in articles get a taller frame on phones, so the board fills the width and the move list stays readable (25e80811)
  • The Duck Xiangqi and Fortress bots no longer treat a long stretch without a capture as an early draw; the Duck bot could hang its general between ply 100 and 120 (4c87267f)
  • An embedded fog study game switched to Black's view now turns the board so Black is at the bottom, as embedded games already did (c8c3af3a)
  • The Duck Xiangqi bot no longer lifts the duck off the file between the generals when it is winning; it used to lose the general to the flying capture (45fc6083)
  • The game room is in Chinese for Chinese readers: clocks, buttons, the abort countdown, resign and abort, the result and the tab title, in every variant; it was English from the first move to game over (9a8ad1ad)
  • On a phone the clocks sit right above and below the board, with the abort countdown and Resign under them; they used to start below the bottom of the screen (f3cbb88d)
  • Study boards no longer call an equally good alternative "better was": a side line reads "better was" only under a move marked as a mistake, and "also" otherwise (b2e8077b)
  • An embedded fog chess game that ended by resignation or forfeit now shows who won, as "White wins" in your language, instead of a bare "1-0" (32bb315f)
  • A server restart during a xiangqi, jieqi, banqi or other xiangqi-family game no longer costs anyone clock time: the game pauses when the server stops and resumes once both players are back, or after 90 seconds (4a2a5b95)
  • The Patron page now says checkout shows prices in your local currency; the FAQ no longer says every payment is in US dollars (cc5d4df9)
  • Share cards show Chinese characters: player pages and Chinese-named studies previewed their names as empty boxes (9bfcff51)
  • Search engines now see the full rules and blog pages and their search titles even when a page script fails to load (fa16763c)
  • Fog Xiangqi shows its palaces on the square grid again; the squares were drawn over them (27f50d46)
  • Duck Xiangqi follows the Square grid board choice in games and reviews; it always drew the lined board (fcfa2271)
  • Fog Xiangqi on the square grid hides every unseen square completely; a light strip used to show under hidden squares below the river and along the bottom edge, most visibly on the homepage TV (465af280)
  • The black seat circle in a broadcast's game list is whole again; its left edge was cut off (f501cf57)
  • The Chinese /bots tab reads 象棋人机对战 instead of 机器人 (55104652)
  • A broadcast game's board, moves and game list start on one line and scroll together, as on the review page; the game list used to stay pinned while the board scrolled away (0f1de4b7)
  • The bars on /stats and /metrics all end at the same point; a row with a shorter number used to get a longer bar (0be3e4d4)
  • Finished Fog Xiangqi games show the clock they were played at: every one was saved as untimed, so the review header, the database filter, profile game lists and exports read 5+5 and 3+2 games as "Untimed"; the 47 earlier games are corrected too (46e599bb)
  • A broadcast round with no games yet keeps its game list and chat column, instead of the page shrinking to a narrower panel (85c62f33)
  • Team league matches on broadcasts are scored the way the 2026 league plays them: a table counts once (its slow game, or the blitz playoff after a drawn one), and a level match is settled by its deciding game. Every match no longer claims a missing record, and the league table matches the official one (a2035ec8)
  • The local engine runs on broadcast boards in Chrome; it said "Safari cannot run it yet" on every one (f16f9e2d)
  • A drawn broadcast game without an evaluation shows a level gauge rather than a blank one, and every board in the grid is the same size (47af939b)
  • Misty's bot profile names the engine its fog chess games actually run, 1.6; it had still said 1.5 since the August upgrade (4096375c)
  • Seat colours follow the game's own pieces everywhere: red and black for xiangqi and its variants, red and blue for jungle, white and black for fog chess, in light and dark mode, including the eval bar, the engine's line scores, the advantage chart and the move-time bars (aea952f6)
  • In dark mode, the player names under a chess game on the homepage viewer are plain text like every other variant's, instead of boxed rows with a green bar on the winner (4a9187e9)
  • A fog chess game written with standard castling moves (as engines and other tools write them) now loads into a study past the castle, where it used to stop (849b4c24)
  • Reviews of red-and-black games read red and black in dark mode: the advantage chart's Black area is dark rather than cream, the engine's line scores are red or black chips, and the Middlegame and Endgame lines show. Broadcast round cards with an eval gauge keep their board, and the gauge is red and black (a10a0ea5)
  • A tournament or archive game that ran past a repetition or the no-capture count plays to its real end on the review board: those draws are an arbiter's call, and the board used to stop there and call the record truncated. Finished broadcast boards with no round date no longer show the time we imported them as the game's age (f879a5b1)
  • Broadcast games from a league's later stages land on their own: a round the source names now appears when its first record does, where it used to wait for someone to schedule it, and an event's dates follow the source's tournament index as the next stage is announced (89ec708c)
  • The fog chess bot's belief state records en passant on the fog rule rather than standard legality, so a capture fog chess allows no longer drops the true board from its model; the engine fix from 2026-09-10 reaches production with the engine pin (509e389a)
  • The studies browse shows the whole library: it fetched thirty and offered no way to ask for the rest, so once the classical shelf passed that a third of it could not be reached from /study at all (d344b25a)
  • The engine files a browser downloads to analyze — Pikafish's 51 MB net above all — are cached for good instead of re-fetched on every visit; they were served with no cache headers at all, so each engine start pulled the whole net again (8ed1398e)
  • Mistboard TV follows a live game on every ply, not every other one: the follower token was the move number, which only advances after the second mover, so the /watch board and the homepage TV sat a ply behind half the time; the live rail on /watch now shows both clocks (the mover's ticking) and the move list instead of two name rows; and a /watch tab that was behind another window catches up the moment it is visible instead of showing a stale LIVE board (05a252c0)
  • A bot game is named the same everywhere: the room, the current-games tile and the TV all say the bot the player picked (Pikafish, not "PikaJieQi - Strongest"), and an anonymous player is "Guest" in the room as on the tiles rather than the seat colour; the room's chat ends at the board's bottom edge, and captured pieces on the xiangqi-family rails are the board's size, with a jieqi capture of unknown identity drawn as the face-down disc instead of a "?" (11732e00)
  • The admin engine roster credits live bot games to the engine that played them, so Pikafish's jieqi games and each Fairy-Stockfish level's games per variant appear under their engine instead of nowhere; rows show the bot's name and variant, and bot seats now record their engine (59d5bda8)
  • The admin game database splits results by seat only inside one variant (Red/Black, White/Black, First/Second for flip games) and shows decisive vs draw across all variants, instead of adding chess Black and xiangqi Black into one bar (caea0157)
  • The study curator runs ten minutes after a deploy instead of an hour after, so a day of frequent deploys can no longer keep it from ever running (28a82e5e)
  • The International piece set draws every piece with one outline weight, matched to the disc ring: a soldier over the river no longer looks bolder than one at home, and the soldiers, elephant and cannon sit at the same weight as the rest (e5ac3804 to e907139d)
  • In Chinese, the watch page, every game review page, the games list, the profile and the analysis board no longer show English pieces (channel names, Guest, BOT, "Red wins by General captured", "3 days ago", the Truth/White/Black view buttons); the result line is one translated sentence (4e363185)
  • Broadcast games that ran past a threefold repetition or sixty capture-free plies open again: the site's own rules call those a draw, a tournament arbiter does not, and 52 of 376 stored boards had answered "Broadcast unavailable" since the record was written (06de17ed)
  • A Patron whose badge comes from a one-time payment sees how long it runs and can extend it or subscribe, instead of a "Manage your subscription" button with no subscription behind it (26cfe7d3)
  • The Jieqi bot no longer knows which of its face-down pieces you captured. Jieqi reveals a captured hidden piece to the capturer only, but the engine was told its own remaining hidden pieces from the true state, so every capture of one of its dark pieces told it what it had lost; it now reasons from what a player in its seat may know (2b4be2ca)
  • Mistboard TV and the games-in-play list name the Jieqi, Banqi and Flip Jungle bots and count their games as bot games; they had shown the bot as an unnamed player and the game as two humans since those variants went live (35a799a7)
  • An embedded study chapter that starts mid-game numbers its score sheet from the position's own move number, and a line that opens with the second mover no longer loses its first move (a530fe14)
  • Stepping back through the move list in a live game no longer moves the whole right rail: the "Viewing replay" notice is gone for the seated player (the Last move arrow lights up instead, and a click on the board returns to live), the captured-pieces band keeps its height whether or not anything was captured, and captured discs in the room are a little larger (bbfad4c0)
  • The Traditional Chinese rules pages read as Traditional all the way through; the Banqi page's opening paragraphs, capture rule, search snippet and closing links had been showing Simplified under a Traditional title since July, and a test now catches any page that slips back (8e2e720e)
  • Share-card images (the picture a link to a game, study chapter or article shows in chat) are drawn off the server's main thread; a crawler fetching hundreds of them used to stall every live game on the site for a second per picture (20c1a4dd)
  • The homepage board shows 1-0, 0-1 or ½-½ as soon as the game it was following ends, instead of holding the final clocks until a refresh; and changing the piece set repaints it at once on Jieqi, Banqi, Fortress and Fog Xiangqi games, as it already did on Xiangqi, Atomic and Duck (7bda2d4d)
  • The Source button on a broadcast polled from dpxq's game list opens the dpxq tour page; it linked the poller's own discovery address, which no browser can open (4be51a37)
  • A broadcast polled from a dpxq tour list files each game under the round its row states, whenever the record is uploaded, instead of only inside a twelve-hour window after the round started; the 2026 Shanghai Cup was polled all week and imported nothing. A tour's own page also now shows the poller's errors, which used to be written without the tour's name and so never reached it (ad09c5ff)
  • The study list shows the newest studies first; it used to sort by likes, which with four likes on the site kept the July studies pinned over everything since (c93c2096)
  • The variant marker on a study thumbnail scales to its frame, so the homepage rail no longer clips it off-centre (6a467506)
  • The homepage forum box names each topic's category in the site language instead of English (80e3f8e5)
  • Mahjong: a discard nobody can claim no longer waits out a six-second window; flowers are drawn and counted toward the three-faan floor; the clock pauses during a claim window and follows a claim to the seat that made it; the table says why a fitting tile cannot be chowed; and the felt is laid out as a ring with one fixed bar for status and claim buttons (9698ccd7)
  • The WebSocket dev switches (dev=solo, dev=engine, reset=1) are gated on the admin authorization views=all already required, so a production room id alone no longer opens a live fog room as a solo client (7c7521f6)
  • Deleted variants' rules pages answer 410 instead of falling through to the blog shell (2ecf7cc6, f2b723d1)
  • Duck Xiangqi counts full moves, so the pregame abort window still closes (fdd1ed4b)
  • The Fortress Xiangqi rules page no longer links Mini Xiangqi's rules, which are gone; the credit stays (3a28b392)
  • A board whose socket never opens on the direct host now falls back to the page origin after two failed opens, and every failed open is reported; some players in China reached a board and were never seated (444332b2)
  • Correspondence start and deadline emails no longer say a game is forfeited when it would be cancelled before the first move (d9d756e1)
  • A rated game from a deleted variant no longer shows up on the Fog Chess rating graph; the profile drew a June Dark Mini Xiangqi result as a fog rating drop (de467d33)
  • The Fog Chess, Fog Xiangqi and Fog Chess Concepts rules pages have a link preview again; they had shown the site card since the dark→fog rename. Jieqi, Banqi, Fortress, Duck, Jungle and Flip Jungle rules pages get one for the first time (f5a24d9d)

Technical

  • Jieqi moves are applied without generating every legal move, so a long game no longer stalls the server on each bot move (about 10x faster at move 100); rating runs apply one move per turn instead of replaying the game (041c7b81)
  • The web server now gets 20 seconds to shut down cleanly on a deploy, so live games pause instead of losing clock time (af68c5b1)
  • Admin metrics record what each drain and restart cost players, and a lapsed drain clears the Update pending banner (dddb2253)
  • Each Vietnamese page and its English original list the same language versions, with English as the default, so search engines read them as one page in several languages (bc121fc3)
  • /bots serves its heading and level list in the page HTML in all three languages, so search engines that do not run the page's code read it too (a29c7ed5)
  • A deploy no longer compiles the six server engines from source (2.5 minutes of every 5.6-minute deploy): the Build engines workflow publishes them once per pin as a GitHub release, and the image fetches and re-verifies them with the same perft and uci gates; first deploy on this path went push-to-live in 2m19s (c36d9fc7)
  • Ship-speed housekeeping: a release overtaken by another session's push now follows that push's CI run instead of failing (6409f8c9); the pre-commit hook runs Biome on staged files and the push gate runs only the web tests related to the change (9a8ee6d4); the depth-4 Benedict perft moved to its own CI job (c1c50949)
  • A release submits its prerendered URLs to IndexNow once the smokes pass, instead of waiting for someone to remember npm run indexnow; each run is logged on the release machine (0dc7831c)
  • The readout's aborted-game count asks whether a person sat in the room: 796 of 801 aborted games in the six weeks to 2026-09-21 were the prod smoke probes aborting their own rooms, so the surge it reported was ours, not players' (43d911c9)
  • The readout judges a games surge with the busiest player's games removed and prints that player's share, and raises product-abort-share-high once when aborts cross 40% of the games that ended; migration 148 adds game_participants.engine_id (f4303bc4, 59d5bda8)
  • Player index API, derived from the broadcast archive: GET /api/xiangqi/players (every name with a finished game in an A-level event, games and W-D-L per event) and /api/xiangqi/players/:slug (the player and every board they sat at); the data layer under the coming /players pages (93d5cc8b)
  • Broadcast pages fire broadcast_opened, the SSE streams count their viewers (today's and since-boot peaks on /api/server-status and a readout line), and npm run curate:studies runs the study curator by hand; the hourly job is behind MISTBOARD_STUDY_CURATOR_ENABLED (b9e8dadb, e6ed9ee9)
  • The daily readout replays every stored broadcast board the way the board API does and raises broadcast-boards-unservable when the count of boards it would 500 on grows; the replay helpers live in xiangqi-broadcast-serving.ts so the sweep and the route judge a row by one loop (622cab22)
  • The engine-vs-engine runner plays any variant with a VariantEveAdapter (xiangqi, Fortress Xiangqi, Duck Xiangqi), with each ladder's random-mover floor registered, so engine:enqueue-tournament --variant fortress-xiangqi rates a ladder that was hand-set until now; a bot variant without an adapter fails the build (33516d71)
  • worktree:prepare installs again under npm 12: the nested npm ci no longer inherits a user-level allow-scripts as npm_config_allow_scripts, which npm 12 rejects in a project install (99b4b3c2)
  • /api/auth/me names the allowlisted variants an account may play (variantGrants); admins hold every one without a grant row, and the play menu offers a gated variant only to an account the server would seat (349ed346)
  • Migration 144 tightens the rating-pool constraint to the nine live pools, deletes the mini-family puzzle rows, and drops games.hidden_draft960 (f1011fdd)
  • Migration 137 stores a browser device id on guest seats (ea5d57a0)
  • Migration 143 withholds the retired variants' puzzles from every serving path (2bf6490e)
  • The plain-chess kernel is standardChessVariant (VariantId 'chess'); draft960Variant and chess960.ts are gone (ef6d463e)
  • The variant lab discovers variants from its directory, so adding one touches no shared file (ef9f2089, 53fb7e4e)