Releases: comppolicylab/pingpong
v7.16.1
Release Notes
This update provides important bug fixes and improvements.
Anonymous Sessions
Resolved Issues
- Fixed: Removing an anonymous session link may fail because of lazy loading updates.
Internal
Updates & Improvements
- Make the test config secret signing key longer to fix InsecureKeyLengthWarning.
- Added
audioop-ltsdependency for Python 3.13 compatibility. - Updated
pytest.inito suppress deprecation warnings related toaudioop. - 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
- chore: fix InsecureKeyLengthWarning in test by @ekassos in #1399
- chore: update dependencies and add audioop-lts support by @ekassos in #1400
- deps(py-dev): bump locust from 2.43.2 to 2.43.3 in the development-dependencies group by @dependabot[bot] in #1404
- deps(web-dev): bump the development-dependencies group in /web/pingpong with 7 updates by @dependabot[bot] in #1402
- deps(web): bump dotenv from 17.2.4 to 17.3.1 in /web/pingpong in the production-dependencies group by @dependabot[bot] in #1401
- deps(py): bump the production-dependencies group across 1 directory with 4 updates by @dependabot[bot] in #1405
- deps(py): bump openai from 2.20.0 to 2.21.0 in the production-dependencies group by @dependabot[bot] in #1408
- deps(web-dev): bump the development-dependencies group in /web/pingpong with 2 updates by @dependabot[bot] in #1407
- deps(gha)/ bump the github-actions group with 2 updates by @dependabot[bot] in #1406
- deps(web-dev): bump svelte from 5.51.0 to 5.51.2 in /web/pingpong in the development-dependencies group by @dependabot[bot] in #1410
- fix: assistant share links cannot be unshared by @ekassos in #1411
Full Changelog: v1032+srv534.web352...v1043+srv540.web356
v7.16
Release Notes
This update provides important bug fixes and improvements.
Internal
New Features
- Introduces a Lecture Video assistant mode for upcoming features.
- Adds support for creating and updating assistants, including associating a lecture video from a video store.
Notes
- Creating and editing a Lecture Video assistant will become available in preview in the PingPong web client with a future update. Only admins will be able to create and edit Lecture Video assistants during the preview period.
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:
Lecture_Videointeraction mode, create/update assistant endpoint upgrades by @SamAnkam in #1363
Full Changelog: v1030+srv533.web352...v1032+srv534.web352
v7.15.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
- internal(workflows): tune commit tag build # increment rules by @ekassos in #1395
- deps(py): bump the production-dependencies group with 2 updates by @dependabot[bot] in #1398
- deps(web-dev): bump the development-dependencies group in /web/pingpong with 4 updates by @dependabot[bot] in #1397
- deps(web): bump marked from 17.0.1 to 17.0.2 in /web/pingpong in the production-dependencies group by @dependabot[bot] in #1396
Full Changelog: v1026+srv532.web350...v1030+srv533.web352
v7.15.1
Release Notes
This update provides important bug fixes and improvements.
Threads
Resolved Issues
- Fixed: After the first message, sending a thread message with file search attachments may fail to send.
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: v1024+srv530.web349...v1026+srv532.web350
v7.15
Release Notes
This update provides important bug fixes and improvements.
Canvas Connect
Updates & Improvements
- Adds warnings when LTI launch cannot attach an identity because it is already owned by another account.
External Logins
New Features
- Enforce global uniqueness for External Logins. Cross-user duplicate external identities are now blocked by design.
replace_existing=Falsestill allows multiple identifiers for the same user/provider (important for LTI issuer/sub history).
Internal
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| YES | No | No | No | No |
Deployment Details
- Schema Upgrade: New
uq_external_logins_provider_id_identifier_global,uq_external_logins_provider_identifierunique constraints.
Related PRs
- deps(py): bump the production-dependencies group with 2 updates by @dependabot[bot] in #1392
- feat: Enforce global External Login uniqueness by @ekassos in #1393
Full Changelog: v1021+srv527.web348...v1024+srv530.web349
v7.14.1
Release Notes
This update provides important bug fixes and improvements.
Canvas Connect
Updates & Improvements
- Remove legacy
AddUserExceptionpathway of adding External Login SSO identifiers during LTI launches since these identifiers are already added beforeAddUserExceptionis initiated.
External Logins
Updates & Improvements
- Skip moving duplicate email ExternalLogin records that already exist on the target user to prevent merge-time unique-constraint errors, while still moving non-conflicting email logins. This is a fail-safe since routes to add ExternalLogin emails check for duplicates.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
What's Changed
Full Changelog: v1019+srv525.web347...v1021+srv527.web348
v7.14
Release Notes
This update provides important bug fixes and improvements.
Canvas Connect
Updates & Improvements
- LTI launch now returns a hard
409 Conflictwhen external identity lookup is ambiguous (no email-only fallback).
External Logins
Updates & Improvements
- Add-users identity lookup now returns a hard
409 Conflictwhen ambiguous (no email-only fallback).
Resolved Issues
- Fixed: Merging users when both accounts already have the same external login may fail.
Internal
Updates & Improvements
- Added new CLI command to surface account identity collisions:
poetry run python -m pingpong db find_external_login_conflicts.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- fix: prevent duplicate external login collisions during merge by @ekassos in #1389
- feat: improve external login conflicts handling by @ekassos in #1390
Full Changelog: v1016+srv522.web346...v1019+srv525.web347
v7.13
Release Notes
This update introduces support for syncing Canvas Connect rosters, along with other bug fixes and improvements.
Canvas Connect
New Features
- PingPong group user lists can now be synced with Canvas Connect rosters on a set schedule or manually.
- As with manual LTI launches from the course navigation, Canvas Connect roster syncs fetch available SSO information, as determined during the tool registration, along with the stable LTI user IDs.
- The required
resource_link_idis saved when a user launches PingPong from Canvas, or is retrieved from the first page of the Names and Role API response as a fallback. The fallback works because all Canvas course navigation placements share the samecontext_idas theresource_link_id. See this Instructure Community discussion for more details.
Resolved Issues
- Fixed: Canvas Connect cross-installation linking based on the Canvas instance ID may fail because incomplete Canvas Connect course links are considered for matching.
External Logins
New Features
- When merging user accounts, login emails from accounts that are about to be merged into the primary account are added as secondary login emails.
Updates & Improvements
- When adding new users, more than one external login identifiers can be specified at the user level. Providers can be different per user, including users with no external login identifiers to be added. Previously, only a single identifier was allowed per user from a single provider for all users.
UI
New Features
- Use the new Canvas Connect sync roster button to sync all linked Canvas Connect courses at once. Similar to Canvas Sync, rate limits apply.
- Use the new quick Sync roster button to trigger a sync with Canvas Connect or Canvas Sync without opening the detail view in Manage Group page.
Internal
Updates & Improvements
- Centralized shared constants for LTI launch and Canvas Connect NRPS sync and shared LTI role helpers.
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: v1014+srv520.web344...v1016+srv522.web346
v7.12.1
Release Notes
This update provides important bug fixes and improvements.
Internal
New Features
- Adds new release workflow that updates package versions as well.
Updates & Improvements
- Change tagging schema for commit tags. GitHub uses these tags to order releases and mark latest release, as needed.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| No | No | No | No | No |
Deployment Details
- N/A
Related PRs
- chore(workflow): update tags to follow GH semver by @ekassos in #1386
- internal: create release workflow by @ekassos in #1387
- fix(workflow): improve taggable commit detection in release workflow by @ekassos in #1388
Full Changelog: 1013-srv519-web343...v1014+srv520.web344
v7.12
Release Notes
This update provides important bug fixes and improvements.
Canvas Connect
New Features
- Added a cleanup migration utility for existing orphaned Canvas Connect records (records with no linked PingPong group) so stale links from past deletions can be removed safely.
Resolved Issues
- Fixed: When a PingPong group is deleted, associated linked Canvas Connect course records may remain and the PingPong navigation link in Canvas may become non-functional.
- Fixed: LTI launch may reuse an unlinked LTI row from a different registration/client, which might apply stale registration metadata or cause valid institution choices to be rejected.
Internal
New Features
- BaseVideoStore, S3VideoStore, and LocalVideoStore classes for upcoming features.
Updates & Improvements
- Dependency upgrades.
Deployment Information
| Schema Upgrade | Migration Script | Permissions Update | Task Definition Update | Configuration Update |
|---|---|---|---|---|
| YES | YES | No | No | YES |
Deployment Details
- Schema Upgrade: Update
lti_classes_class_id_fkeyfromondelete="SET NULL"toondelete="CASCADE". - Migration Script: Added a cleanup command for orphaned LTI class links:
python -m pingpong db m06_cleanup_orphaned_lti_classes(supports--dry-run). - Configuration Update: Set up S3VideoStoreSettings or LocalVideoStoreSettings in video_store in Config object. Defaults to None, so no configuration update is immediately required.
Related PRs
- feat: (
Base/S3/Local)VideoStoreclass by @SamAnkam in #1351 - fix(lti): removing a group doesn't clean up LTI class by @ekassos in #1385
- deps(py): bump fastapi from 0.128.5 to 0.128.6 in the production-dependencies group by @dependabot[bot] in #1381
- deps(web-dev): bump svelte from 5.50.0 to 5.50.1 in /web/pingpong in the development-dependencies group by @dependabot[bot] in #1380
- deps(web): bump isomorphic-dompurify from 2.35.0 to 2.36.0 in /web/pingpong in the production-dependencies group by @dependabot[bot] in #1379
- deps(py): bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in #1382
Full Changelog: 1007-srv515-web341...1013-srv519-web343