update Jan 8th#144
Conversation
…rovement Feature/study buddy UI improvement
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 435ac9c87c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| aiName: text("ai_name"), | ||
| aiGender: text("ai_gender"), | ||
| aiAvatarUrl: text("ai_avatar_url"), |
There was a problem hiding this comment.
Add migration for ai_avatar_url column
This commit adds aiAvatarUrl to the studyAgentProfile schema, but there is no corresponding migration updating the actual Postgres table (a repo-wide search for ai_avatar_url only finds this schema line). If a deployed database doesn’t already have that column, any profile SELECT/INSERT/UPDATE will error with “column does not exist,” breaking the study-agent profile endpoints after release. Please add a drizzle migration that alters study_agent_profile to include ai_avatar_url so the schema stays in sync.
Useful? React with 👍 / 👎.
| } else { | ||
| console.log("🔊 [VoiceChat] Using blob playback"); | ||
| const audioBlob = await response.blob(); | ||
| const audioUrl = URL.createObjectURL(audioBlob); | ||
|
|
||
| const audio = new Audio(audioUrl); | ||
| audioRef.current = audio; | ||
| setupAudioHandlers(audio, audioUrl); | ||
|
|
||
| await audio.play(); |
There was a problem hiding this comment.
Set ttsStartedAtRef for blob playback path
VoiceChat’s interruptTTS intentionally ignores VAD interrupts within the first 200ms based on ttsStartedAtRef, but in the blob playback fallback this ref is never set. On browsers that hit this path (e.g., Firefox/macOS or Safari where MediaSource is disabled), VAD can immediately interrupt the newly started TTS playback, cutting off responses prematurely. Set ttsStartedAtRef.current = performance.now() before audio.play() in the blob path as well to preserve the same guard.
Useful? React with 👍 / 👎.
No description provided.