From cb8d1e4fccc34b59cb6173bc071654596e8b5b5e Mon Sep 17 00:00:00 2001 From: boojack Date: Tue, 14 Jul 2026 21:59:31 +0800 Subject: [PATCH 1/2] chore(main): release 0.30.0-rc.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 65 +++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 712789e13230f..7fc2c1af733a1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.29.1" + ".": "0.30.0-rc.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 8832d6eafe4d4..615b4bdc30f5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,70 @@ # Changelog +## [0.30.0-rc.1](https://github.com/usememos/memos/compare/v0.29.1...v0.30.0-rc.1) (2026-07-14) + + +### ⚠ BREAKING CHANGES + +* **filter:** now() is removed (use the `now` variable) and time fields are timestamps, so bare-epoch comparisons need timestamp(). Existing saved shortcuts using the old syntax must be updated. + +### Features + +* add OpenAPI-driven MCP support ([#6026](https://github.com/usememos/memos/issues/6026)) ([777d227](https://github.com/usememos/memos/commit/777d227eb992c4feccd5d78c781cf8e9094e38de)) +* add optional webhook signing secret (Standard Webhooks HMAC-SHA256) ([#6013](https://github.com/usememos/memos/issues/6013)) ([063a444](https://github.com/usememos/memos/commit/063a44498d49ac44c439ad6b8f7f617485fe6f5d)) +* add webhook edit UI and signing secret status indicator ([#6027](https://github.com/usememos/memos/issues/6027)) ([c703b05](https://github.com/usememos/memos/commit/c703b05dabb1ef4571c91611937ccb08381af6af)) +* **auth:** add private instance mode derived from instance_url ([d1cef7a](https://github.com/usememos/memos/commit/d1cef7a9ab23e8c93f76b2f32661c720c733536d)) +* **auth:** bootstrap identity providers from secret files ([ad6d009](https://github.com/usememos/memos/commit/ad6d0097678f941047e046d5093e23faa9c5f5a9)) +* **config:** provision settings from secret files ([0038295](https://github.com/usememos/memos/commit/0038295bbc772b38425b6c7f9ca814e4d1e44260)) +* **editor:** add focus-mode formatting toolbar ([deddf71](https://github.com/usememos/memos/commit/deddf71d7b4bd4d7b70a8112a753a39c1aa7d3cb)) +* **editor:** recognize and style [@mentions](https://github.com/mentions) in the rich editor ([daa71d0](https://github.com/usememos/memos/commit/daa71d0456d07a25ff5ea435e46577d31d030728)) +* **filter:** expand CEL filter surface with startsWith/endsWith, matches(), and all() ([f0e4a56](https://github.com/usememos/memos/commit/f0e4a5624f4371e08fb0c41510891c9f8cce6ba0)) +* **filter:** fold now.getXxx() accessors for dynamic date-part filters ([41ff22b](https://github.com/usememos/memos/commit/41ff22b0cc432543594992fc3ee390179e2b47b0)) +* **filter:** standard CEL now variable, time accessors, set ops ([26f4b73](https://github.com/usememos/memos/commit/26f4b73cb9a996f9232daad2b5daa34360742697)) +* **i18n:** add searchable locale picker ([4183985](https://github.com/usememos/memos/commit/418398587cef90151745ba0dbc51cef4762045ca)) +* **i18n:** expand European locale coverage ([a47d049](https://github.com/usememos/memos/commit/a47d04954e75c54491138601c72f1c0cbe140f3c)) +* **markdown:** render and navigate GFM footnotes ([1020060](https://github.com/usememos/memos/commit/10200606db24e3d70fb8efefee99c7b0a369ddea)) +* **mcp:** expose create_attachment tool ([0e1d821](https://github.com/usememos/memos/commit/0e1d821fb84310feff40b90d899403d45bced596)), closes [#6057](https://github.com/usememos/memos/issues/6057) +* **settings:** move tag metadata to user settings ([#6017](https://github.com/usememos/memos/issues/6017)) ([9eabb55](https://github.com/usememos/memos/commit/9eabb554d5631ef3af9455cda654fefa1317dfac)) +* **storage:** add insecure_skip_tls_verify option for S3 ([20c19ef](https://github.com/usememos/memos/commit/20c19ef82dcaa4cb133ac5c520390ffccdc3cdfd)), closes [#6039](https://github.com/usememos/memos/issues/6039) +* surface newly created memo above pinned list ([6eb1786](https://github.com/usememos/memos/commit/6eb17864df21f43de978b69d3deb45df7264780e)) +* **web:** add code block and strikethrough to formatting toolbar ([e3c231f](https://github.com/usememos/memos/commit/e3c231fcac5691f9590a5d685bdebec23b73be35)) +* **web:** add link preview view setting ([e3e4ae1](https://github.com/usememos/memos/commit/e3e4ae10512f514f71729779b5096d0d591c8cf4)) +* **web:** add max-columns memo feed layout ([177d65a](https://github.com/usememos/memos/commit/177d65a90e321fa975a7cf19bd3c075143af5c10)) +* **web:** add untagged shortcut filter example ([#6065](https://github.com/usememos/memos/issues/6065)) ([b787bfa](https://github.com/usememos/memos/commit/b787bfa75f74d8ee5ec271bd308c2e5a0389ed35)) +* **web:** markdown WYSIWYG editor with raw-mode toggle ([#6030](https://github.com/usememos/memos/issues/6030)) ([797f1ff](https://github.com/usememos/memos/commit/797f1ff15dcb94543ce15462f7cfc8d292f2ffa7)) + + +### Bug Fixes + +* **auth:** stabilize SSO option loading ([1e91cfb](https://github.com/usememos/memos/commit/1e91cfba9d47e2135915966c306f01a339634a67)) +* **auth:** support OAuth client auth auto-detection ([6c17e87](https://github.com/usememos/memos/commit/6c17e87cf61cd9c62ea4ef4e25d4adb5603ffc88)) +* **ci:** stamp canary image with semantic version ([83552c3](https://github.com/usememos/memos/commit/83552c35be1d296e7a0c30a9d4a47762a9d98c3c)) +* **comments:** list all memo comments via pagination ([f727ad2](https://github.com/usememos/memos/commit/f727ad217c7ba29e8314a68bc0a54dc97f937602)) +* **cors:** open API to any origin for token auth, keep cookies same-origin ([385fa22](https://github.com/usememos/memos/commit/385fa22056c51a42a0eb99fd08a8876009c2c52d)) +* **editor:** align CodeMirror markdown event handling ([42ad410](https://github.com/usememos/memos/commit/42ad4105c134d255da8359f4019c86bd84368553)) +* **editor:** collapse lingering select-all selection after delete ([817561d](https://github.com/usememos/memos/commit/817561df8f52c204df2393a8f6cbeb152383f37f)) +* **editor:** let CodeMirror own caret layout ([a9ac008](https://github.com/usememos/memos/commit/a9ac008a689cf45b977ae47d904ac5392f055851)) +* **editor:** make formatting commands toggle and convert correctly ([c349c15](https://github.com/usememos/memos/commit/c349c1549e49950e3171b7de28faba5d89249cfa)) +* **editor:** restore CodeMirror default spacing ([df1967d](https://github.com/usememos/memos/commit/df1967df91a95dd7a0339c4ed38a09f69099b8c4)), closes [#6093](https://github.com/usememos/memos/issues/6093) +* **editor:** support backslash-escaping literal #tags ([5f7e038](https://github.com/usememos/memos/commit/5f7e038aa76a604e63122eca23684b3b68342841)) +* **editor:** wire Ctrl+B and Ctrl+I markdown shortcuts to textarea ([#6016](https://github.com/usememos/memos/issues/6016)) ([8f13773](https://github.com/usememos/memos/commit/8f1377324f9c59505a39d395c09ff7536459911a)) +* **i18n:** complete missing Simplified Chinese translations ([#6084](https://github.com/usememos/memos/issues/6084)) ([375e2bc](https://github.com/usememos/memos/commit/375e2bc60ebdda6b625222836591a0b7c20d061e)) +* **instance:** add needs_setup so admin-less instances aren't treated as fresh ([96cb653](https://github.com/usememos/memos/commit/96cb65320b714ef8d7993ddb7c9182350ee9da4c)) +* **location:** truncate long address in memo location chip ([3b601b8](https://github.com/usememos/memos/commit/3b601b841670ece4a2832341a99ccc74124a745e)) +* **markdown:** ignore tags inside links ([a50ce09](https://github.com/usememos/memos/commit/a50ce09e8159836aed1a97fa717488283378200f)) +* **mcp:** allow reverse-proxied instances to serve /mcp ([8fa2ff4](https://github.com/usememos/memos/commit/8fa2ff442355787fd565cf8ba8eb892a99a90e31)) +* **memo:** populate parent relation in comment webhook payload ([#6083](https://github.com/usememos/memos/issues/6083)) ([c9b356b](https://github.com/usememos/memos/commit/c9b356b46a44ad80209c707549294f76ef916c8f)) +* **memo:** preserve expanded todo list state ([ecbe2ab](https://github.com/usememos/memos/commit/ecbe2ab7977fcd3521aeae1226e816a9dc2a6a40)) +* **scripts:** prevent entrypoint restart loop when MEMOS_UID=0 ([3a55edd](https://github.com/usememos/memos/commit/3a55edd9176da12da6beb43f50efcaedff42beba)), closes [#6061](https://github.com/usememos/memos/issues/6061) +* **tags:** include combining marks in tag character class ([#6051](https://github.com/usememos/memos/issues/6051)) ([281e0dc](https://github.com/usememos/memos/commit/281e0dc17c1c7052609fbce0c86a90c9320136b2)) +* **user:** implement ListUsers pagination ([4bc3928](https://github.com/usememos/memos/commit/4bc39280290b0f2612ff52285689854b6cf1344b)) +* **web:** delay loading skeleton to avoid flash on fast loads ([9e84f61](https://github.com/usememos/memos/commit/9e84f6102926fe4a9c6364b92d8c738b0b347cde)), closes [#6047](https://github.com/usememos/memos/issues/6047) +* **web:** fill the editor host so the caret shows in empty space ([5329e60](https://github.com/usememos/memos/commit/5329e6040787902cbf67bfc4a1616347565f9074)), closes [#6076](https://github.com/usememos/memos/issues/6076) +* **webhook:** fail loud on malformed signing secret and add tests ([f497f00](https://github.com/usememos/memos/commit/f497f009ceb6e2c51b8805dabedb0494a0d65e5b)) +* **web:** improve mobile control spacing ([1052c04](https://github.com/usememos/memos/commit/1052c04d33034b229615a257436d4dc242cf72b2)) +* **web:** keep the multi-column feed balanced ([a72ae80](https://github.com/usememos/memos/commit/a72ae804c0d3f96d680780345cd5229bdc064d68)) +* **web:** stabilize multi-column memo layout ([730c245](https://github.com/usememos/memos/commit/730c24592f25926463def603cba720f4953627db)) + ## [0.29.1](https://github.com/usememos/memos/compare/v0.29.0...v0.29.1) (2026-06-04) From 892c119e977b0151b4685a43af7b3e30bbf2f872 Mon Sep 17 00:00:00 2001 From: boojack Date: Tue, 14 Jul 2026 22:20:36 +0800 Subject: [PATCH 2/2] docs(changelog): curate 0.30.0-rc.1 release notes --- CHANGELOG.md | 85 ++++++++++++++++------------------------------------ 1 file changed, 26 insertions(+), 59 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 615b4bdc30f5e..10323c5135f21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,65 +5,32 @@ ### ⚠ BREAKING CHANGES -* **filter:** now() is removed (use the `now` variable) and time fields are timestamps, so bare-epoch comparisons need timestamp(). Existing saved shortcuts using the old syntax must be updated. - -### Features - -* add OpenAPI-driven MCP support ([#6026](https://github.com/usememos/memos/issues/6026)) ([777d227](https://github.com/usememos/memos/commit/777d227eb992c4feccd5d78c781cf8e9094e38de)) -* add optional webhook signing secret (Standard Webhooks HMAC-SHA256) ([#6013](https://github.com/usememos/memos/issues/6013)) ([063a444](https://github.com/usememos/memos/commit/063a44498d49ac44c439ad6b8f7f617485fe6f5d)) -* add webhook edit UI and signing secret status indicator ([#6027](https://github.com/usememos/memos/issues/6027)) ([c703b05](https://github.com/usememos/memos/commit/c703b05dabb1ef4571c91611937ccb08381af6af)) -* **auth:** add private instance mode derived from instance_url ([d1cef7a](https://github.com/usememos/memos/commit/d1cef7a9ab23e8c93f76b2f32661c720c733536d)) -* **auth:** bootstrap identity providers from secret files ([ad6d009](https://github.com/usememos/memos/commit/ad6d0097678f941047e046d5093e23faa9c5f5a9)) -* **config:** provision settings from secret files ([0038295](https://github.com/usememos/memos/commit/0038295bbc772b38425b6c7f9ca814e4d1e44260)) -* **editor:** add focus-mode formatting toolbar ([deddf71](https://github.com/usememos/memos/commit/deddf71d7b4bd4d7b70a8112a753a39c1aa7d3cb)) -* **editor:** recognize and style [@mentions](https://github.com/mentions) in the rich editor ([daa71d0](https://github.com/usememos/memos/commit/daa71d0456d07a25ff5ea435e46577d31d030728)) -* **filter:** expand CEL filter surface with startsWith/endsWith, matches(), and all() ([f0e4a56](https://github.com/usememos/memos/commit/f0e4a5624f4371e08fb0c41510891c9f8cce6ba0)) -* **filter:** fold now.getXxx() accessors for dynamic date-part filters ([41ff22b](https://github.com/usememos/memos/commit/41ff22b0cc432543594992fc3ee390179e2b47b0)) -* **filter:** standard CEL now variable, time accessors, set ops ([26f4b73](https://github.com/usememos/memos/commit/26f4b73cb9a996f9232daad2b5daa34360742697)) -* **i18n:** add searchable locale picker ([4183985](https://github.com/usememos/memos/commit/418398587cef90151745ba0dbc51cef4762045ca)) -* **i18n:** expand European locale coverage ([a47d049](https://github.com/usememos/memos/commit/a47d04954e75c54491138601c72f1c0cbe140f3c)) -* **markdown:** render and navigate GFM footnotes ([1020060](https://github.com/usememos/memos/commit/10200606db24e3d70fb8efefee99c7b0a369ddea)) -* **mcp:** expose create_attachment tool ([0e1d821](https://github.com/usememos/memos/commit/0e1d821fb84310feff40b90d899403d45bced596)), closes [#6057](https://github.com/usememos/memos/issues/6057) -* **settings:** move tag metadata to user settings ([#6017](https://github.com/usememos/memos/issues/6017)) ([9eabb55](https://github.com/usememos/memos/commit/9eabb554d5631ef3af9455cda654fefa1317dfac)) -* **storage:** add insecure_skip_tls_verify option for S3 ([20c19ef](https://github.com/usememos/memos/commit/20c19ef82dcaa4cb133ac5c520390ffccdc3cdfd)), closes [#6039](https://github.com/usememos/memos/issues/6039) -* surface newly created memo above pinned list ([6eb1786](https://github.com/usememos/memos/commit/6eb17864df21f43de978b69d3deb45df7264780e)) -* **web:** add code block and strikethrough to formatting toolbar ([e3c231f](https://github.com/usememos/memos/commit/e3c231fcac5691f9590a5d685bdebec23b73be35)) -* **web:** add link preview view setting ([e3e4ae1](https://github.com/usememos/memos/commit/e3e4ae10512f514f71729779b5096d0d591c8cf4)) -* **web:** add max-columns memo feed layout ([177d65a](https://github.com/usememos/memos/commit/177d65a90e321fa975a7cf19bd3c075143af5c10)) -* **web:** add untagged shortcut filter example ([#6065](https://github.com/usememos/memos/issues/6065)) ([b787bfa](https://github.com/usememos/memos/commit/b787bfa75f74d8ee5ec271bd308c2e5a0389ed35)) -* **web:** markdown WYSIWYG editor with raw-mode toggle ([#6030](https://github.com/usememos/memos/issues/6030)) ([797f1ff](https://github.com/usememos/memos/commit/797f1ff15dcb94543ce15462f7cfc8d292f2ffa7)) - - -### Bug Fixes - -* **auth:** stabilize SSO option loading ([1e91cfb](https://github.com/usememos/memos/commit/1e91cfba9d47e2135915966c306f01a339634a67)) -* **auth:** support OAuth client auth auto-detection ([6c17e87](https://github.com/usememos/memos/commit/6c17e87cf61cd9c62ea4ef4e25d4adb5603ffc88)) -* **ci:** stamp canary image with semantic version ([83552c3](https://github.com/usememos/memos/commit/83552c35be1d296e7a0c30a9d4a47762a9d98c3c)) -* **comments:** list all memo comments via pagination ([f727ad2](https://github.com/usememos/memos/commit/f727ad217c7ba29e8314a68bc0a54dc97f937602)) -* **cors:** open API to any origin for token auth, keep cookies same-origin ([385fa22](https://github.com/usememos/memos/commit/385fa22056c51a42a0eb99fd08a8876009c2c52d)) -* **editor:** align CodeMirror markdown event handling ([42ad410](https://github.com/usememos/memos/commit/42ad4105c134d255da8359f4019c86bd84368553)) -* **editor:** collapse lingering select-all selection after delete ([817561d](https://github.com/usememos/memos/commit/817561df8f52c204df2393a8f6cbeb152383f37f)) -* **editor:** let CodeMirror own caret layout ([a9ac008](https://github.com/usememos/memos/commit/a9ac008a689cf45b977ae47d904ac5392f055851)) -* **editor:** make formatting commands toggle and convert correctly ([c349c15](https://github.com/usememos/memos/commit/c349c1549e49950e3171b7de28faba5d89249cfa)) -* **editor:** restore CodeMirror default spacing ([df1967d](https://github.com/usememos/memos/commit/df1967df91a95dd7a0339c4ed38a09f69099b8c4)), closes [#6093](https://github.com/usememos/memos/issues/6093) -* **editor:** support backslash-escaping literal #tags ([5f7e038](https://github.com/usememos/memos/commit/5f7e038aa76a604e63122eca23684b3b68342841)) -* **editor:** wire Ctrl+B and Ctrl+I markdown shortcuts to textarea ([#6016](https://github.com/usememos/memos/issues/6016)) ([8f13773](https://github.com/usememos/memos/commit/8f1377324f9c59505a39d395c09ff7536459911a)) -* **i18n:** complete missing Simplified Chinese translations ([#6084](https://github.com/usememos/memos/issues/6084)) ([375e2bc](https://github.com/usememos/memos/commit/375e2bc60ebdda6b625222836591a0b7c20d061e)) -* **instance:** add needs_setup so admin-less instances aren't treated as fresh ([96cb653](https://github.com/usememos/memos/commit/96cb65320b714ef8d7993ddb7c9182350ee9da4c)) -* **location:** truncate long address in memo location chip ([3b601b8](https://github.com/usememos/memos/commit/3b601b841670ece4a2832341a99ccc74124a745e)) -* **markdown:** ignore tags inside links ([a50ce09](https://github.com/usememos/memos/commit/a50ce09e8159836aed1a97fa717488283378200f)) -* **mcp:** allow reverse-proxied instances to serve /mcp ([8fa2ff4](https://github.com/usememos/memos/commit/8fa2ff442355787fd565cf8ba8eb892a99a90e31)) -* **memo:** populate parent relation in comment webhook payload ([#6083](https://github.com/usememos/memos/issues/6083)) ([c9b356b](https://github.com/usememos/memos/commit/c9b356b46a44ad80209c707549294f76ef916c8f)) -* **memo:** preserve expanded todo list state ([ecbe2ab](https://github.com/usememos/memos/commit/ecbe2ab7977fcd3521aeae1226e816a9dc2a6a40)) -* **scripts:** prevent entrypoint restart loop when MEMOS_UID=0 ([3a55edd](https://github.com/usememos/memos/commit/3a55edd9176da12da6beb43f50efcaedff42beba)), closes [#6061](https://github.com/usememos/memos/issues/6061) -* **tags:** include combining marks in tag character class ([#6051](https://github.com/usememos/memos/issues/6051)) ([281e0dc](https://github.com/usememos/memos/commit/281e0dc17c1c7052609fbce0c86a90c9320136b2)) -* **user:** implement ListUsers pagination ([4bc3928](https://github.com/usememos/memos/commit/4bc39280290b0f2612ff52285689854b6cf1344b)) -* **web:** delay loading skeleton to avoid flash on fast loads ([9e84f61](https://github.com/usememos/memos/commit/9e84f6102926fe4a9c6364b92d8c738b0b347cde)), closes [#6047](https://github.com/usememos/memos/issues/6047) -* **web:** fill the editor host so the caret shows in empty space ([5329e60](https://github.com/usememos/memos/commit/5329e6040787902cbf67bfc4a1616347565f9074)), closes [#6076](https://github.com/usememos/memos/issues/6076) -* **webhook:** fail loud on malformed signing secret and add tests ([f497f00](https://github.com/usememos/memos/commit/f497f009ceb6e2c51b8805dabedb0494a0d65e5b)) -* **web:** improve mobile control spacing ([1052c04](https://github.com/usememos/memos/commit/1052c04d33034b229615a257436d4dc242cf72b2)) -* **web:** keep the multi-column feed balanced ([a72ae80](https://github.com/usememos/memos/commit/a72ae804c0d3f96d680780345cd5229bdc064d68)) -* **web:** stabilize multi-column memo layout ([730c245](https://github.com/usememos/memos/commit/730c24592f25926463def603cba720f4953627db)) +* **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](https://github.com/usememos/memos/commit/d1cef7a9ab23e8c93f76b2f32661c720c733536d)) +* **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()` instead of comparing time fields with bare epoch values. ([26f4b73](https://github.com/usememos/memos/commit/26f4b73cb9a996f9232daad2b5daa34360742697)) +* **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](https://github.com/usememos/memos/issues/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](https://github.com/usememos/memos/commit/5a73d7d3e56f853a965207ac709e8f5e84918959)) ([e3c231f](https://github.com/usememos/memos/commit/e3c231fcac5691f9590a5d685bdebec23b73be35)) +* **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](https://github.com/usememos/memos/commit/777d227eb992c4feccd5d78c781cf8e9094e38de)) ([0e1d821](https://github.com/usememos/memos/commit/0e1d821fb84310feff40b90d899403d45bced596)) +* **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](https://github.com/usememos/memos/commit/0038295bbc772b38425b6c7f9ca814e4d1e44260)) +* **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](https://github.com/usememos/memos/commit/177d65a90e321fa975a7cf19bd3c075143af5c10)) ([e3e4ae1](https://github.com/usememos/memos/commit/e3e4ae10512f514f71729779b5096d0d591c8cf4)) +* **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](https://github.com/usememos/memos/issues/6013)) ([#6027](https://github.com/usememos/memos/issues/6027)) +* **Filters:** Expanded CEL shortcuts with string matching, regular expressions, collection predicates, timestamp accessors, set operations, and an untagged-memos example. ([f0e4a56](https://github.com/usememos/memos/commit/f0e4a5624f4371e08fb0c41510891c9f8cce6ba0)) ([b787bfa](https://github.com/usememos/memos/commit/b787bfa75f74d8ee5ec271bd308c2e5a0389ed35)) +* **Tag settings:** Tag colors and content-blur rules are now per-user. Existing instance tag settings are copied to current users during migration. ([#6017](https://github.com/usememos/memos/issues/6017)) +* **Internationalization:** Added a searchable locale picker, expanded European locale coverage, and completed missing Japanese and Simplified Chinese translations. ([4183985](https://github.com/usememos/memos/commit/418398587cef90151745ba0dbc51cef4762045ca)) ([a47d049](https://github.com/usememos/memos/commit/a47d04954e75c54491138601c72f1c0cbe140f3c)) +* **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](https://github.com/usememos/memos/commit/564da949cb87491ca8e493d2f7aedcd2ef9545a1)) ([cafa56f](https://github.com/usememos/memos/commit/cafa56f1a8c9091062a4b220284e8ca697b050e8)) +* **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](https://github.com/usememos/memos/commit/10200606db24e3d70fb8efefee99c7b0a369ddea)) ([#6039](https://github.com/usememos/memos/issues/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](https://github.com/usememos/memos/commit/6c17e87cf61cd9c62ea4ef4e25d4adb5603ffc88)) ([96cb653](https://github.com/usememos/memos/commit/96cb65320b714ef8d7993ddb7c9182350ee9da4c)) +* **Editor:** Improved formatting toggles and keyboard shortcuts, file paste and drop handling, focus-mode layout, caret behavior in empty space, and CodeMirror spacing. ([c349c15](https://github.com/usememos/memos/commit/c349c1549e49950e3171b7de28faba5d89249cfa)) ([#6076](https://github.com/usememos/memos/issues/6076)) ([#6093](https://github.com/usememos/memos/issues/6093)) +* **Memos and comments:** Preserved expanded task-list state, loaded every comment page, and included the parent memo relation in comment webhook payloads. ([ecbe2ab](https://github.com/usememos/memos/commit/ecbe2ab7977fcd3521aeae1226e816a9dc2a6a40)) ([#6083](https://github.com/usememos/memos/issues/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](https://github.com/usememos/memos/commit/a50ce09e8159836aed1a97fa717488283378200f)) ([#6051](https://github.com/usememos/memos/issues/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](https://github.com/usememos/memos/commit/385fa22056c51a42a0eb99fd08a8876009c2c52d)) ([4bc3928](https://github.com/usememos/memos/commit/4bc39280290b0f2612ff52285689854b6cf1344b)) +* **Interface:** Replaced mismatched memo skeletons with a delayed spinner, improved mobile control spacing, and truncated long location labels without hiding the full address. ([#6047](https://github.com/usememos/memos/issues/6047)) ([3b601b8](https://github.com/usememos/memos/commit/3b601b841670ece4a2832341a99ccc74124a745e)) +* **Container:** Prevented the entrypoint from restarting indefinitely when `MEMOS_UID=0`. ([#6061](https://github.com/usememos/memos/issues/6061)) ## [0.29.1](https://github.com/usememos/memos/compare/v0.29.0...v0.29.1) (2026-06-04)