Skip to content

Commit 79675f1

Browse files
authored
Merge pull request letta-ai#87 from letta-ai/release-please--branches--main--changes--next
release: 1.10.2
2 parents 8b47f5a + 9d09b2f commit 79675f1

11 files changed

Lines changed: 55 additions & 6 deletions

File tree

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.10.1"
2+
".": "1.10.2"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 126
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/letta-ai%2Fletta-sdk-c9d5c27d12c9054a602aa3e7fee4c292582dce393231776e010a76c54b2d5600.yml
3-
openapi_spec_hash: 8b150cdf0e4de6c89848f24f6d15e6c3
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/letta-ai%2Fletta-sdk-2fcabe48fcd0f7ea8bb7af9870483b1369331f0fc345e085d607ff3cbd31b44b.yml
3+
openapi_spec_hash: af474c9c636bde8224321911d2272d09
44
config_hash: f2ff70633d052a11601ad82a5afcfaec

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 1.10.2 (2026-04-02)
4+
5+
Full Changelog: [v1.10.1...v1.10.2](https://github.com/letta-ai/letta-python/compare/v1.10.1...v1.10.2)
6+
7+
### Features
8+
9+
* **core:** add conversation archive fields and filtering ([d589286](https://github.com/letta-ai/letta-python/commit/d589286a9d635b5e5e9744f2be15cd11790af29f))
10+
* **internal:** implement indices array format for query and form serialization ([c4a27c7](https://github.com/letta-ai/letta-python/commit/c4a27c7c600fa67620347c910ed9f9f448993647))
11+
312
## 1.10.1 (2026-03-26)
413

514
Full Changelog: [v1.9.1...v1.10.1](https://github.com/letta-ai/letta-python/compare/v1.9.1...v1.10.1)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "letta-client"
3-
version = "1.10.1"
3+
version = "1.10.2"
44
description = "The official Python library for the letta API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/letta_client/_qs.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,10 @@ def _stringify_item(
101101
items.extend(self._stringify_item(key, item, opts))
102102
return items
103103
elif array_format == "indices":
104-
raise NotImplementedError("The array indices format is not supported yet")
104+
items = []
105+
for i, item in enumerate(value):
106+
items.extend(self._stringify_item(f"{key}[{i}]", item, opts))
107+
return items
105108
elif array_format == "brackets":
106109
items = []
107110
key = key + "[]"

src/letta_client/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "letta_client"
4-
__version__ = "1.10.1" # x-release-please-version
4+
__version__ = "1.10.2" # x-release-please-version

src/letta_client/resources/conversations/conversations.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ def update(
167167
self,
168168
conversation_id: str,
169169
*,
170+
archived: Optional[bool] | Omit = omit,
170171
last_message_at: Union[str, datetime, None] | Omit = omit,
171172
model: Optional[str] | Omit = omit,
172173
model_settings: Optional[conversation_update_params.ModelSettings] | Omit = omit,
@@ -184,6 +185,8 @@ def update(
184185
Args:
185186
conversation_id: The ID of the conv in the format 'conv-<uuid4>'
186187
188+
archived: Whether the conversation is archived.
189+
187190
last_message_at: Timestamp of the most recent message request sent to this conversation.
188191
189192
model:
@@ -208,6 +211,7 @@ def update(
208211
path_template("/v1/conversations/{conversation_id}", conversation_id=conversation_id),
209212
body=maybe_transform(
210213
{
214+
"archived": archived,
211215
"last_message_at": last_message_at,
212216
"model": model,
213217
"model_settings": model_settings,
@@ -226,6 +230,7 @@ def list(
226230
*,
227231
after: Optional[str] | Omit = omit,
228232
agent_id: Optional[str] | Omit = omit,
233+
archive_status: Literal["unarchived", "archived", "all"] | Omit = omit,
229234
limit: int | Omit = omit,
230235
order: Literal["asc", "desc"] | Omit = omit,
231236
order_by: Literal["created_at", "last_run_completion", "last_message_at"] | Omit = omit,
@@ -247,6 +252,9 @@ def list(
247252
agent_id: The agent ID to list conversations for (optional - returns all conversations if
248253
not provided)
249254
255+
archive_status: Whether to return unarchived conversations only, archived conversations only, or
256+
all conversations
257+
250258
limit: Maximum number of conversations to return
251259
252260
order: Sort order for conversations. 'asc' for oldest first, 'desc' for newest first
@@ -274,6 +282,7 @@ def list(
274282
{
275283
"after": after,
276284
"agent_id": agent_id,
285+
"archive_status": archive_status,
277286
"limit": limit,
278287
"order": order,
279288
"order_by": order_by,
@@ -621,6 +630,7 @@ async def update(
621630
self,
622631
conversation_id: str,
623632
*,
633+
archived: Optional[bool] | Omit = omit,
624634
last_message_at: Union[str, datetime, None] | Omit = omit,
625635
model: Optional[str] | Omit = omit,
626636
model_settings: Optional[conversation_update_params.ModelSettings] | Omit = omit,
@@ -638,6 +648,8 @@ async def update(
638648
Args:
639649
conversation_id: The ID of the conv in the format 'conv-<uuid4>'
640650
651+
archived: Whether the conversation is archived.
652+
641653
last_message_at: Timestamp of the most recent message request sent to this conversation.
642654
643655
model:
@@ -662,6 +674,7 @@ async def update(
662674
path_template("/v1/conversations/{conversation_id}", conversation_id=conversation_id),
663675
body=await async_maybe_transform(
664676
{
677+
"archived": archived,
665678
"last_message_at": last_message_at,
666679
"model": model,
667680
"model_settings": model_settings,
@@ -680,6 +693,7 @@ async def list(
680693
*,
681694
after: Optional[str] | Omit = omit,
682695
agent_id: Optional[str] | Omit = omit,
696+
archive_status: Literal["unarchived", "archived", "all"] | Omit = omit,
683697
limit: int | Omit = omit,
684698
order: Literal["asc", "desc"] | Omit = omit,
685699
order_by: Literal["created_at", "last_run_completion", "last_message_at"] | Omit = omit,
@@ -701,6 +715,9 @@ async def list(
701715
agent_id: The agent ID to list conversations for (optional - returns all conversations if
702716
not provided)
703717
718+
archive_status: Whether to return unarchived conversations only, archived conversations only, or
719+
all conversations
720+
704721
limit: Maximum number of conversations to return
705722
706723
order: Sort order for conversations. 'asc' for oldest first, 'desc' for newest first
@@ -728,6 +745,7 @@ async def list(
728745
{
729746
"after": after,
730747
"agent_id": agent_id,
748+
"archive_status": archive_status,
731749
"limit": limit,
732750
"order": order,
733751
"order_by": order_by,

src/letta_client/types/conversation.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,12 @@ class Conversation(BaseModel):
222222
agent_id: str
223223
"""The ID of the agent this conversation belongs to."""
224224

225+
archived: Optional[bool] = None
226+
"""Whether the conversation is archived."""
227+
228+
archived_at: Optional[datetime] = None
229+
"""Timestamp of when the conversation was archived."""
230+
225231
created_at: Optional[datetime] = None
226232
"""The timestamp when the object was created."""
227233

src/letta_client/types/conversation_list_params.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ class ConversationListParams(TypedDict, total=False):
1818
not provided)
1919
"""
2020

21+
archive_status: Literal["unarchived", "archived", "all"]
22+
"""
23+
Whether to return unarchived conversations only, archived conversations only, or
24+
all conversations
25+
"""
26+
2127
limit: int
2228
"""Maximum number of conversations to return"""
2329

src/letta_client/types/conversation_update_params.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939

4040

4141
class ConversationUpdateParams(TypedDict, total=False):
42+
archived: Optional[bool]
43+
"""Whether the conversation is archived."""
44+
4245
last_message_at: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
4346
"""Timestamp of the most recent message request sent to this conversation."""
4447

0 commit comments

Comments
 (0)