{"version":"2.1.300","anchor":"new-internal-sdk-user-message-field-text-not-typed-not-ye","canonical_anchor":"new-internal-sdk-user-message-field-text-not-typed-not-ye","heading":"SDK messages can be marked as not typed by a person","tier":"internal","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300\/e\/new-internal-sdk-user-message-field-text-not-typed-not-ye","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.300","markdown":"### SDK messages can be marked as not typed by a person\n\nA new internal SDK message field, `text_not_typed`, marks text an app or server wrote, and still runs the turn-start attachment pass\n\n**What**\n\nThe SDK lets other programs send messages into Claude Code. Its user message format gains a field, `text_not_typed`, marked as internal. It says no person typed the message's text: a server or app composed it.\n\nSuch text is delivered as written:\n\n- no slash-command handling\n\n- no expansion of @ mentions beyond the message's own files\n\n- no reminders triggered by keywords\n\nUnlike `client_composed`, the pass that adds context at the start of a turn still runs. The field's own description says the checks of whether a message's words are the user's own do not read this mark yet.\n\n**Why**\n\nThis lays groundwork for treating app- or server-composed messages as untyped, and by its own description it is only partly wired up so far.\n\n- Area: SDK\n- Names: `text_not_typed`\n- Tier: Under the hood\n- Useful: 4\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}