---
{
  "id": "platform.memo.pages-and-editing",
  "topic": "memo",
  "title": "Memo pages and safe editing",
  "locale": "en",
  "version": "2026-08-25",
  "summary": "Memo page creation and partial updates preserve omitted fields, reject explicit blank content, and support optional optimistic locking.",
  "content": "`create_page` creates a page in the specified conversation. Content is optional, so creating an empty page and filling it later is valid. `update_page` is a partial update: omitted fields keep their current values. A supplied `tags` array replaces the complete tag set; it is not appended.\n\nExplicit empty or whitespace-only content is rejected with error detail code `MEMO_CONTENT_EMPTY`; it never silently clears the page. If a user asks to clear content, clarify that intent before choosing a safe replacement. For concurrent editing, fetch the page and pass its version as optional `expectedVersion`. A mismatch returns `RESOURCE_CONFLICT` with expected and actual versions. Fetch the latest page, merge deliberately, and retry with the new version instead of blindly overwriting.\n\nEach successful update increments version by one and stores a full snapshot; use the version returned by the action for later work. `list_pages` search matches title and content, with pinned pages first. Mutation dry runs report `resolvedResources` and `wouldRequireConfirmation`. Content supplied to create or update is stored in action audit arguments only as a redacted length hint, while the live result is plaintext; never copy content into routing telemetry.\n",
  "aliases": [
    "create memo page",
    "edit shared page",
    "expectedVersion",
    "memo conflict",
    "blank memo content",
    "pinned page",
    "MEMO_CONTENT_EMPTY"
  ],
  "tags": [
    "memo",
    "page",
    "optimistic-locking"
  ],
  "relatedActions": [
    "arinova.memo.create_page",
    "arinova.memo.list_pages",
    "arinova.memo.get_page",
    "arinova.memo.update_page",
    "arinova.memo.delete_page"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/memo/pages-and-editing/"
}
---

`create_page` creates a page in the specified conversation. Content is optional, so creating an empty page and filling it later is valid. `update_page` is a partial update: omitted fields keep their current values. A supplied `tags` array replaces the complete tag set; it is not appended.

Explicit empty or whitespace-only content is rejected with error detail code `MEMO_CONTENT_EMPTY`; it never silently clears the page. If a user asks to clear content, clarify that intent before choosing a safe replacement. For concurrent editing, fetch the page and pass its version as optional `expectedVersion`. A mismatch returns `RESOURCE_CONFLICT` with expected and actual versions. Fetch the latest page, merge deliberately, and retry with the new version instead of blindly overwriting.

Each successful update increments version by one and stores a full snapshot; use the version returned by the action for later work. `list_pages` search matches title and content, with pinned pages first. Mutation dry runs report `resolvedResources` and `wouldRequireConfirmation`. Content supplied to create or update is stored in action audit arguments only as a redacted length hint, while the live result is plaintext; never copy content into routing telemetry.
