Skip to content

Releases: EmPlugins/EmPost

0.4.0

05 May 06:08

Choose a tag to compare

0.4.0 Pre-release
Pre-release

v0.4.0

EmDash compatibility

  • Updates the plugin to target EmDash >=0.9.0.
  • Switches plugin capability from deprecated write:content to content:write (required for newer EmDash tooling).

Better ingest error reporting

  • Ingest now forwards EmDash structured errors from ctx.content.create, including VALIDATION_ERROR, SLUG_CONFLICT, CONFLICT, and NOT_FOUND.
  • Unknown failures return a stable CREATE_FAILED.

Docs improvements

  • Compatibility notes updated to EmDash 0.9.x+ and includes a brief note on EMDASH_ENCRYPTION_KEY / legacy EMDASH_AUTH_SECRET behavior.
  • Maintainer docs now clearly state which release steps run on your local Mac vs the DigitalOcean droplet.
  • Release process docs now explicitly require SemVer and vX.Y.Z git tags (packages in lockstep).

0.2.0

25 Apr 22:22

Choose a tag to compare

0.2.0 Pre-release
Pre-release

Release v0.2.0

This release publishes the first usable EmPost packages under @emplugins/*: an EmDash plugin for securely ingesting Markdown as draft posts, plus an MCP server so Cursor/Goose agents can submit drafts.

What’s included

  • @emplugins/emdash-plugin-md-draft

    • Adds EmDash plugin routes:
      • GET /_emdash/api/plugins/empost-md-draft/health
      • POST /_emdash/api/plugins/empost-md-draft/ingest
    • Ingest creates draft entries in the posts collection via ctx.content.create(...).
    • Security controls: HMAC auth, timestamp skew window, nonce replay protection, per-IP/per-key rate limits, payload caps, idempotency via Idempotency-Key, and conversion time budget.
    • Admin settings schema for configuring secrets and limits in /_emdash/admin.
  • @emplugins/mcp-emdash-drafts

    • Stdio MCP server runnable via npx for Cursor/Goose:
      • validate_markdown
      • ingest_markdown
      • ingest_path
    • Signs and POSTs to the ingest endpoint using env vars: EMDASH_INGEST_URL, EMDASH_HMAC_SECRET, EMDASH_KEY_ID.

Important notes

  • Ingest request body: JSON { "markdown": "..." } (not raw text/markdown), due to EmDash plugin route request handling.
  • Plugin format: native (to provide admin.settingsSchema), so configure it under EmDash plugins: [] (not sandboxed: []).
  • Compatibility: Tested with EmDash 0.7.x.

Docs and examples

  • Operator: docs/operator-runbook.md
  • Cursor MCP: docs/cursor-mcp.md
  • Goose MCP: docs/goose-mcp.md
  • Examples: examples/post-template.md, examples/mcp.cursor.json, examples/mcp.goose.yaml