Skip to content

Versions And Upgrading

Mark Rogers edited this page Oct 27, 2026 · 2 revisions

Every release is a tag with a GitHub release and no files attached; claude plugin install takes the newest. The versions between two tags were never released on their own: 0.8.2 holds the changes of 0.7.1 to 0.8.1 too. The CHANGELOG has every entry with its reason.

Releases

Tag Date (UTC) What changed
v0.6.0 2026-10-24 first public release; spritewright renamed, the make half added (Coming from spritewright)
v0.6.1 2026-10-24 make calls artwright with --scale 1 (Gates)
v0.6.2 2026-10-24 a missing input prints JSON, not a traceback; artwright is also looked for under CLAUDE_CONFIG_DIR
v0.6.3 2026-10-25 review page items display: full and kind: info
v0.7.0 2026-10-25 natural construction: assemble plan "vocabulary": "natural", effect site
v0.8.2 2026-10-26 the versions below
v0.8.3 2026-10-26 natural plans can lay whole log courses and plank roofs board by board; plans without the new fields are unchanged
v0.8.4 2026-10-26 flicker motion matching; flicker_at format and fog caveats; image output unchanged

What 0.8.2 holds, from the CHANGELOG:

Version Change Opt-in?
0.7.1 skill advice: a natural plan needs a roof of a different material than the walls docs only
0.7.2 site lines clipped to the finished silhouette (clip: false for the old lines); drawn_outside_silhouette in every animation's gates, failing site animations above 0 clipping is the new default for site
0.7.3 skill advice: trace natural roofs on a grid; put shared loops out of step with a random hold on frame 0 docs only
0.8.0 snap tests its grid against chance no: changes default output
0.8.0 background.holes (bg --holes), dither.space: linear and dither.max_step (--dither-space, --max-step), clean.corners (--corners), fog, the swap command, model_rotate's filter: box yes
0.8.1 flicker_pixels and flicker_at in the gates (failing only with max_flicker_pixels), cadence_uneven, arc's perfect reports only; perfect yes
0.8.2 skill advice: open-sided buildings take the ordinary natural plan docs only

Upgrading from 0.7.0 to 0.8.2

The wiki's program ran every case on these pages with 0.8.2, and the smooth-render snap case with 0.7.0 as well. Against the 0.7.0 outputs saved on 2026-10-24, these were the differences:

  • snap on images with few edges. A smooth JPEG render that 0.7.0 snapped at scale 57 into a 13x13 image now comes back at scale 1, unchanged (Making pixel art). Every render with a real grid on these pages snapped exactly as before. If a recipe relied on detection for a soft image that is pixel art after all, give the scale: "snap": {"scale": S, "offset": [X, Y]}.
  • New report fields. The background step prints enclosed_cleared (0 unless holes is set), in bg and in every make report. Each animation's gates add drawn_outside_silhouette and flicker_pixels (with flicker_at when there are any), and cadence_uneven when it applies. A script that compares whole reports will see them; one that reads ok and pass will not. On these pages they changed no pass: the forge's animations passed and failed as in 0.7.0.
  • Help text. swap is in the command list, and palette --help shows --dither-space and --max-step, so the usage text runs to more lines.
  • The same. Every sprite, sheet and number on these pages other than those fields and versions, and the three pictures on Home, Making pixel art and Animating a sprite (byte for byte). The CHANGELOG says the same of default outputs on random images for every dither pattern, and that sheets and frames from 0.8.1 match 0.8.0.

site animations built with 0.7.0 draw fewer construction lines in 0.8.2 and can now fail on drawn_outside_silhouette; that was not run for this wiki (no site case). Add "clip": false to the track to keep the 0.7.0 frames.

Upgrading from 0.8.2 to 0.8.3

Natural construction plans can set "walls": "logs" with a course size in pixels, and "roofOrder": "boards" with a board size. Whole log courses grow from the front corner out; roof boards are laid side by side from the front rake, each whole from eave to ridge. Plans without these fields are unchanged. This comes from the source and CHANGELOG; the wiki's examples do not use the options.

Upgrading from 0.8.3 to 0.8.4

The flicker gate now matches a travelling pixel through three frames even when its step exceeds 1 px. Incoming and outgoing steps may differ by 1 px. Over transparent sky the match uses alpha so a spark may change colour; over opaque art it uses RGBA. flicker_pixels and its flicker_at sample may shrink. An animation capped with max_flicker_pixels may now pass without changing a pixel in the sheet.

flicker_at keeps the same format: up to 8 unique [x, y] pairs in row order, with no frame index. The docs now say this explicitly. Motion matching is a heuristic; unmatched motion and intentional blinks can still count.

Fog output is unchanged. The recipe now warns that a high amount with a sparse palette can reduce every opaque pixel to one colour while the gates still pass. Inspect the result, lower the amount or choose a palette with more steps near the air colour.

Upgrading in Claude Code

claude plugin marketplace update pixelwright
claude plugin update pixelwright@pixelwright

Both commands are listed by claude plugin --help and claude plugin marketplace --help in Claude Code 2.1.281; neither was run for this wiki, which installed 0.8.2 fresh into an empty configuration folder (Getting started). claude plugin update says a restart is needed to apply it. Check the version afterwards with python pxw.py --version.

Clone this wiki locally