Show raw AI output in Insights per turn

Store the model's literal reply (before the world-state block is stripped)
in each turn's snapshot, and render it in the Insights panel when inspecting
a past AI message (the 🔍 button). Makes it possible to see exactly what the
model emitted — including whether it sent a state delta and with what paths —
which is the fastest way to debug under-reported or misrouted stat changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parththakkar106
2026-07-21 16:34:38 +05:30
co-authored by Claude Opus 4.8
parent 80fb5b0c89
commit 3b03bf737a
3 changed files with 21 additions and 0 deletions
+5
View File
@@ -354,6 +354,9 @@ async def generate_turn(
return
text = "".join(chunks).strip()
# The model's literal reply, kept for the Insights "Raw AI output" view —
# this still contains any world-state block before it gets stripped below.
raw_output = text
if not text:
# If the model streamed reasoning but no story text, it spent its whole
# budget thinking — say so instead of a mysterious "empty response".
@@ -390,6 +393,8 @@ async def generate_turn(
adventure.world_state = new_world_state
snapshot["world_state"] = {"delta": delta, "report": ws_report, "state": new_world_state}
snapshot["raw_output"] = raw_output
ai_action = models.Action(
adventure_id=adventure.id,
index=ai_index,