Changelog
0.30.0-rc.1 (2026-07-14)
⚠ BREAKING CHANGES
- Access control: Instances without
--instance-url(orMEMOS_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 thenowtimestamp variable, and time fields now use CEL timestamps. Update saved shortcuts to use expressions such ascreated_ts >= now - duration("24h")ortimestamp(<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
/mcpand 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_verifyoption 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
ListUsersnow 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)