New Features

  - Provider-consumer messaging on orders — Two-way messaging between providers and consumers on pending orders, with rejection comment fields [WAL-9704]
  - Identity Bridge API — Push-based ISD user attribute sync endpoint [WAL-9658]
  - AI assistant chat logs — Logging and management of AI assistant conversations in the support view [WAL-9702, WAL-9655]
  - System logs view — Collecting and displaying latest Mastermind logs in admin UI [WAL-9593]
  - Provider approval dialog — Providers can review and modify resource options during order approval
  - Offering activation by SP — Service providers can activate offerings via feature flag
  - SP resource state management — Service providers can set resource state to OK [WAL-9723]
  - SP lifecycle operations config — Expanded offering management config to gate all lifecycle operations
  - Onboarding checklists — Easy setup and management of onboarding checklists [WAL-9533, WAL-9681]
  - SCIM sync button — SCIM sync action in settings view [WAL-9701]
  - Disclaimer area — Configurable disclaimer with logo and text in footer
  - Hide marketplace for end users — Feature toggle to disable marketplace UI for non-staff users
  - Hide organization info — Feature toggle to hide organization-level info from project-level members
  - Project digest toggle — ENABLE_PROJECT_DIGEST setting and feature flag
  - Order cost estimate — estimate_renewal endpoint with detailed cost breakdown, plus UX improvements
  - Duplicate invitation warning — Mechanism to inform invitation creator about duplicate invitations [WAL-9618]
  - Group invitation custom text — Custom text field on group invitations, hide creator on public invitations
  - Organization registry code — New registry code field on user profile, exposed in Order API
  - Offering tag filtering — Pass tag_name URL query param on public offerings page
  - Offering backend_id validation — Offering-level backend_id validation rules [HPCMP-424]
  - Restrict resource deletion — Plugin option to prevent deletion when active resources exist [HPCMP-428]
  - Onboarding filters — More filters and ordering for onboarding models [WAL-9706]
  - OIDC email failover — Email-based failover user matching for OIDC authentication
  - OFFERING_USER events — Publish events on user profile attribute changes
  - Audit log for aggregates — Audit log events for aggregate components [WAL-1961]
  - Contact permission — Separate CUSTOMER_CONTACT_UPDATE permission for updating contact info [WAL-9365]
  - Organization nav tabs — Reorganized organization navigation tabs
  - LLM-friendly SDK docs — Auto-generated LLM-friendly documentation for Python SDK
  - SLURM policy re-evaluation — Trigger SLURM policy re-evaluation when resource limits increase on downscaled/paused resources

  Bug Fixes

  - Fix Arrow vendor offering mapping serializer to accept UUIDs
  - Fix cost policy bypass for first resource allocation
  - Fix GDPR config to filter first_name and last_name together with full_name [WAL-9725]
  - Fix login redirect when auth token is expired [WAL-9676]
  - Fix infinite re-render crash when opening drawers on Resources tab [WAL-9708]
  - Fix DiffEditor model disposal order on unmount [CSCS-274]
  - Fix echarts crash when chart container is null after unmount
  - Fix offering filter sync to URL
  - Fix pricing display for daily-billed offerings
  - Preserve fractional values in resource component usage display
  - Hide resource actions from users lacking required permissions
  - Respect display_billing_info_in_projects in change limits dialog
  - Improve permission error tooltips for team member management
  - Scope customer detail data to user-visible projects

  Performance

  - Fix N+1 queries on /api/users/, service provider endpoints, public offerings endpoint, and usage task
  - Cache system role lookups to eliminate N+1 queries on public offerings endpoint
  - Replace is_equal task deduplication with cache-based locking for background tasks [WAL-9707]

  Maintenance

  - Remove django-admin-tools and django-fluent-dashboard [WAL-9682]
  - Remove address from contact endpoint [WAL-9365]
  - Move eduTEAMS refresh token rotation to Celery Beat [WAL-9689]
  - Disable update/partial-update on ServerGroupViewSet
  - Migrate test classes from APITransactionTestCase to APITestCase for faster CI
  - Temporarily disable SBOM generation