Release v2.1.0 - #209
Merged
Merged
Conversation
Bumps package.json, the lockfile, and the McpServer version in src/index.ts. Contents are Phase 29 (commerce fluency, closed with a 100/100 acceptance proof), continuous integration, and the viewer performance fix. Minor rather than major: the one withdrawal in this range, responsive: "fixed", was a documented no-op the renderer never read. Passing it still succeeds and still renders, canvases carrying it still load, and the package exposes no typed library surface for a consumer to break against.
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version bump only —
package.json, the lockfile, and theMcpServerversion insrc/index.ts. All three verified to agree;npm run buildandnpm run test:fast(68/68) pass on the bump.What ships
Phase 29 — commerce fluency. Closed with a literal acceptance proof: the checkout screen that started the phase was rebuilt from the same inputs with none of its four workarounds and scored 100/100 with a clean stress run in both themes, against a 77 baseline.
commercegenre, so a transactional screen is no longer penalised for showing honest prices — the tell that cost 20 points on a checkout page.designSystemConflictsreport for inherited tokens the generator's own vocabulary owns.screenshotgainedfullPagefor designs taller than their artboard, andresponsive: "fixed"was withdrawn.Continuous integration. The project had 102 test files and no way to run them as a suite. There is now
npm test, and every pull request runs build plus tests on Node 22 and 24 alongside a browser job. It found three tests already broken, two of them red at the v2.0.0 tag, and then caught two real scaffold-overflow bugs that only reproduce on Linux font metrics.Viewer performance. The worst project page went from 4.2 seconds to 0.09 on a real 178-canvas store. The gallery was recomputing a score cache key per card, and that key re-listed and re-hashed every canvas in the store — quadratic in the whole store rather than the project being viewed.
Why minor and not major
The only withdrawal in this range is
responsive: "fixed", and it was a documented no-op: the renderer never read it. I checked rather than assumed — passing it today still succeeds, still renders, and canvases carrying it still load unchanged. The package declares notypesorexportsfield, so there is no typed library surface for a consumer to compile against. Nothing user-visible breaks.Scores do move on some canvases, because the sibling-padding advisory that could not be satisfied is gone. They move up, and the benchmark was re-baselined in #203.