github usememos/memos v0.30.0-rc.1

pre-release7 hours ago

Changelog

0.30.0-rc.1 (2026-07-14)

⚠ BREAKING CHANGES

  • Access control: Instances without --instance-url (or MEMOS_INSTANCE_URL) now run in private mode. Anonymous visitors are sent to sign-in and anonymous API access is limited to setup, authentication, and shared-memo routes. Set the instance URL to retain the previous public behavior. (d1cef7a)
  • Filters: now() has been replaced by the now timestamp variable, and time fields now use CEL timestamps. Update saved shortcuts to use expressions such as created_ts >= now - duration("24h") or timestamp(<epoch>) instead of comparing time fields with bare epoch values. (26f4b73)
  • MCP: The MCP server is now a stateless, tools-only endpoint generated from the OpenAPI schema. The previous prompts, resources, tool-filtering headers and route aliases, and unprefixed tool names have been removed. Clients that used them must switch to /mcp and the new service-prefixed tool names. (#6026)

Highlights

  • Markdown editor: Rebuilt the editor as a single CodeMirror 6 decorated-source editor. Markdown is preserved verbatim while headings, formatting, tags, and mentions are styled in place. The editor also adds tag completion, list indentation, and a toggleable formatting toolbar with headings, lists, task lists, code blocks, bold, italic, strikethrough, and inline code. (5a73d7d) (e3c231f)
  • MCP: Replaced the hand-written MCP implementation with a curated OpenAPI-driven tool surface that reuses the public API's authentication and authorization. The final toolset includes memo, comment, relation, reaction, shortcut, identity, and attachment operations, including attachment uploads. (777d227) (0e1d821)
  • Deployment configuration: Identity providers and supported instance settings can be supplied as validated JSON files under /etc/secrets. File-backed settings act as runtime overrides and cannot be changed through the UI or API until the files are removed. (0038295)
  • Memo feeds: Added persisted controls for one, two, three, or automatically fitted columns; compact mode; and link previews. Multi-column feeds stay balanced as cards resize, while newly created memos remain easy to find above pinned content. (177d65a) (e3e4ae1)
  • Webhooks: Added Standard Webhooks HMAC-SHA256 signing secrets, webhook editing, and a signing-status indicator. Secrets are generated server-side, shown after creation, and can be revealed later from the edit dialog; malformed secrets now fail validation. (#6013) (#6027)
  • Filters: Expanded CEL shortcuts with string matching, regular expressions, collection predicates, timestamp accessors, set operations, and an untagged-memos example. (f0e4a56) (b787bfa)
  • Tag settings: Tag colors and content-blur rules are now per-user. Existing instance tag settings are copied to current users during migration. (#6017)
  • Internationalization: Added a searchable locale picker, expanded European locale coverage, and completed missing Japanese and Simplified Chinese translations. (4183985) (a47d049)
  • Interface: Refreshed the sign-in, sign-up, and About pages and aligned common controls across the app. Compact rendering is now opt-in in single-column feeds, so full memo content is shown by default. (564da94) (cafa56f)
  • Markdown and storage: Added GFM footnote rendering and navigation, plus an insecure_skip_tls_verify option for S3-compatible storage with self-signed certificates. (1020060) (#6039)

Fixes and polish

  • Authentication and setup: Stabilized SSO option loading, added OAuth client-auth auto-detection, and distinguished fresh instances from populated instances that no longer have an admin. (6c17e87) (96cb653)
  • Editor: Improved formatting toggles and keyboard shortcuts, file paste and drop handling, focus-mode layout, caret behavior in empty space, and CodeMirror spacing. (c349c15) (#6076) (#6093)
  • Memos and comments: Preserved expanded task-list state, loaded every comment page, and included the parent memo relation in comment webhook payloads. (ecbe2ab) (#6083)
  • Tags: Tags inside links are no longer parsed as memo tags, literal tags can be escaped with a backslash, and tag names support Unicode combining marks. (a50ce09) (#6051)
  • API and security: Cross-origin API requests now work with bearer tokens while cookie authentication remains same-origin, and ListUsers now returns consistent paginated results. (385fa22) (4bc3928)
  • Interface: Replaced mismatched memo skeletons with a delayed spinner, improved mobile control spacing, and truncated long location labels without hiding the full address. (#6047) (3b601b8)
  • Container: Prevented the entrypoint from restarting indefinitely when MEMOS_UID=0. (#6061)

Don't miss a new memos release

NewReleases is sending notifications on new releases.