From f1be4eaf14bc903a5eee04fa0744963b7f9a4dc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 02:47:17 +0000 Subject: [PATCH] Version Packages --- .changeset/wide-glyph-width-lint.md | 23 ----------------------- CHANGELOG.md | 24 ++++++++++++++++++++++++ package.json | 2 +- rust/Cargo.toml | 2 +- 4 files changed, 26 insertions(+), 25 deletions(-) delete mode 100644 .changeset/wide-glyph-width-lint.md diff --git a/.changeset/wide-glyph-width-lint.md b/.changeset/wide-glyph-width-lint.md deleted file mode 100644 index a1055e1..0000000 --- a/.changeset/wide-glyph-width-lint.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -"kit": minor ---- - -feat(cli): lint game source for wide-glyph width-contract violations - -`shellcade-kit lint-width ...` 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 ` 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. diff --git a/CHANGELOG.md b/CHANGELOG.md index 9797246..fd94f83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 ...` 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 ` 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 diff --git a/package.json b/package.json index 7bde898..8bcfe11 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/rust/Cargo.toml b/rust/Cargo.toml index f5f7a6c..e5a13f5 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -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.