Releases: comppolicylab/pingpong
v7.52
Release Notes
This update provides important bug fixes and improvements.
Lecture Videos (Preview)
Note
This release adds new capabilities for Lecture Videos, which remain under active development and are not yet officially supported in Groups. APIs, features, and UI/UX may change before final release.
Lecture Video mode is currently visible only to institutional admins when creating an assistant.
New Features
- Request regeneration of narration tracks only, under Advanced Options. Requesting a manifest regeneration is still available and will also regenerate the narration tracks.
Updates & Improvements
- When updating the assistant's Voice ID, the UI will note that narration tracks will be regenerated. There is no change in server behavior.
Resolved Issues
- Fixed: After sending a chat message, resuming the lecture video from the player may not hide the "continue watching" prompt in the chat.
Internal
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- deps(py): bump the uv-prod-minor-patch group with 3 updates by @dependabot[bot] in #1757
- deps(py): update openai[realtime] requirement from ~=2.37.0 to ~=2.38.0 by @dependabot[bot] in #1758
- deps(gha): bump the github-actions group with 3 updates by @dependabot[bot] in #1754
- deps(web): bump the pnpm-prod-minor-patch group in /web/pingpong with 2 updates by @dependabot[bot] in #1755
- deps(web-dev): bump @types/node from 25.9.0 to 25.9.1 in /web/pingpong in the pnpm-dev-minor-patch group by @dependabot[bot] in #1756
- feat(lv): request audio only regeneration by @ekassos in #1760
- fix(lv): dismiss "continue watching" button from player by @ekassos in #1759
Full Changelog: v1345+srv687.web506...v1351+srv690.web509
v7.51
Release Notes
This update provides important bug fixes and improvements.
Lecture Videos (Preview)
Note
This release adds new capabilities for Lecture Videos, which remain under active development and are not yet officially supported in Groups. APIs, features, and UI/UX may change before final release.
Lecture Video mode is currently visible only to institutional admins when creating an assistant.
New Features
- The Lecture Video player now includes an option to view subtitles based on the Whisper audio transcription.
- Turn captions on or off from the video controls. Caption preferences are remembered across lecture videos.
- Lecture video captions use more natural punctuation when generated from transcripts.
- Lecture Video assistants can show math and notation with LaTeX while speaking a natural-language version during narrated responses.
- Message history, thread exports, and generated audio use the appropriate written or spoken version of Lecture Video assistant responses.
- Lecture Video chats can show suggested follow-up responses after an assistant reply, making it easier for students to continue the conversation.
- Suggested follow-up responses are preserved when reopening a Lecture Video chat and stay separate from the assistant’s displayed message text.
- Lecture Video assistants can now show Mermaid and SVG diagrams and narrate a short natural description instead of reading the diagram code aloud.
- Lecture Video assistant instructions now use a unified speech/display block format for math, symbols, Mermaid diagrams, SVG diagrams, and follow-up suggestions.
Updates & Improvements
- Lecture Video assistants now automatically use LaTeX and advanced markup so written responses and spoken narration stay aligned.
- Assistant prompt previews now include the Lecture Video spoken/written output instructions.
- Existing Lecture Video conversations use the latest assistant formatting guidance for new responses, so updates to LaTeX, diagrams,
saysnippets, and follow-up behavior apply without recreating the conversation. - Improved Lecture Video response formatting so math, symbols, Mermaid diagrams, and SVG diagrams can have separate spoken and visible versions.
- Lecture Video responses can now include display-only content without requiring silent speech text.
- Lecture Video text-to-speech now flushes spoken audio before long visual-only diagram content and follow-up suggestions.
- Use one of the provided starter questions to start a chat with the assistant when no user message has been sent.
Resolved Issues
- Fixed: Spoken lecture-video responses may stop early when generated audio arrives with a brief gap between chunks.
- Fixed: Some Lecture Video responses with malformed, incomplete, or split speech/display formatting may leak internal formatting markers or drop later follow-up suggestions.
- Fixed: Spoken narration before Mermaid or SVG diagrams may be delayed while the system waits for the full diagram content.
- Fixed: Lecture Video text-to-speech state may carry over incorrectly after a mid-response flush.
- Fixed: Lecture Video responses with missing speech text in display-only blocks may be treated as malformed.
- Fixed: Emoji and other characters represented by Unicode surrogate pairs may not render correctly in Lecture Video speech/display formatting.
Connectors (Under Development)
Note
This release adds primitives for Connectors, an upcoming PingPong feature under active development. Connectors are not yet exposed in the main app interface. APIs, features, and UI/UX may change before final release.
New Features
- PingPong will introduce support for Connectors in a future release. Connectors are PingPong-owned MCP wrappers for services that may not expose their own remote MCP servers.
- Introducing the shared Connectors connection layer for OAuth-based provider account linking.
- Panopto is the first Connector supported by this connection layer.
- Connector accounts can store per-user external identities and refreshable access tokens for future provider-backed features.
- Admins can manage connector configurations from the Admin page.
- Admins can create and edit Panopto connector configurations, including tenant, host, client ID, client secret, display name, and enabled status.
- Connector configurations are validated against the provider before they are saved, with clear errors for unreachable hosts, invalid OIDC endpoints, and invalid client credentials.
Internal
Updates & Improvements
- Silence
INFO:watchfiles.main:X changes detectedlogs for uninteresting files when runninguvicorn --reload. We already displayWARNING: WatchFiles detected changes in 'X'. Reloading…messages. Introduced after upgradinguvicorn~=0.47.0in #1724. - Dependency upgrades.
Resolved Issues
- Fixed:
create-worktree.shmay fail to create a new worktree because the script may not identify the latest OpenFGA model version.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| YES | YES | No | No | No |
Deployment Details
- Schema Upgrade: New connectors table, lecture_video_caption_stored_objects, and setting lecture video assistants
use_latex=True. - Migration Script:
m10_backfill_lecture_video_captions.
Related PRs
- deps(py): bump idna from 3.11 to 3.15 by @dependabot[bot] in #1732
- feat(lv): add transcript option by @ekassos in #1740
- deps(web-dev): bump @sveltejs/kit from 2.59.1 to 2.60.1 in /web/pingpong by @dependabot[bot] in #1739
- deps(py): update openai[realtime] requirement from ~=2.36.0 to ~=2.37.0 by @dependabot[bot] in #1728
- deps(gha): bump the github-actions group with 3 updates by @dependabot[bot] in #1722
- deps(web): bump the pnpm-prod-minor-patch group across 1 directory with 4 updates by @dependabot[bot] in #1741
- deps(py): bump cryptography from 47.0.0 to 48.0.0 by @dependabot[bot] in #1726
- deps(py): bump the uv-prod-minor-patch group with 5 updates by @dependabot[bot] in #1724
- deps(py-dev): bump locust from 2.43.4 to 2.44.0 in the uv-dev-minor-patch group by @dependabot[bot] in #1725
- deps(web-dev): bump the pnpm-dev-minor-patch group across 1 directory with 13 updates by @dependabot[bot] in #1742
- deps(web): bump brace-expansion from 5.0.5 to 5.0.6 in /web/pingpong by @dependabot[bot] in #1721
- feat(lv): "say" snippets for spoken language by @ekassos in #1743
- feat(lv): show follow-up suggestions by @ekassos in #1744
- feat(lv): include instructions during run by @ekassos in #1745
- chore(dev): silence watchfiles INFO logs by @ekassos in #1747
- chore(dev): use correct auth model by @ekassos in #1748
- feat(lv): single pua transformer by @ekassos in #1746
- feat(lv): include starter questions by @ekassos in #1749
- feat: introducing connectors + panopto auth implementation by @ekassos in #1750
- feat(connect): admin panel by @ekassos in #1751
- change(lv): simplify thread instructions by @ekassos in #1752
- chore: fix tests by @ekassos in #1753
Full Changelog: v1327+srv673.web498...v1345+srv687.web506
v7.50
Release Notes
This update provides important bug fixes and improvements.
Voice Mode
New Features
- Introducing support for GPT Realtime Whisper, OpenAI's most capable transcription model.
- Control which model is used for Realtime transcription under the assistant's Advanced Options.
Lecture Videos (Preview)
Note
This release adds new capabilities for Lecture Videos, which remain under active development and are not yet officially supported in Groups. APIs, features, and UI/UX may change before final release.
Lecture Video mode is currently visible only to institutional admins when creating an assistant.
New Features
- During Knowledge Checks users can seek through the video segment they have already watched.
Updates & Improvements
- Updated Gemini manifest generation model to
gemini-3.5-flash. - Knowledge Check answers are submitted immediately when clicked on without needing confirmation.
- When the video stops at a knowledge check, the "Answer the comprehension check to continue" overlay appears for a short time before showing the full lecture video frame.
Resolved Issues
- Fixed: When seeking backward during an active knowledge check, submitting an answer may cause the voice feedback and video audio to play at the same time.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| YES | No | No | No | No |
Deployment Details
- Schema Upgrade: New column to save transcription model in assistants table.
Related PRs
- feat(lv): update manifest generation model by @ekassos in #1734
- feat(lv): submit kc without confirmation by @ekassos in #1735
- feat(voice): gpt-realtime-whisper by @ekassos in #1737
- feat(lv): allow seeking back on question time by @ekassos in #1736
- feat(lv): hide video playback during answer by @ekassos in #1738
Full Changelog: v1321+srv671.web494...v1327+srv673.web498
v7.49
Release Notes
This update provides important bug fixes and improvements.
Data & Sharing
Resolved Issues
- Fixed: Non-published threads may not be included in thread exports.
- Fixed: A thread created in anonymous session by a logged in user may appear more than once in thread exports.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
Full Changelog: v1319+srv670.web494...v1321+srv671.web494
v7.48
Release Notes
This update provides important bug fixes and improvements.
Data & Sharing
New Features
- Data exports include information about the Shared Link used to create the conversation, if applicable.
- Use the new date filter in thread exports to include conversations active in a specific date range in your exports.
- Use the new assistant filter in thread exports to include conversations from specific assistants in your exports.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- feat(exports): include share link details by @ekassos in #1729
- feat(exports): allow filtering by activity by @ekassos in #1730
- feat(export): allow filtering by assistant by @ekassos in #1731
Full Changelog: v1315+srv667.web492...v1319+srv670.web494
v7.47.2
Release Notes
This update provides important bug fixes and improvements.
Internal
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- deps(web-dev): bump svelte from 5.55.5 to 5.55.7 in /web/pingpong by @dependabot[bot] in #1720
- deps(web): bump devalue from 5.8.0 to 5.8.1 in /web/pingpong by @dependabot[bot] in #1719
Full Changelog: v1312+srv667.web490...v1315+srv667.web492
v7.47.1
Release Notes
This update provides important bug fixes and improvements.
Internal
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- deps(py): bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in #1712
- deps(web): bump the pnpm-prod-minor-patch group in /web/pingpong with 2 updates by @dependabot[bot] in #1713
- deps(gha): bump the github-actions group with 5 updates by @dependabot[bot] in #1714
- deps(py): bump the uv-prod-minor-patch group with 2 updates by @dependabot[bot] in #1716
- deps(web-dev): bump the pnpm-dev-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in #1715
- deps(web): bump mermaid from 11.14.0 to 11.15.0 in /web/pingpong by @dependabot[bot] in #1717
Full Changelog: v1306+srv665.web487...v1312+srv667.web490
v7.47
Release Notes
This update provides important bug fixes and improvements.
Voice Mode
Updates & Improvements
- Voice Mode recordings now use unique storage keys so a later recording attempt on the same thread cannot overwrite or delete a previous recording file.
- Voice Mode now isolates recording metadata writes in a database savepoint, so a recording metadata error does not roll back saved realtime transcript messages.
- If a recording already exists for a thread, PingPong now updates the recording metadata to the latest completed upload while leaving the previous recording file intact. A clean-up plan for overwritten recordings will be added at a later time.
- Added additional recording diagnostics to help monitor thread IDs, recording IDs, replaced recordings, and finalized-session rejections.
Resolved Issues
- Fixed: Starting the same Voice Mode session twice may, in rare cases, cause a recording metadata error that deletes a previously saved recording file.
- Fixed: Starting the same Voice Mode session twice in Next-Gen Assistants mode may, in rare cases, cause a recording metadata error that prevents transcript messages from being saved to the database.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
Full Changelog: v1304+srv664.web487...v1306+srv665.web487
v7.46
Release Notes
This update provides important bug fixes and improvements.
Voice Mode
Updates & Improvements
- Improved interruption handling so saved recordings better match the audio users actually heard.
Resolved Issues
- Fixed: In rare cases, Voice Mode recordings may fail to save.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
Full Changelog: v1302+srv663.web486...v1304+srv664.web487
v7.45
Release Notes
This update adds support for the latest reasoning Voice Mode models, along with other bug fixes and improvements.
Next-Gen Assistants
Updates & Improvements
- PingPong will now selectively filter assistant message annotations to ensure messages are accepted by the Responses API. When annotations of multiple types are included in the output message, PingPong will selectively send a single type of annotations as input in the following priority order: Code Interpreter files from unexpired containers, File Search results, URL citations, File Paths. Code Interpreter files from expired containers will never be included in the input object, similar to Code Interpreter tool calls from expired containers.
Resolved Issues
- Fixed: User follow-up messages to assistant responses that contain both File Search and Web Search annotations may fail to send.
- Fixed: Code Interpreter file annotations may save the incorrect OpenAI file ID in the annotation object, which may be later rejected by the API.
Voice Mode
New Features
- Introducing support for GPT Realtime 2 in Voice Mode. GPT Realtime 2 supports speech-to-speech interactions with configurable reasoning effort and stronger instruction following.
- Configure how long the model thinks before responding under Advanced Options.
Updates & Improvements
- Voice Mode now supports safer interruption handling when users speak over an assistant response.
- Voice Mode recordings wait for browser audio playback to finish before saving the final recording.
- Interrupted Voice Mode responses save only the assistant audio that was actually generated and played.
- Added additional checks to prevent users from inadvertently restarting an existing session after they have completed it, which may overwrite previous recordings.
- Realtime model sessions include PingPong’s safety identifier where available.
- Reorganized assistant Advanced Options so Voice Mode recording, reasoning, temperature, verbosity, and file controls to appear in a more consistent order.
Internal
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- deps(py): bump cryptography from 46.0.7 to 47.0.0 by @dependabot[bot] in #1700
- deps(py): bump elevenlabs from 2.44.0 to 2.45.0 in the uv-prod-minor-patch group by @dependabot[bot] in #1699
- deps(web): bump the pnpm-prod-minor-patch group in /web/pingpong with 4 updates by @dependabot[bot] in #1697
- deps(gha): bump the github-actions group with 3 updates by @dependabot[bot] in #1696
- deps(py): bump python-multipart from 0.0.26 to 0.0.27 by @dependabot[bot] in #1703
- deps(web-dev): bump the pnpm-dev-minor-patch group across 1 directory with 10 updates by @dependabot[bot] in #1705
- deps(py): bump the uv-prod-minor-patch group across 1 directory with 5 updates by @dependabot[bot] in #1704
- feat(next): selective annotation inclusion in input by @ekassos in #1707
- deps(py): upgrade mako to 1.3.12 by @ekassos in #1708
- feat(voice): gpt-realtime-2 by @ekassos in #1709
Full Changelog: v1293+srv656.web484...v1302+srv663.web486