Skip to content

v0.11.0 — dashboard UX: rail and readout

Choose a tag to compare

@osick osick released this 12 Aug 16:31
· 92 commits to main since this release
6150b70

Every screen is now a grey rail — what you manipulate — beside a white readout — what the tables say.

This release also carries v0.10.0, which was merged to main and superseded within the same session and so has a tag but no separate release.

Added

  • Drag-and-drop position editing. Drag a piece from the palette onto a square, drag pieces around the board in the new Arrange mode, or drag one off the edge to remove it. Click-to-place is unchanged and remains the keyboard path. Edit mode gained a visible Done — evaluate.
  • The explorer shows the table a position came from, in a band below the board and the move list.
  • Materials lands on "All tables" — the whole corpus at once, including the 67 materials that contain no helpmate at all and the seven generator versions that built the rest. The table list scrolls inside its rail, filters on substring, and groups by piece count.
  • Search has a Stop button and shows elapsed time against the server's own budget. Stop is honest about its limits: the scan runs in a thread pool, so abandoning the response does not free the worker.
  • GET /v1/stats returns a corpus aggregate. /v1/probe and /v1/moves report the material whose table answered — the mirrored one when colours were flipped. /v1/health reports mine_timeout.

Fixed

  • The board overlapped the move list between 860px and ~1150px, sized from the viewport while its column was sized from the grid.
  • A material with no helpmate reported "longest mate h#127.5" — the stored DTM_UNSOLVABLE sentinel divided by two. 67 of 295 tables were affected.
  • A timed-out search reported "0 position(s) (truncated — raise max results for more)" — advice that could not help, about a scan that never finished.
  • The Materials page rendered 12,005px tall.
  • An edited position never reached the URL: a copied link reopened the pre-edit position, Back could not undo, and switching panels discarded the edit.
  • Typing in the Materials filter with no tables installed threw on every keystroke and permanently killed the filter — the first-run state of a fresh install.
  • A truncated sidecar returned 500 from /v1/stats and /v1/materials, contradicting the documented tolerance. An interrupted generation run produces exactly that.
  • material could name a table that cannot exist on unsolvable mirrored positions.
  • /v1/stats parsed every sidecar before checking its own cache.
  • make test-api tested a stale site-packages copy, so a regression in existing behaviour could pass silently; make lint skipped new unstaged JavaScript.

Known limits

  • An uncommitted edit is still discarded by switching panels; Done — evaluate is the commit gesture.
  • SIGTERM does not stop a running mine scan and its timeout is non-deterministic under load, because the pool worker outlives its HTTP response. Concurrency work is next.
  • Touch-drag is verified under emulation, not on a physical device.

What's Changed

  • Dashboard UX: rail and readout, drag-and-drop editing, corpus statistics (v0.11.0) by @osick in #9
  • Bring the dashboard UX pass (v0.11.0) to main by @osick in #10

Full Changelog: v0.10.0...v0.11.0