langgraph: remove support for thread_ts (old alias for checkpoint_id) (#5295)

* remove support for thread_ts

* docs and tests
This commit is contained in:
Sydney Runkle
2025-07-01 13:42:25 -04:00
committed by GitHub
parent c16e42e6d5
commit c989f1c898
9 changed files with 10 additions and 22 deletions
@@ -284,10 +284,7 @@ class PostgresSaver(BasePostgresSaver):
configurable = config["configurable"].copy()
thread_id = configurable.pop("thread_id")
checkpoint_ns = configurable.pop("checkpoint_ns")
checkpoint_id = configurable.pop(
"checkpoint_id", configurable.pop("thread_ts", None)
)
checkpoint_id = configurable.pop("checkpoint_id", None)
copy = checkpoint.copy()
next_config = {
"configurable": {
@@ -240,9 +240,7 @@ class AsyncPostgresSaver(BasePostgresSaver):
configurable = config["configurable"].copy()
thread_id = configurable.pop("thread_id")
checkpoint_ns = configurable.pop("checkpoint_ns")
checkpoint_id = configurable.pop(
"checkpoint_id", configurable.pop("thread_ts", None)
)
checkpoint_id = configurable.pop("checkpoint_id", None)
copy = checkpoint.copy()
next_config = {
+1 -2
View File
@@ -161,8 +161,7 @@ def test_data():
config_1: RunnableConfig = {
"configurable": {
"thread_id": "thread-1",
# for backwards compatibility testing
"thread_ts": "1",
"checkpoint_id": "1",
"checkpoint_ns": "",
}
}
+1 -2
View File
@@ -143,8 +143,7 @@ def test_data():
config_1: RunnableConfig = {
"configurable": {
"thread_id": "thread-1",
# for backwards compatibility testing
"thread_ts": "1",
"checkpoint_id": "1",
"checkpoint_ns": "",
}
}
@@ -19,8 +19,7 @@ class TestAsyncSqliteSaver:
self.config_1: RunnableConfig = {
"configurable": {
"thread_id": "thread-1",
# for backwards compatibility testing
"thread_ts": "1",
"checkpoint_id": "1",
"checkpoint_ns": "",
}
}
+1 -1
View File
@@ -21,7 +21,7 @@ class TestSqliteSaver:
"configurable": {
"thread_id": "thread-1",
# for backwards compatibility testing
"thread_ts": "1",
"checkpoint_id": "1",
"checkpoint_ns": "",
}
}
+1 -1
View File
@@ -36,7 +36,7 @@ Each checkpointer should conform to `langgraph.checkpoint.base.BaseCheckpointSav
- `.put` - Store a checkpoint with its configuration and metadata.
- `.put_writes` - Store intermediate writes linked to a checkpoint (i.e. pending writes).
- `.get_tuple` - Fetch a checkpoint tuple using for a given configuration (`thread_id` and `thread_ts`).
- `.get_tuple` - Fetch a checkpoint tuple using for a given configuration (`thread_id` and `checkpoint_id`).
- `.list` - List checkpoints that match a given configuration and filter criteria.
If the checkpointer will be used with asynchronous graph execution (i.e. executing the graph via `.ainvoke`, `.astream`, `.abatch`), checkpointer must implement asynchronous versions of the above methods (`.aput`, `.aput_writes`, `.aget_tuple`, `.alist`).
@@ -375,10 +375,8 @@ class EmptyChannelError(Exception):
def get_checkpoint_id(config: RunnableConfig) -> str | None:
"""Get checkpoint ID in a backwards-compatible manner (fallback on thread_ts)."""
return config["configurable"].get(
"checkpoint_id", config["configurable"].get("thread_ts")
)
"""Get checkpoint ID."""
return config["configurable"].get("checkpoint_id")
def get_checkpoint_metadata(
@@ -413,7 +411,6 @@ WRITES_IDX_MAP = {ERROR: -1, SCHEDULED: -2, INTERRUPT: -3, RESUME: -4}
EXCLUDED_METADATA_KEYS = {
"thread_id",
"thread_ts",
"checkpoint_id",
"checkpoint_ns",
"checkpoint_map",
+1 -2
View File
@@ -22,8 +22,7 @@ class TestMemorySaver:
"configurable": {
"thread_id": "thread-1",
"checkpoint_ns": "",
# for backwards compatibility testing
"thread_ts": "1",
"checkpoint_id": "1",
}
}
self.config_2: RunnableConfig = {