Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions .changeset/wide-glyph-width-lint.md

This file was deleted.

24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# kit

## 2.13.0

### Minor Changes

- 22d9385: feat(cli): lint game source for wide-glyph width-contract violations

`shellcade-kit lint-width <path>...` parses Go game source and flags every
wide-glyph writer call — `(*Frame).SetWide` / `(*Frame).SetGraphemeWide` — whose
base code point is a determinable literal but is NOT East-Asian-Width Wide (W)
or Fullwidth (F). Such a base reserves two terminal columns for a glyph the
terminal advances by one, desyncing every column to its right — the bug that
corrupted the pokies reels in production (a keycap base `U+0037`, EAW Neutral,
fed to a wide writer). Each violation is reported with `file:line` and the
offending code point, and the command exits non-zero on any violation, so it is
a one-command merge gate.

`shellcade-kit check <gamedir>` now runs this lint over the Go source before the
build + conformance run, since a width-contract desync never faults and so
cannot be observed by conformance alone.

The EAW judgement embeds the Wide/Fullwidth ranges of the Unicode Character
Database `EastAsianWidth.txt`; the public module stays dependency-free. Additive
only: the guest SDK and the ABI are unchanged.

## 2.12.2

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kit",
"version": "2.12.2",
"version": "2.13.0",
"private": true,
"description": "Version management for the shellcade gamekit (Go module + CLI). Versions and changelogs are driven by changesets; binaries by GoReleaser.",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

[package]
name = "shellcade-kit"
version = "2.12.2"
version = "2.13.0"
edition = "2021"
# #[unsafe(no_mangle)] (emitted by shellcade_game! so expansions survive
# edition-2024 game crates) stabilized in 1.82.
Expand Down
Loading