helion: stabilize doc context, remove legacy webhook path, add stack smoke canary
This commit is contained in:
@@ -86,7 +86,8 @@ class DocumentService:
|
||||
doc_id: str,
|
||||
doc_url: Optional[str] = None,
|
||||
file_name: Optional[str] = None,
|
||||
dao_id: Optional[str] = None
|
||||
dao_id: Optional[str] = None,
|
||||
user_id: Optional[str] = None,
|
||||
) -> bool:
|
||||
"""
|
||||
Save document context for a session.
|
||||
@@ -104,10 +105,10 @@ class DocumentService:
|
||||
True if saved successfully
|
||||
"""
|
||||
try:
|
||||
# Extract user_id from session_id if possible
|
||||
# Extract fallback user_id from session_id if not provided.
|
||||
# Format: "channel:identifier" or "channel:user_id"
|
||||
parts = session_id.split(":", 1)
|
||||
user_id = parts[1] if len(parts) > 1 else session_id
|
||||
fact_user_id = user_id or (parts[1] if len(parts) > 1 else session_id)
|
||||
|
||||
# Save as fact in Memory Service
|
||||
fact_key = f"doc_context:{session_id}"
|
||||
@@ -116,14 +117,17 @@ class DocumentService:
|
||||
"doc_url": doc_url,
|
||||
"file_name": file_name,
|
||||
"dao_id": dao_id,
|
||||
"user_id": user_id,
|
||||
"saved_at": datetime.utcnow().isoformat()
|
||||
}
|
||||
|
||||
result = await self.memory_client.upsert_fact(
|
||||
user_id=user_id,
|
||||
user_id=fact_user_id,
|
||||
fact_key=fact_key,
|
||||
fact_value_json=fact_value_json,
|
||||
team_id=dao_id
|
||||
# Keep doc context globally addressable for follow-up calls
|
||||
# that may not include dao_id/team_id in retrieval.
|
||||
team_id=None,
|
||||
)
|
||||
|
||||
logger.info(f"Saved doc context for session {session_id}: doc_id={doc_id}")
|
||||
@@ -260,7 +264,8 @@ class DocumentService:
|
||||
doc_id=doc_id,
|
||||
doc_url=doc_url,
|
||||
file_name=file_name,
|
||||
dao_id=dao_id
|
||||
dao_id=dao_id,
|
||||
user_id=user_id,
|
||||
)
|
||||
|
||||
# Convert text to markdown format
|
||||
@@ -312,7 +317,8 @@ class DocumentService:
|
||||
doc_id=doc_id,
|
||||
doc_url=doc_url,
|
||||
file_name=file_name,
|
||||
dao_id=dao_id
|
||||
dao_id=dao_id,
|
||||
user_id=user_id,
|
||||
)
|
||||
|
||||
return ParsedResult(
|
||||
@@ -599,7 +605,8 @@ async def save_doc_context(
|
||||
doc_id: str,
|
||||
doc_url: Optional[str] = None,
|
||||
file_name: Optional[str] = None,
|
||||
dao_id: Optional[str] = None
|
||||
dao_id: Optional[str] = None,
|
||||
user_id: Optional[str] = None,
|
||||
) -> bool:
|
||||
"""Save document context for a session"""
|
||||
return await doc_service.save_doc_context(
|
||||
@@ -607,11 +614,11 @@ async def save_doc_context(
|
||||
doc_id=doc_id,
|
||||
doc_url=doc_url,
|
||||
file_name=file_name,
|
||||
dao_id=dao_id
|
||||
dao_id=dao_id,
|
||||
user_id=user_id,
|
||||
)
|
||||
|
||||
|
||||
async def get_doc_context(session_id: str) -> Optional[DocContext]:
|
||||
"""Get document context for a session"""
|
||||
return await doc_service.get_doc_context(session_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user