{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/separate-user-visible-ui-state-from-model-visible-context",
  "id": "MHC-D-RESEARCH-1174",
  "version": "0.1.0",
  "title": "Separate user-visible UI state from model-visible context",
  "summary": "What the user can see and what the model must receive are different design decisions.",
  "kind": "principle",
  "body": "Define which UI changes must return to the model, which can stay local to the interactive component and which require explicit user action before sharing. This can reduce context noise and unnecessary exposure while keeping the interface useful.",
  "limits": [
    "Client implementations and protocol features differ. Verify the actual host's context-sharing behavior rather than assuming a privacy boundary exists."
  ],
  "topics": [
    "union-ai-runtime-verification-2026"
  ],
  "intents": [],
  "source_ids": [
    "RS-ECDEF17A94432233"
  ],
  "evidence": [
    {
      "claim": "Interactive agent applications can separate information displayed to the user from information sent back into the model context.",
      "source_id": "RS-ECDEF17A94432233",
      "role": "supports",
      "note": "Exact MCP App capabilities vary by client and protocol revision; privacy still depends on the host and tool implementation honoring the boundary.",
      "locator": "10:01-16:36, application messages, streamed inputs and separation of user-visible state from model-visible context"
    }
  ],
  "use_when": [
    "An interactive AI tool shows rich application state but the model does not need every displayed field to continue the task."
  ],
  "avoid_when": [
    "Client implementations and protocol features differ. Verify the actual host's context-sharing behavior rather than assuming a privacy boundary exists."
  ],
  "example": "A planning widget can display all editable form fields to the user while sending only the changed date and selected option back to the model.",
  "check": "Every model-visible UI update has a task reason; rich display state is not copied into context by default.",
  "sources": [
    {
      "id": "RS-ECDEF17A94432233",
      "title": "MCP Apps: Primitives, Discovery, and the Future of Software",
      "url": "https://ai.engineer/talks/sAOBXCDiDOs-mcp-apps-primitives-discovery-future-software"
    }
  ],
  "relations": [],
  "collections": [
    {
      "id": "RC-ACD6385FB70207D3",
      "title": "Operate AI agents as systems you can replay, verify and constrain",
      "url": "/collections/operate-ai-agents-as-systems-you-can-replay-verify-and-constrain"
    }
  ]
}
