ReShiki 0.14.0 release validation
This record lists the checks run on the 0.14.0 release preparation and the checks that remain, and the published release: the tag run, the public downloads and the package registries. Release notes · Release procedure.
Release preparation
Section titled “Release preparation”The release preparation pull request sets the version to 0.14.0 in
Cargo.toml ([package] and [workspace.package], which the Python package
follows) and Cargo.lock, moves the unreleased changes into the
release notes, adds the GitHub release highlights in
.github/release-notes/v0.14.0.md and updates the install guide’s file
compatibility section. The npm package takes its version from Cargo.toml
when the tag publishes it, so packages/editor/package.json is unchanged.
Native output still uses document version 30 unless a drawing needs a newer
format: 31 for a custom reaction-label gap, 32 for ORTEP settings, 33 for a
generated 3D model, model atom labels or a plain XYZ model, and 34 for a
two-sided residue group (VERSION is 34 in crates/model/src/document.rs).
ReShiki 0.13.1 reads up to version 30.
0.14.0 is the first release that publishes the reshiki Python package to
PyPI.
Automated checks
Section titled “Automated checks”These ran locally on the release preparation branch, on macOS ARM64, with
RESHIKI_INCHI_HELPER and RESHIKI_NAMING_HELPER set to the debug build and
RESHIKI_REQUIRE_INCHI_HELPER=1:
| Check | Command | Result |
|---|---|---|
| Version | reshiki --version and reshiki --cli --version from a debug build |
reshiki 0.14.0 (before: reshiki 0.13.1) |
| Tag check | scripts/build_release.py --tag v0.14.0 --check-tag-only |
Passed; v0.13.1 is refused |
| Rust format | cargo fmt --all --check |
Passed |
| Rust lint | cargo clippy --workspace --lib --bins --all-features --locked -- -D warnings |
Passed |
| Browser lint | cargo clippy -p reshiki-web -p reshiki -p reshiki-web-worker --lib --bin reshiki --target wasm32-unknown-unknown --locked -- -D warnings |
Passed |
| Colour reference | cargo run --locked --example theme_colors, then cargo test --locked --test theme_reference |
Regenerated data matches main except reshiki_version; 1 passed |
| Windows version resource | cargo test --locked --test windows_version_metadata |
4 passed |
| Agent API version | cargo test --locked --test mcp_stdio --test mcp_tools --test headless_parity |
25 passed |
| Release Python modules | python -m unittest tests.test_release tests.test_prepare_nightly tests.test_release_downloads |
28 passed |
| JavaScript format and lint | bun run format:check, bun run lint:js |
Passed |
| Documentation | bun run docs:check |
0 errors, 0 warnings, 0 hints |
| Website and links | bun run docs:build |
14,453 local links/assets, llms.txt, agent-api.txt and 1,360 colours verified |
The pull request’s Checks workflow runs the native, browser (wasm32), Python and documentation jobs again; its results are on the pull request.
Manual checks before the tag
Section titled “Manual checks before the tag”The maintainer runs these on a manual Release builds run of the merged
main commit, or on its packages, and records the results here:
- Release build: a manual Release builds run passes on all six platforms and does not publish.
- Focus after closing reviews: in the release build, close Clean up, 3D preview, atom label, Name import preview, Structure import, reaction mapping proposal and assistant review with Enter and separately with Esc (Apply/Discard where those keys are unavailable). After each close, Delete or Cmd+Z acts on the drawing without a click. Passed for every panel except assistant review, which was not checked; see Focus after closing reviews.
- macOS app (Apple Silicon and Intel): the DMG opens, the app reports 0.14.0, draws and names a molecule with its status tag, imports a salt by name, inserts a Fischer projection and converts it to wedges, shows a 3D model, updates it after an edit and saves and reopens the drawing.
- Windows x64: setup installs over 0.13.1, the app starts, names a molecule, shows a 3D model and opens a crystal file. Windows ARM64 is covered by the CI package checks only. Downloads remain unsigned.
- Linux (Arch Linux x64 and Ubuntu arm64): the portable archive starts, opens a drawing and names a molecule.
- Browser demo: a demo built with
scripts/build_wasm.shandscripts/package_web_demo.shloads in Chrome, Safari and Firefox, draws with touch, saves back to the opened file in Chrome, converts a name with Import → Name and predicts NMR. - npm package: the package built by the release workflow passes its
tests; after publication
@ameyanagi/[email protected]islatest. - PyPI: the pending trusted publisher for
reshikiexists on pypi.org; after publicationuv add reshikiinstalls 0.14.0 on each platform. - Compatibility: a plain drawing saved by 0.14.0 opens in 0.13.1; a drawing with a generated 3D model saved by 0.14.0 is refused by 0.13.1 with the request to update; a drawing saved by 0.13.1 opens in 0.14.0.
Focus after closing reviews
Section titled “Focus after closing reviews”Checked on 8 November 2026 with a release build (cargo build --release) of
the release branch at 1ebfcbdd, on macOS ARM64, in an app bundle whose
RESHIKI_DATA_DIR pointed at an empty folder. Each case started with part of
the drawing selected. After the panel closed, the next keys were Delete and
then Cmd+Z, with no click in between. Each pair of screenshots shows the
drawing after Delete and after Cmd+Z.
| Panel | Closed with | Delete acted | Cmd+Z acted | Screenshots |
|---|---|---|---|---|
| Clean up preview | Enter | yes | yes | Delete · Cmd+Z |
| Clean up preview | Esc | yes | yes | Delete · Cmd+Z |
| 3D preview | Enter | yes | yes | Delete · Cmd+Z |
| 3D preview | Esc | yes | yes | Delete · Cmd+Z |
| Atom label editor | Enter | yes | yes | Delete · Cmd+Z |
| Atom label editor | Esc | yes | yes | Delete · Cmd+Z |
| Name import preview | Enter in the name field | yes | yes | Delete · Cmd+Z |
| Name import preview | Esc in the name field | yes | yes | Delete · Cmd+Z |
| Structure import | Insert (Enter adds a line) | yes | yes | Delete · Cmd+Z |
| Structure import | Esc in the structure field | yes | yes | Delete · Cmd+Z |
| Reaction mapping proposal | Enter on Apply maps | yes | yes | Delete · Cmd+Z |
| Reaction mapping proposal | Discard (no Esc shortcut) | yes | yes | Delete · Cmd+Z |
Name and Structure import are sidebar panels: Enter, Insert and Esc return
keyboard focus to the drawing and leave the sidebar open with its draft.
Assistant review was not checked because it needs live assistant credentials;
the automated review_close_returns_focus_* tests cover its local buttons.



Live RDKit reference suite
Section titled “Live RDKit reference suite”The complete live reference tests gate publication in release.yml. The
weekly run had failed since 5 October 2026 because the engine changed after
0.13.1 without a live run (issue #1037).
Before the tag, the regressions were fixed and the intended changes were
compared narrowly:
- Fixed: wedge-flagged SMILES keep their stereoisomer
(#1045);
@/@@tags decide wedge flags without coordinates (#1050); reaction SMILES keep stated E/Z (#1051); 3D MOL InChI uses the file’s coordinates (#1058); RXN, allene, tag and atropisomer axis fixes (#1059, #1062, #1063). - Intended changes compared against the RDKit-parity result: #1047 and #1065.
- Known issues kept as exact case lists: #1042 and #1048; see Known limits.
The complete suite then ran on the release branch on macOS ARM64, Linux x64 and Windows x64: run 42465554525 passed all 12 reference shards and the other 19 jobs (one skipped by design).
After the release
Section titled “After the release”ReShiki 0.14.0
was published on 8 November 2026 from 59a104b52ab23610a22fd942343367ad235c0a89,
the merge of the release preparation pull request
(#1028), by
release run 42475474500.
Every job passed: the six platform packages, the Python wheels, macOS signing
for ARM64 and Intel (sign, notarize, staple and verify), the complete live
reference tests on macOS ARM64, Linux x64 and Windows x64, and publishing.
Windows signing was skipped as configured; Windows and Linux downloads are
unsigned.
| Channel | Version | Notes |
|---|---|---|
| GitHub release | 0.14.0 | 10 packages and SHA256SUMS |
npm @ameyanagi/reshiki |
0.14.0 | latest, with a provenance statement |
PyPI reshiki |
0.14.0 | First release; six abi3 wheels (macOS ARM64/x64, Linux x64/arm64, Windows x64/ARM64) |
| Browser demo | 0.14.0 | web_demo job; the Documentation deploy was rerun after a GitHub token request timeout |
SHA256SUMS:
1715bd181d7acec340b0d48566ff0a10912135411202befc65d9222e8c87f533 reshiki-0.14.0-macos-arm64.dmg4467f00bcce91852f58204b120984f7f6ab9976b9cdeed6c7d18639ecbd4bfd1 reshiki-0.14.0-macos-arm64.zip9bfc0a09fcfe341eabd799bf6e6890e3fed9a762228a411615a23ea3ead06784 reshiki-0.14.0-macos-x64.dmgbe249a1d5560c17829605eec6e937ad15d282ffabfac62fcd8ce02b9e3098392 reshiki-0.14.0-macos-x64.zip9bce863ba0f31cf36f9bcb7ed3e7de6e815b1e929a4c8a9520d868fc926dd17a reshiki-0.14.0-windows-x64-setup.exe27396402effb9c78f2c5002c64988faf94b19f672831223d02e98c3fd5559076 reshiki-0.14.0-windows-x64.zipec72ccde533433644f4af8be41dd9a8b150d0f00978e3db0cb1cf479762fb2e5 reshiki-0.14.0-windows-arm64-setup.exe735412f473ed1fdca3531c38bfc76e5debb8ea8699cc209b4475437603abb3b2 reshiki-0.14.0-windows-arm64.zip28ce8b5ad69dbf134a21e5a6bce578578f88e0d3428b62be225ca701bbd34fa0 reshiki-0.14.0-linux-x64.tar.gz697fbf8c3f7554396877409bc804596d0b43c2b84fac49e37ffe9496f793e1ca reshiki-0.14.0-linux-arm64.tar.gzThe tag was pushed with the maintainer’s approval after the live reference run and the focus check passed. The remaining manual checks above (release build run, macOS app, Windows install, Linux archives, browser demo, npm/PyPI installs and file compatibility) were not run before the tag and stay open for the published downloads.