diff --git a/CHANGELOG.md b/CHANGELOG.md index 522cae479cb..b904914942f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ Docs: https://docs.openclaw.ai - Sessions CLI: show the selected agent runtime in the `openclaw sessions` table so terminal output matches the runtime visibility already present in JSON/status surfaces. Thanks @vincentkoc. - Talk/voice: unify realtime relay, transcription relay, managed-room handoff, Voice Call, Google Meet, VoiceClaw, and native clients around a shared Talk session controller and add the Gateway-managed `talk.session.*` RPC surface. - Diagnostics/Talk: export bounded Talk lifecycle/audio metrics and session recovery metrics through OpenTelemetry and Prometheus without exposing transcripts, audio payloads, room ids, turn ids, or session ids. +- Logging/Talk: route shared Talk lifecycle events into bounded file and OTLP log records while keeping transcript text, audio payloads, turn ids, call ids, and provider item ids out of logs. - Google Meet/Voice Call: make Twilio dial-in joins speak through the realtime Gemini voice bridge with paced audio streaming, backpressure-aware buffering, barge-in queue clearing, same-session agent consult routing, duplicate-consult coalescing, and no TwiML fallback during realtime speech, giving Meet participants a much snappier OpenClaw voice agent. (#77064) Thanks @scoootscooob. - Voice Call/realtime: add opt-in OpenClaw agent voice context capsules and consult-cadence guidance so Gemini/OpenAI realtime calls can sound like the configured agent without consulting the full agent on every ordinary turn. Thanks @scoootscooob. - Docker/Gateway: harden the gateway container by dropping `NET_RAW` and `NET_ADMIN` capabilities and enabling `no-new-privileges` in the bundled `docker-compose.yml`. Thanks @VintageAyu. diff --git a/docs/gateway/logging.md b/docs/gateway/logging.md index 1f8d5024f6a..d24795abb00 100644 --- a/docs/gateway/logging.md +++ b/docs/gateway/logging.md @@ -38,6 +38,11 @@ default agent or model `fastMode` params. The file format is one JSON object per line. +Talk, realtime voice, and managed-room code paths use the shared file logger for +bounded lifecycle records. These records are intended for operational debugging +and OTLP log export; transcript text, audio payloads, turn ids, call ids, and +provider item ids are not copied into the log record. + The Control UI Logs tab tails this file via the gateway (`logs.tail`). CLI can do the same: diff --git a/docs/logging.md b/docs/logging.md index fdab71d5966..cf82487dedf 100644 --- a/docs/logging.md +++ b/docs/logging.md @@ -116,6 +116,11 @@ available: OpenClaw preserves the original structured log arguments alongside these fields so existing parsers that read numbered tslog argument keys keep working. +Talk, realtime voice, and managed-room activity emits bounded lifecycle log +records through this same file-log pipeline. These records include event type, +mode, transport, provider, and size/timing measurements when available, but omit +transcript text, audio payloads, turn ids, call ids, and provider item ids. + ### Console output Console logs are **TTY-aware** and formatted for readability: @@ -184,6 +189,9 @@ model-call traces become children of the active request trace, so local logs, diagnostic snapshots, OTEL spans, and trusted provider `traceparent` headers can be joined by `traceId` without logging raw request or model content. +Talk lifecycle log records also flow to OTLP logs when OpenTelemetry log export +is enabled, using the same bounded attributes as file logs. + ### Model call size and timing Model-call diagnostics record bounded request/response measurements without