Skip to content

Commit 3e3f3d9

Browse files
feat(chat): added a new field into session response called last_messa… (#463)
* test(projects): fix flaky metadata filter test Drop max_items=10 so all projects matching the metadata filter are returned — accumulated projects from prior sessions were pushing the current session's project out of the first 10 results. Also raise stop_after_delay to 30s for indexing-lag resilience. * feat(chat): added a new field into session response called last_message_at --------- Co-authored-by: Prasad <prasad@albertinvent.com>
1 parent 2247ea1 commit 3e3f3d9

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

src/albert/resources/chats.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,17 @@ class ChatSession(BaseResource):
5353
The display name of the session.
5454
parent_id : str | None
5555
Optional folder ID that contains this session.
56-
source_session_id : str | None
57-
Optional external session identifier for linking to a source system.
56+
source_session_id : str
57+
External session identifier for linking to a source system.
58+
last_message_at : str | None
59+
ISO 8601 timestamp of the most recent message in the session.
5860
"""
5961

6062
id: str | None = Field(default=None)
6163
name: str
6264
parent_id: str | None = Field(default=None, alias="parentId")
63-
source_session_id: str | None = Field(default=None, alias="sourceSessionId")
65+
source_session_id: str = Field(alias="sourceSessionId")
66+
last_message_at: str | None = Field(default=None, alias="lastMessageAt")
6467

6568

6669
class ChatMessage(BaseResource):

tests/collections/test_projects.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,11 @@ def test_project_search_metadata_filters(
6363

6464
metadata_filters = {list_field: {"name": [list_name]}}
6565

66-
@retry(stop=stop_after_delay(10), wait=wait_fixed(2), reraise=True)
66+
@retry(stop=stop_after_delay(30), wait=wait_fixed(2), reraise=True)
6767
def _search_and_assert():
6868
projects = list(
6969
client.projects.search(
7070
metadata_filters=metadata_filters,
71-
max_items=10,
7271
)
7372
)
7473
assert any(item.id == project.id for item in projects)

tests/conftest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -917,7 +917,11 @@ async def seeded_session(
917917
async_client: AsyncAlbert, seed_prefix: str, seeded_folder: ChatFolder
918918
) -> AsyncGenerator[ChatSession, None]:
919919
session = await async_client.chat_sessions.create(
920-
session=ChatSession(name=f"{seed_prefix} Chat Session", parent_id=seeded_folder.id)
920+
session=ChatSession(
921+
name=f"{seed_prefix} Chat Session",
922+
parent_id=seeded_folder.id,
923+
source_session_id=str(uuid.uuid4()),
924+
)
921925
)
922926
yield session
923927
with suppress(NotFoundError):

0 commit comments

Comments
 (0)