Skip to content

Release v2.1.0 - #209

Merged
vicmaster merged 1 commit into
masterfrom
release-v2.1.0
Sep 3, 2026
Merged

Release v2.1.0#209
vicmaster merged 1 commit into
masterfrom
release-v2.1.0

Conversation

@vicmaster

@vicmastervicmaster commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Version bump only — package.json, the lockfile, and the McpServer version in src/index.ts. All three verified to agree; npm run build and npm 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.

  • A commerce genre, so a transactional screen is no longer penalised for showing honest prices — the tell that cost 20 points on a checkout page.
  • Field-wise typography preservation, so a partially-specified inherited token no longer silently strips the generated personality's font family, and a designSystemConflicts report for inherited tokens the generator's own vocabulary owns.
  • Every component scaffold now references type roles rather than literal pixel sizes, and survives long-text and i18n content.
  • Advisory honesty: the unsatisfiable sibling-padding check removed, spacing variety measured against the canvas's own declared scale, and readiness no longer withheld when nothing blocking remains.
  • screenshot gained fullPage for designs taller than their artboard, and responsive: "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 no types or exports field, 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.

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.
@vicmaster
vicmaster merged commit 6d6c638 into masterSep 3, 2026
3 checks passed
@vicmaster
vicmaster deleted the release-v2.1.0 branch September 3, 2026 12:12
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@vicmaster