What shipped
All reposKey FrontendKeystoneKey Service Sites (KSL/GHK)Training Centre (STC/CPD)Key ProtosKeyflowCompany Backend (Strapi)Key Docs
All authorsJoshYG-TheKeyRhadamanthus1TheTomWardalex-wilson-the-keycpoteylunky84robin-agentsarahcthekey
23 PRs · 4 repos · 7 contributors · 29 Jun – 6 Jul
Monday, 6 July 2026
Key Frontend
- JJoshYG-TheKeyThe frontend now displays AI-generated answers with styled source links to knowledge documents, enabling users to see where KeyGPT found its information.#2109 — feat(sources): PENG-3401 apply keydoc-aware source styling to KeyGPT messages
Key Protos
- Llunky84A new API endpoint was added to allow services to check whether feature flags are enabled for a specific organization without needing to duplicate that logic everywhere.#124 — PENG-3540 add IsFeatureFlagEnabled rpc
Keystone
- Rrobin-agentKeystone's gRPC calls now have timeouts to prevent workers from hanging indefinitely on slow services, retries for transient failures, and the assignment cleanup moved off the blocking request path.#1497 — feat: PENG-3675 gRPC deadlines, retries & async assignment cleanup (supersedes #1496)
Training Centre (STC/CPD)
- Rrobin-agentThe training_centre service added timeouts and automatic retries to its gRPC calls so transient service issues don't silently break course completion flows.#1964 — feat: PENG-3675 add deadlines and native gRPC retries to service clients
- RRhadamanthus1The almanac calendar management tool was restored to the training_centre codebase after it was accidentally deleted during a code cleanup.#1965 — fix(almanac): PENG-3499 restore almanac wagtail admin
Thursday, 2 July 2026
Key Frontend
- CcpoteyRestored a missing academic year filter that wasn't appearing when viewing school organization pages in group workspaces.#2120 — fix(3674): add missing academic year picker
- Rrobin-agentEnabled administrators to assign coming-soon training items in advance and fixed the My Training notification badge to exclude those items that aren't yet available.#2108 — feat: PENG-3648 make coming-soon items selectable and fix badge count
- TTheTomWardUpdated user-facing text on training records pages to provide clearer information to end users.#2119 — fix(update-copy): PENG-3603 Update copy for better info on training records
Key Protos
- JJoshYG-TheKeyAdded optional publish date filters to the chat search request protocol so articles can be filtered by when they were last updated.#118 — feat(ai_search): add published_after/before to ChatSearchRequest
- Rrobin-agentIncluded the publication status of training items in API responses so downstream services can see whether items are published or coming-soon.#117 — feat: PENG-3648 add status field to HydratedTrainingItem
- Aalex-wilson-the-keyAdded a missing external links data type to support KCSIE compliance features in the training assignment system.#120 — feat(assign-KCSIE-2): PENG-3668 Added external links data type with kcsie again
Keystone
- Rrobin-agentAutomatically deleted orphaned training assignments when a user account is permanently removed from the system to prevent data inconsistencies.#1494 — feat(signals): PENG-3643 delete assignments when KeyUser is deleted
Training Centre (STC/CPD)
- Rrobin-agentPrevented accidental changes to SCOID identifiers on training pages once registrations exist, which was breaking the ability to sync completion data from ScormCloud.#1960 — fix: PENG-3637 prevent SCOID changes when registrations or results exist
- Llunky84Modified certificate downloads to reference training results through their unique IDs instead of a separate certificates table for better data consistency.#1962 — PENG-3540 certificates pass elearning result id
Wednesday, 1 July 2026
Key Frontend
- Llunky84The frontend now includes a record ID in API requests for certificate retrieval, enabling the system to fetch certificates based on specific record identifiers.#2116 — PENG-3540 certificates from record id
Key Protos
- Aalex-wilson-the-keyThe system now supports external links as a new assignment type, allowing users to assign government documents like KCSIE files as required reading with a corresponding external link identifier.#119 — feat(protos): PENG-3668 add EXTERNAL_LINK assignment type and identifier fields
Keystone
- Llunky84User authentication now bypasses caching during password resets so that login immediately validates against the new password hash instead of stale cached credentials.#1493 — PENG-3667 fix reset password stop caching KeyUser
Training Centre (STC/CPD)
- Llunky84The e-learning certificate API now exposes the record ID so clients can identify which e-learning result each certificate corresponds to.#1961 — PENG-3540 certificates from record id
Tuesday, 30 June 2026
Key Frontend
- Aalex-wilson-the-keyRemoved a temporary restriction on training assignment creation that is no longer needed.#2115 — Revert " PENG-3663 assign training academic year date restriction"
- Llunky84Fixed certificate downloads to match what's actually displayed in the table by reusing existing download logic instead of re-querying the server with different filters, and cleaned up orphaned code.#2114 — 3540 certificates download refinements
- Llunky84Added a restriction to prevent training assignments from being created beyond the current academic year.#2113 — PENG-3663 assign training academic year date restriction
- Llunky84Unified certificate downloads across multiple apps by routing them through the orchestration service and consolidated duplicated code into shared utilities.#2107 — 3540 call orca service for certificates
Monday, 29 June 2026
Training Centre (STC/CPD)
- Rrobin-agentTraining content marked as 'new' will now automatically stop appearing as new after 2 months, eliminating the need for manual updates and preventing stale content from being labeled as fresh.#1959 — feat: PENG-3652 auto-expire is_new label after 2 months