diff --git a/docs/playbook.md b/docs/playbook.md index 2a4bcb1..efa1544 100644 --- a/docs/playbook.md +++ b/docs/playbook.md @@ -348,6 +348,17 @@ pi install git:git.enne2.net/enne2/ - Tool estensione: `qmem_meta` (nessun parametro) → guida la ricerca settorializzata (`scope`/`kind`/`project_id`) - Note: scope/kind sono enum chiusi (la discovery serve per conteggi e set aperti project_id/agent_id); espone i nomi reali di progetti/agenti (accesso condiviso già scelto) +### 11.6 Idempotency (dal gateway v2.5.0 / estensione v1.6.0) + +- `POST /v1/memories` accetta header `Idempotency-Key`: replay della stessa + richiesta (stessa key + stesso payload) → stessa risposta, nessun duplicato +- Stessa key con payload diverso → **409**; key diverse → record distinti +- Tabella in-memory con TTL 24h, scoped per API key; hash canonico del payload +- L'estensione genera `crypto.randomUUID()` per operazione (store e correct), + riusata su eventuali retry +- Verificato sul server (2026-08-16): istanza di test su 8083, collection + `memories_test`, produzione intatta (328 punti) + ### 11.5 project_id obbligatorio - Dal gateway v2.4.0 / estensione v1.4.0: `project_id` è **obbligatorio** in `POST /v1/memories` (Pydantic `min_length=1`) e nello schema del tool `qmem_store` (Type.String, non più Optional)