debug: add ctx-diag logging to trace session hydration and message assembly
Some checks failed
ci / docker publish / build (amd64) (push) Has been cancelled
ci / docker publish / build (arm64) (push) Has been cancelled
ci / docker publish / merge manifest + tag (push) Has been cancelled

This commit is contained in:
Lukas Parsons 2026-07-07 22:53:21 -04:00
parent 20c7d7e6b7
commit 9ded11311e
2 changed files with 11 additions and 1 deletions

View file

@ -383,6 +383,10 @@ class SessionManager:
cached = self.sessions[session_id]
# Lazy hydrate: metadata-only entries get their messages on first read.
if not cached.history:
logger.info(
"[ctx-diag] lazy hydrating session=%s (history empty, msg_count=%d)",
session_id, getattr(cached, "message_count", 0),
)
self._load_session_from_db(session_id)
# Keep model/endpoint metadata fresh. Endpoint deletion can clear the

View file

@ -751,7 +751,13 @@ async def build_chat_context(
sess.model = norm
# Build messages
messages = preface + sess.get_context_messages()
_ctx_msgs = sess.get_context_messages()
logger.info(
"[ctx-diag] session=%s history_len=%d ctx_messages=%d preface=%d roles=%s",
session_id, len(sess.history), len(_ctx_msgs), len(preface),
[m.get("role") for m in _ctx_msgs[-5:]] if _ctx_msgs else [],
)
messages = preface + _ctx_msgs
# Current date/time — injected as a standalone *user*-role context message
# placed immediately before the latest user turn, NOT folded into the