1.0.0
Initial release.
Zep.Thread(+Zep.Thread.Message),Zep.User,Zep.Context,Zep.Graph(+Edge,Episode,Node,CustomInstructions,Observations,ThreadSummaries),Zep.Project,Zep.Task,Zep.Batch,Zep.Webhook- Typed structs for every response shape under
Zep.Schemas - Automatic retry with exponential backoff on 429/5xx via
Zep.HTTP :telemetryspans around every request- Lazy
stream/2pagination helpers backed byZep.Pagination - Config resolution via explicit opts /
Applicationenv /ZEP_API_KEY - Reflects Zep's February 2026 deprecation wave:
min_rating/modewere removed fromZep.Thread.get_user_context/3, andmin_fact_rating/min_scorewere removed fromZep.Graph.search/3(both now rely on Zep's default relevance ranking rather than manual thresholds) Zep.Batchimplements the corrected three-step lifecycle (create/2→add/4→process/2), matching the API as shipped, not a single-callcreate/3as originally (incorrectly) assumedZep.Webhook.verify/3verifies incoming webhook deliveries via Svix-style HMAC-SHA256, matching the HMAC webhook verification pattern used in the Railsr SDK
Fixed (found via Dialyzer against the real Req library)
- Zep.Error.from_response/3 assumed response headers were a list of
{key, value}tuples; Req actually representsReq.Response.headersas a map ofbinary() => [binary()](header name to list of values). This meantrequest_idextraction from thex-request-idheader was silently broken. Fixed the type spec and extraction logic to match Req's real shape; added a corresponding test.
Fixed (test suite)
- Bypass-backed HTTP tests weren't setting
content-type: application/jsonon mock responses, so Req correctly left response bodies undecoded as raw strings rather than parsed maps - masking what the tests were actually asserting. AddedZep.TestSupport.json_resp/3and switched every test to use it.