Squash Odysseus development history

This commit is contained in:
pewdiepie-archdaemon
2026-09-11 06:04:19 +00:00
parent c9dd68d890
commit 84aa9a91de
871 changed files with 265870 additions and 27854 deletions
+54
View File
@@ -215,6 +215,60 @@ def _search_like(
return _rows_to_results(db, shaped, query, context_messages)
def search_session_titles(
query: str,
limit: int = 20,
owner: str | None = None,
include_archived: bool = False,
context_messages: int = 1,
include_legacy_owner: bool = True,
db=None,
) -> list[SessionSearchResult]:
"""Find transcripts by session title when the title is the user's cue.
``search_session_messages`` intentionally searches message content. The
agent-facing chat tool also receives short requests such as a session
title, so provide a scoped title lookup without weakening its owner or
archived-session boundaries.
"""
query = (query or "").strip()
if not query:
return []
limit = max(1, min(int(limit or 20), 100))
context_messages = max(0, min(int(context_messages or 0), 3))
owns_db = db is None
if owns_db:
db = SessionLocal()
try:
sessions = db.query(DBSession).filter(
DBSession.name.ilike(f"%{_escape_like(query)}%", escape="\\"),
~DBSession.name.like("SFT trace batch%"),
)
if not include_archived:
sessions = sessions.filter(DBSession.archived == False)
sessions = _owner_filter(sessions, owner, include_legacy_owner)
sessions = sessions.order_by(DBSession.updated_at.desc()).limit(limit).all()
rows = []
for session in sessions:
message = (
db.query(DBChatMessage)
.filter(
DBChatMessage.session_id == session.id,
DBChatMessage.role.in_(SEARCH_ROLES),
)
.order_by(DBChatMessage.timestamp.desc())
.first()
)
if message is not None:
rows.append((message, session.name, _snippet(message.content or "", query)))
return _rows_to_results(db, rows, query, context_messages)
finally:
if owns_db:
db.close()
def _fetch_messages_by_id(db, message_ids):
"""Fetch (message, session_name) for many message ids in a single query.