Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds GPT Live 1 voice conversations on iPhone and Mac, with reasoning and tools delegated to the selected LoopHarness model through the existing guarded dispatcher. A waveform button in an empty composer starts a call. iPhone uses a header orb, compact call controls, and a blue border that responds to spoken output; Mac uses a floating orb. Active iPhone calls support background audio.
Voice transcripts stream into blue-attributed rows. Each delegated request has an amber reasoning and tools card with model attribution, progress, expandable inputs/results, timing, and saved metadata. Read-only work collapses after speech, while actions and errors remain visible. Image-search thumbnails and source links appear in the same cards, and generated images update from placeholders to results or failures. Images remain visible with collapsed details and can be enlarged. Existing workspace images returned by share_file are included as well. Late image completion updates the original conversation after a call ends.
Tapping a reasoning or tool area toggles its disclosure. Manual expansion is retained and animations are disabled. Live results, including images, continue rendering during inspection, with automatic following disabled and the visible message anchored to prevent scroll jumps. Closing a card does not auto-scroll. Streaming reconfigures only changed rows when IDs are stable; a bounded shared image loader retains decoded images and in-flight requests across cell reconstruction to prevent flashing.
Uses the user's OpenAI credential and the Live WebSocket/client-delegation API. Includes a startup timeout, nonfatal slow-task progress, bounded audio queues, opaque delegation ID handling, correction handling, and cancellation guards. Mac capture negotiates matching hardware I/O formats to address audio initialization error -10875 and empty microphone capture. iPhone overlay ownership follows the UIKit controller hierarchy to fix the reported Live startup crashes.
iOS PDF generation stays in the originating Live conversation, avoiding the ordinary chat host that could create a new conversation and end the call. PDF placeholders update in place; completed files persist, late results stay with the original call, and failed renders can be retried. Delegated tasks running beyond two minutes keep the call and original request alive instead of disconnecting or replaying tools.
Live audio mixes with music on iOS and uses speech-triggered medium ducking. Legacy voice-turn notifications no longer pause music during an active Live call; explicit music controls remain available. Ending Live preserves active Apple Music playback while releasing microphone use.
Validation:
Full spoken image search/generation on the newly installed phone still needs a device smoke test. See
docs/gpt-live.mdfor setup and validation details.