ta
TanStack
GitHub
ai
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
ai
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
main
4188693d fix(ai): normalize AG-UI snapshot messages to UIMessage[] in MESSAGES_SNAPSHOT handler (#698) * fix(ai): normalize AG-UI snapshot messages to UIMessage[] in MESSAGES_SNAPSHOT handler * fix(ai): preserve original msg.id in MESSAGES_SNAPSHOT normalization * test(ai): add MESSAGES_SNAPSHOT normalization tests for AG-UI messages * fix(ai): type-safe AG-UI MESSAGES_SNAPSHOT normalization Replace the unsafe `as any`/`as UIMessage` casts in the MESSAGES_SNAPSHOT handler with a fully typed converter, `aguiSnapshotMessageToUIMessage`. AG-UI snapshot messages use the wire shape `{ id, role, content }` and have no `parts` array, so casting them straight to `UIMessage[]` crashed any code that later read `message.parts` (e.g. the devtools `onToolCallStateChange` handler) with "Cannot read properties of undefined (reading 'find')". The converter switches on the typed `@ag-ui/core` Message role union (no vendored types, no `as`/`any`), preserves the original AG-UI id for downstream event routing, maps assistant `toolCalls` to tool-call parts and `tool` messages to tool-result parts, and converts AG-UI user multimodal content to TanStack parts. Adds a changeset and reformats/extends the regression tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Tom Beckenham <34339192+tombeckenham@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Amit Saroj
A
Succeeded
main
4188693d fix(ai): normalize AG-UI snapshot messages to UIMessage[] in MESSAGES_SNAPSHOT handler (#698) * fix(ai): normalize AG-UI snapshot messages to UIMessage[] in MESSAGES_SNAPSHOT handler * fix(ai): preserve original msg.id in MESSAGES_SNAPSHOT normalization * test(ai): add MESSAGES_SNAPSHOT normalization tests for AG-UI messages * fix(ai): type-safe AG-UI MESSAGES_SNAPSHOT normalization Replace the unsafe `as any`/`as UIMessage` casts in the MESSAGES_SNAPSHOT handler with a fully typed converter, `aguiSnapshotMessageToUIMessage`. AG-UI snapshot messages use the wire shape `{ id, role, content }` and have no `parts` array, so casting them straight to `UIMessage[]` crashed any code that later read `message.parts` (e.g. the devtools `onToolCallStateChange` handler) with "Cannot read properties of undefined (reading 'find')". The converter switches on the typed `@ag-ui/core` Message role union (no vendored types, no `as`/`any`), preserves the original AG-UI id for downstream event routing, maps assistant `toolCalls` to tool-call parts and `tool` messages to tool-result parts, and converts AG-UI user multimodal content to TanStack parts. Adds a changeset and reformats/extends the regression tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Tom Beckenham <34339192+tombeckenham@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Amit Saroj
A
Succeeded
fix/messages-snapshot-normalize-parts
019d055c Merge b23a30e2bdf3e7da3a17eecfc19f8c367a55a404 into 2e59b7730ef88a0107e8d7ad916906b070f6a6c0
by Amit Saroj
A
Failed
fix/messages-snapshot-normalize-parts
76d84ed5 Merge dbed4ac2dabb2d441d021926ad9206bd3f3374eb into a571f4894cef606a4461aa9f41e9558dcf8f5138
by Amit Saroj
A
Succeeded
main
215b6b40 fix(ai-openai): migrate WebRTC realtime adapter to OpenAI GA API (#699) * fix(ai-openai): migrate WebRTC realtime adapter to OpenAI GA API * Merge branch 'main' into fix/openai-realtime-ga-migration * fix(ai-openai): complete realtime Beta-to-GA migration Completes the GA migration started in this PR so the whole realtime flow works against OpenAI's GA API (the Beta shape was shut down 2026-05-12): - openaiRealtimeToken() mints ephemeral keys via POST /v1/realtime/client_secrets (the Beta /v1/realtime/sessions endpoint is retired) and parses the GA top-level value/expires_at response shape - session.update payloads use the GA shape via a new pure buildSessionUpdate() helper: required session.type, audio.input.*, audio.output.voice, output_modalities, max_output_tokens; temperature (removed in GA) is dropped with a debug log instead of getting the whole update rejected with unknown_parameter - server events handled under GA names (response.output_audio_transcript.*, response.output_audio.*, output_text/output_audio content parts) - removed the now-unused model local in createWebRTCConnection (the GA /calls endpoint rejects ?model=; the model is bound to the ephemeral key) - default model gpt-realtime; dead gpt-4o-(mini-)realtime-preview ids (shut down 2026-05-07) removed from OpenAIRealtimeModel, docs, and examples - unit tests for the session.update payload and client-secret request/response shapes; changeset added Live-verified against the OpenAI API: client_secrets 200 (ek_ token), /v1/realtime/calls 201 with SDP answer, and session.updated echoing voice, semantic VAD, tools, output_modalities, and max_output_tokens. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ai-openai): collapse output modalities to single GA-supported value The GA realtime API only accepts ['audio'] or ['text'] for output_modalities; the Beta API accepted ['audio', 'text'] and the provider-agnostic RealtimeSessionConfig still legitimately produces it (e.g. the example UI's audio+text mode). Sending both got the whole session.update rejected with: Invalid modalities: ['audio', 'text']. Collapse to ['audio'] when audio is requested — GA audio replies still stream text via response.output_audio_transcript.* events, so visible behavior is unchanged. Live-verified: session.updated accepted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Merge branch 'main' into fix/openai-realtime-ga-migration
by Amit Saroj
A
Succeeded
main
215b6b40 fix(ai-openai): migrate WebRTC realtime adapter to OpenAI GA API (#699) * fix(ai-openai): migrate WebRTC realtime adapter to OpenAI GA API * Merge branch 'main' into fix/openai-realtime-ga-migration * fix(ai-openai): complete realtime Beta-to-GA migration Completes the GA migration started in this PR so the whole realtime flow works against OpenAI's GA API (the Beta shape was shut down 2026-05-12): - openaiRealtimeToken() mints ephemeral keys via POST /v1/realtime/client_secrets (the Beta /v1/realtime/sessions endpoint is retired) and parses the GA top-level value/expires_at response shape - session.update payloads use the GA shape via a new pure buildSessionUpdate() helper: required session.type, audio.input.*, audio.output.voice, output_modalities, max_output_tokens; temperature (removed in GA) is dropped with a debug log instead of getting the whole update rejected with unknown_parameter - server events handled under GA names (response.output_audio_transcript.*, response.output_audio.*, output_text/output_audio content parts) - removed the now-unused model local in createWebRTCConnection (the GA /calls endpoint rejects ?model=; the model is bound to the ephemeral key) - default model gpt-realtime; dead gpt-4o-(mini-)realtime-preview ids (shut down 2026-05-07) removed from OpenAIRealtimeModel, docs, and examples - unit tests for the session.update payload and client-secret request/response shapes; changeset added Live-verified against the OpenAI API: client_secrets 200 (ek_ token), /v1/realtime/calls 201 with SDP answer, and session.updated echoing voice, semantic VAD, tools, output_modalities, and max_output_tokens. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ai-openai): collapse output modalities to single GA-supported value The GA realtime API only accepts ['audio'] or ['text'] for output_modalities; the Beta API accepted ['audio', 'text'] and the provider-agnostic RealtimeSessionConfig still legitimately produces it (e.g. the example UI's audio+text mode). Sending both got the whole session.update rejected with: Invalid modalities: ['audio', 'text']. Collapse to ['audio'] when audio is requested — GA audio replies still stream text via response.output_audio_transcript.* events, so visible behavior is unchanged. Live-verified: session.updated accepted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Merge branch 'main' into fix/openai-realtime-ga-migration
by Amit Saroj
A
Succeeded
fix/openai-realtime-ga-migration
aa8330c3 Merge 676dd84a067a1d820d800224494f56117b36185e into e8ce0e1641618b56c5e157d4aaf8ad8aad640eb5
by Amit Saroj
A
Previous page
Previous
Next
Next page