fix(voice): log a real send before bookkeeping; document decision reasons

Second review pass on #835's diagnostics. Behaviour is unchanged.

- Report viewport_context.result as soon as the send returns, so a throw
  in the retained-frame bookkeeping cannot log a real send as "error".
- List the decision reasons and when each field is present in
  CURRENT-STATE, note that the rate limit can split a pair, and say which
  codes are defensive.
- Changelog: the decision is logged when an entity-context answer reaches
  the image step, not for every answer.
This commit is contained in:
manjunath22466 committed 2026-11-06 22:47:09 +05:30
1 parent 207eb9805d
commit d0a612786a
4 files changed
+34 -11

No files matched your search

@@ -1,7 +1,7 @@
- The voice debug log now says why OpenAI Realtime did or did not get a
viewport screenshot or pointer crop. Each entity-context answer logs a
reason-coded decision and, when an image was due, one outcome under the same
id, so a crop that was dropped because the pointer went stale or the camera
moved is no longer counted as sent. What is captured, sent and kept is
unchanged, and no image data or user text is logged (kvnloo, manjunath22466,
#835).
viewport screenshot or pointer crop. When an entity-context answer reaches
the image step, the log records a reason-coded decision and, when an image
was due, one outcome under the same id, so a crop that was dropped because
the pointer went stale or the camera moved is no longer counted as sent.
What is captured, sent and kept is unchanged, and no image data or user text
is logged (kvnloo, manjunath22466, #835).