Revive Expired Items
Give every lapsed preference and fact in this memory a fresh deadline.
Retention is enforced on READ (see resolver — it filters on
expires_at), so a lapsed item is already invisible to the gateway while
its row survives until the sweeper hard-deletes it. This is how it comes
back, and it is memID-WIDE on purpose: a partial revival would leave someone
believing a rule or fact was restored when only some of them were.
now() + retention_days, NOT the created_at-based re-stamping
update_memory does. That difference is the entire point: re-dating a
41-day-old fact under a 30-day policy from its creation puts the new deadline
11 days in the PAST, so it would expire again the instant it was written and
the button would look broken while doing exactly what it said.
Retention itself is untouched — the revived items get a fresh window under the SAME policy and can lapse again. Reviving must not silently rewrite a retention policy someone chose.
Guardrails are excluded, as everywhere else: they never carry a deadline, so
there is nothing of theirs to revive. Mutation, so admin_ok=False — an
org admin’s extra powers are read and delete, not authoring.
No vector work. Fact search resolves its hits against the rows this UPDATE touches, so an eligible row is retrievable again with nothing to re-embed.
Authorizations
Enter your MeshAPI key (rsk_...) — sent as Authorization: Bearer <key>.
Headers
Dated version of the API contract to pin this request to. Omit it and the request is served under 2026-08 — the oldest supported version, so an existing integration is never moved by a release. A malformed or unsupported value is rejected with 400 invalid_api_version rather than falling back silently. The version actually served is echoed as X-Mesh-Version on every response, including errors.
2026-08 Path Parameters
Response
Successful Response
Outcome of a memID-wide revive.
expires_at is the deadline every revived item now carries — null when the
memory keeps items forever. retention_days echoes the policy that was
applied, unchanged: reviving does not rewrite it, so the caller can see that
the same window is now counting from today.