feat(#919): adopt session.usage WS push event for real-time context & compression updates (#927)

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-08-17 23:31:07 +03:00
1 parent d6892cde7f
commit acd82c0085
6 files changed
+141 -9

No files matched your search

@@ -167,6 +167,10 @@ object EventParser {
WsEvent.SessionUpdated(payload)
}
"session.usage" -> {
WsEvent.SessionUsage(payload, sessionId)
}
"reaction" -> {
val kind = payload?.get("kind") as? String ?: ""
WsEvent.ReactionEvent(kind)
@@ -161,6 +161,16 @@ sealed class WsEvent {
val data: Map<String, Any?>?,
) : WsEvent()
/**
* Live token & compression usage snapshot emitted during a turn (issue #919).
* Carried in `session.usage` push events (`tui_gateway/server.py` `_start_usage_ticker`).
* Payload: `{ "usage": { "compressions": Int, "context_used": Long, "context_max": Long, ... } }`
*/
data class SessionUsage(
val data: Map<String, Any?>?,
val sessionId: String? = null,
) : WsEvent()
// ── RPC responses ────────────────────────────────────────────────────
data class RpcResult(