Deferred follow-ups from the relaykit-tools review cycle, verified by live end-to-end billing tests: - billing: normalize Gemini modality keys consistently between stream merge and settlement (case/whitespace variants no longer drop independent audio/image pricing) and sum duplicate modality entries on both paths - billing: sync legacy flat Claude cache-creation fields from the CacheCreation sub-object (including zeroing) and fall back to flat fields only when the snapshot never carried a sub-object, closing a stale 1h-cache overcharge path in cascaded deployments - relay: move Chat-to-Claude and Chat-to-Gemini stream conversion state from gin.Context onto RelayInfo and reset it with SendResponseCount in InitChannelMeta, so channel retries start clean while per-request state (stream error collection, conversion diagnostics, channel chain, billing accumulators) survives - relay: Claude channel now serves Gemini-format clients (request via registry conversion, response and stream composed through the Chat pivot), removing the last unimplemented conversion direction - relaykit: recognize legacy pseudo tool names (googleSearch, codeExecution, urlContext) in the toolconv decode stage and drop the string-matching bypass in the Chat-to-Gemini converter; native Gemini tool output is restored and non-Gemini targets follow standard loss diagnostics - relaykit: attach upstream Gemini usage (with billing_usage sidecar) to intermediate stream chunks so converted Claude streams report upstream truth from message_start, and preserve the sidecar through Claude stream usage merges; billing settlement unchanged - billing: clamp negative Total-Prompt completion derivation, OR the Estimated flag across cross-dialect snapshot replacement, and fill canonical OpenAI prompt details via field-wise merge
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| convmeta | Loading commit data... | |
| internal | Loading commit data... | |
| kitutil | Loading commit data... | |
| reasoning | Loading commit data... | |
| testdata/golden | Loading commit data... | |
| boundary_test.go | Loading commit data... | |
| claude_default_max_tokens_test.go | Loading commit data... | |
| golden_test.go | Loading commit data... | |
| media.go | Loading commit data... | |
| request_compat.go | Loading commit data... | |
| request_registry.go | Loading commit data... | |
| request_registry_test.go | Loading commit data... | |
| response_compat.go | Loading commit data... | |
| response_registry.go | Loading commit data... | |
| response_registry_test.go | Loading commit data... | |
| safety_settings_test.go | Loading commit data... | |
| terminal_stream_test.go | Loading commit data... | |
| text_converter_registry.go | Loading commit data... | |
| text_converter_registry_test.go | Loading commit data... | |
| tool_loss_policy_test.go | Loading commit data... |