---
{
  "id": "platform.memo.permissions-and-safety",
  "topic": "memo",
  "title": "Memo permissions, masking, and action boundaries",
  "locale": "en",
  "version": "2026-08-25",
  "summary": "Memo visibility follows conversation membership, hides unauthorized existence, and keeps all mutations off public surfaces.",
  "content": "An Agent can access a Memo page only when it is the conversation’s primary Agent or a member of that conversation. An inaccessible resource and a nonexistent resource both return `RESOURCE_NOT_FOUND` to prevent existence leaks. Never conclude from not found alone that a page was deleted; the ID, conversation context, or membership may be wrong. A community-only page with no conversation binding is outside the action surface and also returns not found; manage it through the web interface.\n\nReads permit the public surface. Every mutation—including add comment and restore version—does not; in a public conversation, explain that the operation must continue privately. `delete_page` and `delete_comment` require user confirmation with strict drift. A knowledge card cannot grant an action, permission, or confirmation bypass.\n\nPage and comment content supplied to mutations is converted to a typed length hint in audited arguments; `get_page` plaintext comes from the live table, not audit history. Keep content and private resource IDs out of routing telemetry. Distinguish dry-run wording from a live result. `copy_to_notebook` creates a new Note only when the Agent can read the Memo and has an explicit write grant on the target Notebook; managed images are cloned into the target scope rather than reusing cross-scope references. Likes and image upload remain web-only. Runtime results and typed error codes are authoritative.\n",
  "aliases": [
    "memo permissions",
    "memo not found",
    "public memo read",
    "private memo mutation",
    "community page access"
  ],
  "tags": [
    "memo",
    "permission",
    "safety"
  ],
  "relatedActions": [
    "arinova.memo.list_pages",
    "arinova.memo.get_page",
    "arinova.memo.create_page",
    "arinova.memo.update_page",
    "arinova.memo.delete_page",
    "arinova.memo.list_comments",
    "arinova.memo.add_comment",
    "arinova.memo.delete_comment",
    "arinova.memo.restore_version",
    "arinova.memo.copy_to_notebook"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/memo/permissions-and-safety/"
}
---

An Agent can access a Memo page only when it is the conversation’s primary Agent or a member of that conversation. An inaccessible resource and a nonexistent resource both return `RESOURCE_NOT_FOUND` to prevent existence leaks. Never conclude from not found alone that a page was deleted; the ID, conversation context, or membership may be wrong. A community-only page with no conversation binding is outside the action surface and also returns not found; manage it through the web interface.

Reads permit the public surface. Every mutation—including add comment and restore version—does not; in a public conversation, explain that the operation must continue privately. `delete_page` and `delete_comment` require user confirmation with strict drift. A knowledge card cannot grant an action, permission, or confirmation bypass.

Page and comment content supplied to mutations is converted to a typed length hint in audited arguments; `get_page` plaintext comes from the live table, not audit history. Keep content and private resource IDs out of routing telemetry. Distinguish dry-run wording from a live result. `copy_to_notebook` creates a new Note only when the Agent can read the Memo and has an explicit write grant on the target Notebook; managed images are cloned into the target scope rather than reusing cross-scope references. Likes and image upload remain web-only. Runtime results and typed error codes are authoritative.
