Tags: r/morph
Tags
v0.48.3: pin morph-mcp resolution in spec tests so CI passes on clean… … runners Re-cuts v0.48.2: same user-visible behaviour, but with a CI-only fix to the new setup_cursor acceptance specs. `cargo test --workspace` does not build target/debug/morph-mcp (only its unit-test binary in target/debug/deps/), so a clean GitHub runner with no installed morph-mcp had resolve_mcp_command() fall back to the bare name and the `mcp.json contains "/morph-mcp"` assertion failed. v0.48.2 is tagged but never made it through the publish/update-tap steps. The fix plants an empty stub `morph-mcp` in OUT_DIR from build.rs and injects MORPH_MCP_PATH=<OUT_DIR>/morph-mcp into every generated spec command. The resolver's first branch (env var, validated via is_file()) is now exercised deterministically across local + CI runs without depending on workspace build order or the runner's PATH. Production resolution chain (env -> sibling -> PATH -> bare) is unchanged; only the test-harness path is pinned. Verified: PATH=/tmp/fake-bins:/usr/bin:/bin cargo test --workspace --locked -> 1220/1220 passing on a runner with no morph-mcp anywhere. Co-authored-by: Cursor <cursoragent@cursor.com>
site: add OG/Twitter preview image and pixel-perfect renderer Adds the 1200×630 social-card image referenced by the og:* and twitter:* meta tags. Built from real CSS (not an image-model generation) so the typography is crisp and reproducible. - site/og-card.html — pure typographic 1200×630 layout: deep navy background with a soft teal radial glow, "morph" wordmark + alpha caption top-left, headline "Refuses merges that make the code worse." (with `worse` in mint teal), subtitle, agent-tagline + r.github.io/morph URL on the bottom row. Uses the same Inter + IBM Plex Mono fonts the main site loads. - site/make-og-card.sh — finds a Chromium-based browser (Google Chrome, Canary, Beta, Chromium, Brave, or Edge — overridable via $MORPH_OG_CHROME), runs headless, screenshots at 1200×800, and crops to 1200×630 via Python+PIL. Renders tall-then-crops because headless Chrome was clipping absolute children near the lower viewport edge at exact target heights. - site/og-card.png — committed output. Re-run make-og-card.sh whenever the source HTML changes. - site/index.html — twitter:card bumped from summary to summary_large_image; og:image, og:image:width/height/type/alt and twitter:image + twitter:image:alt added pointing at the new PNG. Slack, Discord, LinkedIn, X, iMessage, and Facebook will now render the full-width preview card on the next link share once the Pages deploy completes (cache-busts on the new image filename + new tags). No CLI/MCP behavior change — site assets only, no version bump. Co-authored-by: Cursor <cursoragent@cursor.com>
site: rewrite hero subhead to lead with the pain, add OG/Twitter cards
Old subhead led with mechanics ("immutable Run with a full Trace",
"behavioral dominance") and buried the prototype/help line where
the persuasion needed to live. Reader had no reason to care yet.
- Hero subhead now opens with the three failure modes git can't
catch when an agent writes the code (which prompt produced a
function, do tests still pass, did a clean merge silently
regress) and closes on the concrete promise: refuses merges
that make the code worse.
- Demoted "open research prototype / want your help" out of the
hero subhead into a small muted caption under the CTAs (the
alpha banner and "Where We Are" section already carry that
message).
- meta description rewritten to mirror the new hero so search
snippets and link previews stop saying "behavioral dominance".
- Added og:* and twitter:card tags + canonical link so Slack,
Discord, LinkedIn, X, and iMessage previews show the new pitch.
twitter:card=summary (no og:image asset yet — upgrade to
summary_large_image once we ship one).
No CLI/MCP behavior change — site copy only, no version bump.
Co-authored-by: Cursor <cursoragent@cursor.com>
site: drop version number from OG card to eliminate drift The card's caption used to read 'v0.48 · alpha · open research prototype'. The version was the only thing on the card that drifted as a side-effect of unrelated work (every release would silently stale the preview image until somebody remembered to re-render). Drop the version. The remaining elements on the card — pitch, subtitle, agent list, alpha tag, URL — only change on deliberate edits, so the card now stays in sync with no automation. Caption now reads 'alpha · open research prototype'. If we ever want to put the version back, we'd auto-render in CI: read [workspace.package].version from Cargo.toml, template into the HTML, run make-og-card.sh on a GitHub Actions runner (which ships Chromium), and commit the result back. Out of scope for this commit. No CLI/MCP behavior change — site asset only, no version bump. Co-authored-by: Cursor <cursoragent@cursor.com>
site: mirror OG/Twitter card metadata onto changelog and tutorials The hero card metadata only lived on the index. When somebody shared a tutorial or changelog link in Slack / Discord / LinkedIn / X, the preview fell back to whatever the platform invented from the page title (often nothing useful, sometimes nothing at all). Now every page in site/ has a complete OG + Twitter block with page-specific og:title / og:description / og:url + canonical link, all reusing the shared og-card.png as the preview image. Tutorials use og:type=article (the more accurate semantic), changelog and tutorials index stay og:type=website. The og:description for each page is taken from the existing <meta name="description"> the page already had — no rewriting, just lifting into the OG namespace so social platforms see it. No CLI/MCP behavior change — site copy only, no version bump. Co-authored-by: Cursor <cursoragent@cursor.com>
PreviousNext