set_project_metadata
Writes a CUSTOM project metadata entry, under a key of your choice — meant for agent CHECKPOINTS ("where I left off") and any working information you want to find again later. The value is free-form JSON and REPLACES the key's previous value entirely (no merge); the write is ATOMIC, so two agents cannot create two concurrent entries under the same key. These values live OUTSIDE the schema: they are not in the version snapshots (restore_version does NOT restore them), nor in the attestation of a signed version, nor in the public/anonymous links. ⚠️ NOT TO BE CONFUSED with update_meta (title/subtitle/currency of the schema, VISIBLE on the canvas) nor with update_kind_metadata (the attributes of ONE block). ⚠️ The key config is RESERVED: the project configuration is written from the site by a governing role, and not by a tool — the call is REFUSED whatever your role (the configuration is read with get_config).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Identifier of the entry, in lowercase: a-z, 0-9, then ".", "_", "-", ":" (64 characters max). E.g. "checkpoint", "run:2026-08-18", "notes.migration". | |
| value | Yes | The JSON value to write — object, array, string, number, boolean or null. REPLACES the previous value of this key entirely (no merge). 32 KiB of JSON at most: beyond that the call is REFUSED, naming the measured size, without truncation. | |
| expectedProjectId | No | UUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted. |