NoteSurge Changelog

api

Everything shipped under “api”, across every version, newest first.

See every scheduled post in the calendar, even ones from other tools

v1.87.0 · October 26, 2026

Added

The calendar opens on a new All view that shows each post with its platform icons. Posts that another tool publishes for you (Riverside, Typefully and others) can be added through the API or MCP as read-only records, so the calendar shows your whole plan. NoteSurge never publishes those posts itself; you can only tag, pin or delete them.

More in the public API, per-scope rate limits, and SDK 0.3.0

v1.85.0 · October 7, 2026

Added

The API and MCP can now find the next free posting slot, attach an image or video from a URL, and read a published note’s engagement. Rate limits are now per key scope (60 requests a minute for full and draft-only keys, 120 for read-only) and every response carries X-RateLimit headers. SDK 0.3.0 can list, create and delete scheduled tasks.

Plan notes in bulk, and a fuller public API

v1.84.0 · October 4, 2026

Added

Select notes in Queue or Drafts to tag, untag, pin, unpin or plan them in one go, and Compose has a Plan panel. Planned notes never publish on their own. The public API now covers drafts, tags, queue scheduling, media and comments, with an OpenAPI document and SDK 0.2.0.

Connect Notey to other AI apps with a sign-in

v1.84.0 · October 4, 2026

Added

AI apps that support remote MCP can now connect to NoteSurge by signing in and approving access, with no token to copy. Tokens can be limited to analytics, one area or one platform, can expire, and Settings lists the apps you have authorized with a Disconnect button. MCP clients also get NoteSurge resources and prompts, and every API capability is now available over MCP.

Typed SDK, client workspaces for agencies, and white label

v1.83.0 · October 3, 2026

Added

A typed JavaScript client covers notes, scheduling, the Library and analytics. The public API gains top posts and best times. Agencies can create a separate workspace for each client, each with its own connections, queue and Library and its own people and roles, and set a brand name, logo and color that clients see on review pages, invite emails and in the app.

Queue times that follow your account, and tags, search, pins, a scratchpad and planned notes

v1.83.0 · October 3, 2026

Added

Your queue times are now saved to your account instead of one browser, so Compose, Rebalance, the API and MCP all use the same slots, and slots you had saved in a browser move over once. Notes can be tagged and filtered by tag, searched by text, and pinned to the top of Drafts. A scratchpad sits in the Drafts tab, and a Planned note keeps a date without ever posting by itself until you schedule it.

Workspace content feed now available in RSS, Atom 1.0, and JSON Feed 1.1

v1.78.0 · September 19, 2026

Added

MIT-E: the public content feed (api/content-feed/[token]/feed) now renders in three formats selected by URL extension — /feed.xml (RSS 2.0, unchanged), /feed.atom (Atom 1.0), and /feed.json (JSON Feed 1.1). RSS delegates to the existing X5 renderer (output pinned by tests); Atom and JSON use the MIT-licensed `feed` library. All three reuse the shared description cleaner and token plumbing from the X5 seam.

API docs now cover the cronjob management endpoints

v1.76.0 · September 15, 2026

Added

The /docs/api reference page gains an "Agent tools" section that renders every api-bound capability — starting with the three cronjob management endpoints (GET/POST /v1/cronjobs, DELETE /v1/cronjobs/{id}) that were previously silently dropped because the page only split endpoints into Notes and Library groups. A drift-lock test now asserts every apiEndpointRows() result is claimed by exactly one rendered group, so future non-content endpoints are documented the day they register.

PATCH /api/notes/[id] now resolves body.slots to a publishAt

v1.71.0 · September 8, 2026

Fixed

The Composer "Add to queue" on an existing note sent body.slots but the PATCH route ignored them, leaving the note frozen at its stale draft-creation time. Now mirrors scheduleNoteCore: when body.slots is present and no explicit body.publishAt, resolves via nextFreeSlot (#767, PR #770).

heal-reports-log.mjs now sets 0o664 after file creation

v1.71.0 · September 8, 2026

Fixed

The reports log was created at process umask (often 0o644 → not group-writable → cross-uid write failures recur). Now calls chmod after creation (#768, PR #770).

Skill marketplace install no longer 502s — session cookies forwarded

v1.70.0 · September 7, 2026

Fixed

The marketplace install route forwards the inbound session cookie on its internal /api/skills fetch; previously the cookie-less sub-request hit a 401 and every install surfaced as a 502 (#495). Drive/Dropbox re-import is also idempotent again — the pre-fetch check queries metadata->>fileId instead of externalId, which held the sha-256 (#569).

Workflow canvas lookup returns a clean 404 instead of a 500 on non-UUID ids

v1.64.0 · September 1, 2026

Fixed

The /api/workflow-canvas/[id] GET endpoint validated the canvas id against the UUID format before hitting the database; a non-UUID value previously made Postgres throw an "invalid input syntax for type uuid" error and surface as a 500. It now answers with an honest 404 instead.

Skill marketplace — publish skills others install with one click

v1.61.0 · August 30, 2026

Added

Creators can publish a skill from their workspace to a curated marketplace directory, where other users can browse approved entries and install them with one click via the same SKILL.md import path. Submissions start as pending and require admin approval before appearing in the public directory. Free directory in v1 — no payments, paid listings may come later.

Notey can message you proactively and react to your messages — the Telegram loop is now two-way

v1.60.0 · August 30, 2026

Added

The Telegram agent no longer only replies to you — it can push messages to your chat on its own and react to your latest message with an emoji (or retract one). message.send sends a proactive note to your own chat (e.g. "digest queued" or "clip render finished") via the agent's Telegram connection; message.react attaches a single emoji reaction to your most recent message (or a specific one by id) via Telegram's setMessageReaction. Both are registry capabilities (message.send / message.react) exposed through the MCP adapter and the telegram-agent TOOL_EXECUTORS, gated on canWrite like other draft-tier tools, and blocked for sub-agents so a detached agent can never message you. The not-connected case returns an honest refusal instead of throwing. Ported from Hermes' MIT send_message_tool.py and react_to_message_tool.py.

Zapier integration — webhooks in, API actions out

v1.58.0 · August 28, 2026

Added

NoteSurge is now automatable from Zapier: five webhook triggers (note scheduled / published / failed / library added / feed updated) and two API actions, all HMAC-signed and managed alongside API keys in Settings. A brand-new workspace content feed (per-workspace RSS 2.0 URL, bearer-token protected) gives Zapier/n8n/Make a single poll-any-publishing contract.

Large media uploads no longer fail with 413 — they stream straight to Blob

v1.57.0 · August 28, 2026

Fixed

Uploading a video or large file to the Library used to die at the serverless function body cap (~4.5MB) with a bare 413 Request Failed. Files over 4MB now stream directly from the browser to Vercel Blob via a presigned PUT URL, completely bypassing our function body limit. The upload-url route was also routed through the media-storage seam instead of importing the Blob SDK directly, closing a structural violation of the one-seam rule. Smaller uploads keep taking the cheap multipart path.

Notey can call external MCP servers — list their tools, invoke one

v1.56.0 · August 27, 2026

Added

NoteSurge could already expose an MCP server for agents like Claude Desktop to consume. Now the flip side: Notey itself can connect to any external MCP server, discover what tools it offers, and call one. The stateless client handles Streamable-HTTP JSON-RPC 2.0 (bare JSON or SSE framing), validates URLs before any network hit, and surfaces server-side tool failures honestly — never collapsing errors into fake success. Both capabilities are registry-tied: mcp.tools is a read-tier discovery, mcp.call is a write-class draft gated on canWrite.

/capabilities and /llms.txt are public again

v1.55.0 · August 26, 2026

Fixed

A routing regression sent signed-out visitors to login when reading the capability pages; both paths are properly public again.

Agents and MCP clients gain three real capabilities: repurpose suggestions, measured note stats, and piece fan-out

v1.53.0 · August 25, 2026

Added

Three engines that already power the app were invisible to outside callers. They’re now registered capabilities with stable names: get_repurpose_suggestions returns the one ranked “what should I repurpose” answer; get_note_stats pulls back measured engagement per note — Substack restacks and reactions, Bluesky likes and reposts, X likes, reposts and impressions — and says “nothing measured yet” instead of faking zeros; fan_out_piece turns one strong piece into platform-native draft variants that wait for per-child human approval. Everything passes the same token scopes and live role checks as the rest, and the AI tab’s tool list now renders straight from the server so it can’t silently drift out of date again.

MCP tokens get scopes — say exactly what an agent may do, and see what it did

v1.41.0 · August 24, 2026

Added

An MCP token used to be all-or-nothing: connect Claude Desktop or any other agent and it could do everything your connection allows, with no way to hand one client read-only access. Every token now carries tier checkboxes — Read (list notes, account status, best times), Draft (save drafts, library writes, repurpose), Publish (schedule real publishing) — and every call is checked against those tiers at a single gate before anything runs. A token without Publish checked can never schedule real publishing, no matter how it's prompted.

Ask once: what can my agent actually do?

v1.22.0 · August 23, 2026

Added

Connecting a tool or an AI agent used to mean reading code or guessing tool names. Now there's one machine-readable answer: open /api/capabilities in a browser, or ask the new discover_capabilities tool over MCP. Every capability lists what it does, what permission tier it needs, and exactly how to reach it — endpoint, method, or tool name.

Nothing to configure: existing API keys and MCP tokens work unchanged, and the same list powers both surfaces, so what the catalog says is what the tools actually accept.

See what a connected agent can actually do

v1.19.0 · August 23, 2026

Added

The MCP & API section now lists every tool an agent gets once you connect one -- what each one does, and whether scheduling is locked until you turn on "Allow agents to schedule/publish."

A new get_account_status tool also lets an agent check what's actually connected before trying to draft or schedule anything, instead of finding out by trial and error.

Added

You can issue a draft-only API key now instead of a full-access one. It can create and list content, but any call that tries to actually schedule something gets rejected outright.

Handy for a client’s Zapier account, or a teammate’s own script, where you want them building things without being able to accidentally publish.

Added

Register a URL and NoteSurge will hit it with a POST the moment a note is scheduled, published, or fails. It’s the same primitive Zapier, n8n, and Make automations run on.

Added

You can create, list, and delete notes and library pieces from outside NoteSurge now, using an API key you generate from Settings.

Full curl examples live at /docs/api, and that page doesn’t require a login to read.

Added

Any MCP-compatible AI agent, Claude included, can talk to NoteSurge directly now. Three tools: list your notes, draft one (always safe, it never auto-publishes), or schedule one, but only if you’ve turned on publish access for that specific token.

← All versions