Spaces:
Runtime error
Runtime error
File size: 1,067 Bytes
c6421b9 21f1bdf c6421b9 21f1bdf c6421b9 21f1bdf c6421b9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from app.state.state import EmailAgentState
from langchain_core.runnables.config import RunnableConfig
from app.database.connection import get_session
from app.database.utils import save_received_email
def archive_node(state: EmailAgentState,config: RunnableConfig) -> dict:
print(f"[ARCHIVE] {state['triage_label']} — {state['sender_subject']}")
session=get_session()
user_id=state['user_id']
thread_id = config.get("configurable", {}).get("thread_id")
with get_session() as session:
try:
# 2. Persist the received email even if it's unsafe (for records/logging)
save_received_email(session, user_id, thread_id, state)
session.commit()
print("--- [QUARANTINE] Data persisted successfully ---")
except Exception as e:
# 4. Rollback in case of an OperationalError or SSL timeout
session.rollback()
print(f"--- [QUARANTINE ERROR] Failed to persist unsafe email: {e} ---")
raise e
return {} |