Skip to content

chore: release v2.4.0 - #242

Merged
vicmaster merged 1 commit into
masterfrom
release-v2.4.0
Nov 2, 2026
Merged

vicmaster merged 1 commit into
masterfrom
release-v2.4.0

Conversation

@vicmaster

Copy link
Copy Markdown
Owner

Bumps framesmith to 2.4.0 in package.json, package-lock.json, and the version the MCP server reports in src/index.ts.

This is a minor release. It ships Phase 30, the mobile surface, and the fixes found while building toward it.

  • Fix four silent drops found by the mobile surface attempt #232: four fixes from building one phone screen end to end:
    • canvas_create now honours width and height.
    • gap: 0 is no longer flagged as off the spacing scale.
    • A chart highlight accepts a single index.
    • canvas_evaluate stays NOT READY after a FRAGILE canvas_stress run.
    • Detailed evaluation, snapshot_layout and canvas_diff now lay out at the canvas's own size.
  • spec: Phase 30 — the mobile surface #233–Rebuild Ridgeline on the mobile surface (Phase 30 slice G) #240, Phase 30:
    • A canvas can be declared a phone screen, with canvas_create({ type: "mobile" }) or the new canvas_set_type tool.
    • A phone canvas is judged by the mobile rules (44px tap targets, safe areas, a body-size floor, tab-bar sanity).
    • Seven new phone node types: status-bar, home-indicator, nav-bar, tab-bar, button, list-row, sheet.
    • fixed and sticky positioning.
    • Six structures have phone versions that apply_structure picks by canvas type.
    • The viewer shows phone canvases in a device frame.
    • The dashboard genre is now data, with dashboard kept as an alias. The genre has its own field, so apply_preset no longer overwrites it.
    • The acceptance rebuild also fixed two render bugs: large type now scales against the canvas's own width, and chart tick labels keep their size.
  • Kill a timed-out test's whole process group in the test runner #241: the test runner kills a timed-out test's whole process group, so one hung test no longer stalls a run.

The README gains a phone screen in its gallery: docs/framesmith-mobile.png is the acceptance-test screen shown as one phone screen, light and dark side by side. The gallery's intro now says every screen cleared "every state the evaluator demands designed" instead of "states designed", because the evaluator's state coverage doesn't yet look at list rows, and the phone screen has no empty or loading variant.

Three changes are visible to existing users. A web canvas narrower than 500px gets a mobile-artboard warning until it is declared web or mobile. A web canvas that isn't 1440 wide renders its large type at the authored size, where it used to be scaled down. A FRAGILE canvas_stress result now blocks presenting.

npm run build succeeds, npm run test:full passes (118/118), test-discoverability.ts passes (143/143), and npm pack --dry-run reports version 2.4.0 with 127 files.

@vicmaster
vicmaster merged commit 7df8333 into master Nov 2, 2026
3 checks passed
@vicmaster
vicmaster deleted the release-v2.4.0 branch November 2, 2026 11:36
Sign up for free to 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