Skip to content

Remove deprecated legacy frontend code, UserProfile, and Twilio SMS#967

Closed
alexdlaird wants to merge 4069 commits into
developfrom
feature/legacy-shutdown-2026-08-01-v2
Closed

Remove deprecated legacy frontend code, UserProfile, and Twilio SMS#967
alexdlaird wants to merge 4069 commits into
developfrom
feature/legacy-shutdown-2026-08-01-v2

Conversation

@alexdlaird

@alexdlaird alexdlaird commented May 12, 2026

Copy link
Copy Markdown
Member

Removes everything in platform marked deprecated for the legacy frontend, plus the UserProfile model (only held phone fields) and the Twilio SMS integration. Lands alongside the Aug 1, 2026 frontend-legacy shutdown.

The email-alias rework that originally lived on this branch was cherry-picked out and shipped independently on develop (commits e37a0ab..6599141) so the new frontend could ship the email-keyed wire format ahead of the cutover. Merging that develop work back in is what the latest merge commit does — both halves coexist correctly while legacy code is still here, and stand alone once legacy goes.

API

  • Drop /auth/token/legacy/, deprecated PUT /auth/user/profile/, deprecated GET /auth/user/pushtoken/<pk>/
  • Drop CourseScheduleAsEvents views and the deprecated DELETE on CourseScheduleApiDetailView
  • Drop legacy CSRF/CORS origins, user_legacy throttle, PROJECT_APP_LEGACY_HOST, FRONTEND_LEGACY_VERSION
  • Restore standard DRF UserRateThrottle (the custom helium.common.throttles.UserRateThrottle was legacy-only)
  • Reminder updates: PUT removed, PATCH-only
  • Registration: drop username from UserCreateSerializer (auto-generated from email)
  • material_group made read-only on MaterialSerializer
  • Deprecate POPUP/TEXT reminder types, alias to PUSH, shrink REMINDER_TYPE_CHOICES to (EMAIL, PUSH); import service forward-maps legacy type values

Models / services / CI

  • Delete UserProfile model and User.last_login_legacy field
  • Delete phoneservice, send_text task, process_text_reminders, text_reminders periodic task
  • Drop twilio from requirements.txt
  • Add deprecation comment to User.username (kept only because AbstractBaseUser requires USERNAME_FIELD; auto-generated from email)
  • Drop run_legacy_cluster_tests and the cluster-tests stage from release.yml/deploy.yml/build.yml

Linked PRs — do not merge before Aug 1, 2026

Merge in order — this PR last so the deploy doesn't 404 routes the legacy frontend is still calling:

  1. Move site to www.heliumedu.com; drop Helium Classic links www#2 — marketing site reconfigured for www (supersedes closed Fix build #1)
  2. Tear down legacy frontend hosting and Twilio (phase 1 of 2) infra#52 — infra phase 1 (tears down legacy hosting)
  3. Repoint marketing distribution to www.heliumedu.com (phase 2 of 2) infra#53 — infra phase 2 (points www at the marketing distribution)
  4. Remove heliumcli dependency (infra phase 3) infra#55 — infra phase 3 (removes heliumcli)
  5. This PR

Test plan

  • CI green
  • Migrations helium_auth/0061, helium_auth/0062, helium_planner/0051 apply cleanly on a copy of prod data
  • After deploy, POST /auth/token/legacy/ returns 404
  • After deploy, GET /planner/courseschedules/events/ returns 404

alexdlaird and others added 30 commits April 29, 2026 15:39
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Update docker-compose service images: MySQL upgraded from 8.0 to 9.7.0 and LocalStack upgraded from 4.13.1 to 2026.04.0. Environment variables and port mappings remain unchanged. Verify compatibility and run any required DB migrations or LocalStack config checks after deploying these newer images.
Change localstack image in docker-compose.yml from localstack/localstack:2026.04.0 to localstack/localstack:4.13.1. Pins the storage service to the specified LocalStack release; no other service configuration modified.
CI: Reorganized build workflow - removed duplicated Codecov uploads from the earlier job, added Python 3.12 setup and a `make docker-env test` step, and reintroduced Codecov upload steps in the later job. Reminder model: use Django's timezone.now().astimezone(user_tz) instead of datetime.datetime.now(user_tz) to ensure a timezone-aware current time. Tests: make the failing reminder test deterministic by mocking django.utils.timezone.now() to a fixed UTC datetime.
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Pin specific Docker image tags used in the integration CI job: replace redis:7-alpine with redis:7.2 and mysql:8 with mysql:9.7.0 in .github/workflows/integration.yml. This ensures consistent, explicit base images when pulling before building platform images.
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Replace individual docker pull commands in the CI pre-pull step with a single background "docker compose pull db cache storage" to centralize image pulls. Update docker-compose service images: db from mysql:9.7.0 to mysql:8.4 and cache from redis:7.2 to valkey/valkey:7.2. These changes align the CI pulls with the compose configuration and simplify image management.
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Update docker-compose.yml to use valkey/valkey:8.1 for the cache service (was 7.2). This upgrades the cache image to the 8.1 release; verify compatibility and run integration tests to catch any breaking changes.
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Switch onboarding duration emission from gauge to timing and enhance timing metrics with user context. authservice now calls metricutils.timing for onboarding.duration, and metricutils.timing was updated to accept a user argument and append authenticated and staff tags when available for better filtering in metrics backend.
Improve assertions around metricutils.timing in TestCaseUserViews: instead of relying on mock_timing.call_count or assert_called_once, filter mock_timing.call_args_list for calls with the 'onboarding.duration' key and assert there is exactly one such call. Also verify the duration argument is an int and that the call included the expected user kwarg. Add a small helper (onboarding_call_count) to simplify repeated checks when re-importing/clearing example schedules.
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Skip VEVENTs that lack a SUMMARY (considered malformed) by checking component.get("SUMMARY") and continuing when absent. Store the SUMMARY in a local variable for the event title and ensure comments default to an empty string instead of None to avoid propagating null values.
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Add a scheduled GitHub Actions workflow and tooling to periodically refresh the project IANA timezone allow-list. Introduces bin/refresh-timezones.py which unions pytz.common_timezones with any zones already on-disk and writes an auto-generated helium/common/timezones.py (TIME_ZONE_CHOICES) and the frontend time_zone_constants.dart. Makefile gains a refresh-timezones target that runs the generator and makemigrations. Replace the large in-file TIME_ZONE_CHOICES in helium/common/enums.py with an import from the new helium.common.timezones module. Add a Django migration (0057) updating UserSettings.time_zone choices. The workflow runs monthly (and on-demand) and will commit/push updated platform/frontend files, preserving legacy/deprecated aliases for backwards compatibility.
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
alexdlaird and others added 9 commits May 20, 2026 13:48
Add an Allow directive for /sitemap.xml so crawlers can access the sitemap despite the global Disallow: /. This ensures search engines can retrieve the sitemap referenced by the existing Sitemap directive.
- Allow /sitemap.xml in robots.txt
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add support portal link for syllabus import
- Merge main into develop
- OpenAPI auth ordering and JWT/token tweaks
- Improve token API docstrings
- Clarify API view docstrings and wording
- Add knox API token support and endpoints
- Merge main into develop
- Add API rate limits to SPECTACULAR_SETTINGS
- Merge main into develop
- Add JSM integration for support contact
- Merge main into develop
- Add public support contact endpoint
- Update support URLs to heliumedu.com/support
- Merge main into develop
- Allow /docs/ and /schema/ in robots.txt
- Remove user count properties
- Document frontend grading math dependency
- Update API docs meta descriptions
- Merge main into develop
- Use direct task.apply calls instead of async
- Adjust log messages and increase deployment timeout
- Merge main into develop
- Expose notes relation in serializers
- Merge main into develop
- Include exceptions when importing example schedules
- Add recurrence round-trip test and helper updates
- Add recurrence & exception dates to import
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add OpenAPI enum strip hook & update models
- Merge main into develop
- Add legacy username handling to UserSerializer
- Support iCal RDATE extras in import
- Refactor reminder exceptions, add iCal docstring
- Make Reminder.start_of_range read-only
- Normalize exception_dates and ignore CANCELLED
- Handle RECURRENCE-ID overrides by adding exception_dates
- Add recurrence & exception support for events
- Merge main into develop
- Update legacy-coexisting tests for server-controlled username
- Drop username from token endpoint OpenAPI example and curl snippet
- Drop unused username arg from send_verification_email
- Document email as the canonical auth identifier; keep username as alias
- Merge main into develop
- Send reg email on OAuth signup; trim template
- Merge main into develop
- Reduce email logo height; remove duplicate logo
- Update email template image URLs
- Fix wording, templates, and username validation
- Merge main into develop
- Add OpenAPI summaries to API view endpoints
- Add OpenAPI tag groups and update API tags
- Remove 'calendar.user' OpenAPI tag from views
- Merge main into develop
- Update API docs project description
- Require days_of_week and forbid midnight times
- Merge main into develop
- Clarify wording: homework and events
- Clarify planner models and API docs wording
- Merge main into develop
- Docs tweaks and migration for category/reminder
- Clarify Category.weight help_text behavior
- Replace typographic symbols and clarify docs
- Clarify import and REST ingestion guidelines
- Clarify resource/material naming in docs
- Set default '' for text and email fields
- Merge main into develop
- Improve planner models, serializers, and API docs
- Merge main into develop
- Gate analytics snippet with ANALYTICS_ENABLED
- Add docker-env prerequisite to build-docker
- Make test target depend on build-docs
- Merge remote-tracking branch 'origin/main' into develop
- Bump @redocly/cli to 2.30.x in Makefile
- Make Redoc analytics injection configurable
- Remove drf_spectacular_sidecar and extras
- Remove helium Redoc template and SIDECAR setting
- Add static Redoc, robots, and sitemap support
- Switch API docs from Swagger to ReDoc
- Merge main into develop
- Accept empty Quill delta; rename export keys
- Add Quill delta validator and tests
- Use resources instead of materials across app
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Improve import validation and note/material handling
- Merge main into develop
- Reject naive datetimes and schedule grade recalcs
- Remove homework-category FAQ entry
- Conditionally schedule reminder adjustments; docs update
- Clarify idempotency guidance for CourseGroups
- Add OpenAPI examples and expand API docs
- Remove 'profile' from user detail docstring
- Merge main into develop
- API documentation cleanup (#966)
- Merge main into develop
- Add SEO and social meta tags to Swagger UI
- Add custom Swagger UI template with Open Graph
- Fix README image path
- Rename label invalid-forum to invalid-support
- Shorten invalid-forum auto-comment
- Fix image URLs in README.md
- Capitalize timezone refresh commit messages
- Update README header images
- Merge main into develop
- Use JSON error handlers; remove error templates
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Consolidate Apple touch icons and update templates
- Merge main into develop
- Cancel in-progress runs only for PRs
- Restrict push to develop; run integration on main
- Run build on main; remove release integration tests
- Merge main into develop
- Extend /info API with token TTLs, OAuth providers, import types
- Bump twilio from 9.10.6 to 9.10.9 (#965)
- Merge main into develop
- Add JSON 404/500 handlers and test
- Condense clone docstrings & trim test comments
- Add clone APIs and services for planner items
- Remove 404.html error template
- Merge main into develop
- Remove continue-on-error from cleanup job
- Mark release cleanup as non-failing for the pipeline
- Bump twilio from 9.10.5 to 9.10.6 (#963)
- Bump django from 5.2.13 to 5.2.14 (#962)
- Merge main into develop
- Update U.S. Holidays calendar color
- Merge main into develop
- Add external calendar import; bump Redis to 7
- Remove Python version badge from README
- Merge main into develop
- Normalize all-day items on timezone change
- Normalize all-day events on timezone change
- Merge main into develop
- Canonicalize deprecated timezones, update choices
- Bump Django and pyOpenSSL versions
- Upgrade to Django 5.2 (#961)
- Merge branch 'main' into develop
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Add a short product blurb for Helium and center App Store and Google Play badges plus a Patreon support badge. Remove a duplicate "Helium Platform" heading and tweak the intro line to reference "Helium - Student Planner". Retains links to the API docs and released container images. Cosmetic/marketing improvements to README.
Add IntegrityError handling to SES reputation service: _record_bounce and _record_complaint now catch duplicate inserts, log a debug message and return early; other exceptions still log as failures.

Reduce noisy warnings to info for support contact paths: SupportContactThrottle and SupportContactView honeypot now log at INFO instead of WARNING.

WebhookSESView: import metricutils, increment a 'webhook.ses.sig_failed' metric on SNS verification failure, and lower non-JSON / TopicArn-mismatch logs to INFO.

HeliumAPIView: start request metrics earlier by calling metricutils.request_start(request) at the start of initial(), removing the duplicate call later. These changes reduce log noise and add metrics for signature failures while preventing duplicate reputation events.
- Handle duplicate SES events and adjust logs/metrics
- Update README with app badges and intro
- Merge main into develop
- Allow /sitemap.xml in robots.txt
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add support portal link for syllabus import
- Merge main into develop
- OpenAPI auth ordering and JWT/token tweaks
- Improve token API docstrings
- Clarify API view docstrings and wording
- Add knox API token support and endpoints
- Merge main into develop
- Add API rate limits to SPECTACULAR_SETTINGS
- Merge main into develop
- Add JSM integration for support contact
- Merge main into develop
- Add public support contact endpoint
- Update support URLs to heliumedu.com/support
- Merge main into develop
- Allow /docs/ and /schema/ in robots.txt
- Remove user count properties
- Document frontend grading math dependency
- Update API docs meta descriptions
- Merge main into develop
- Use direct task.apply calls instead of async
- Adjust log messages and increase deployment timeout
- Merge main into develop
- Expose notes relation in serializers
- Merge main into develop
- Include exceptions when importing example schedules
- Add recurrence round-trip test and helper updates
- Add recurrence & exception dates to import
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add OpenAPI enum strip hook & update models
- Merge main into develop
- Add legacy username handling to UserSerializer
- Support iCal RDATE extras in import
- Refactor reminder exceptions, add iCal docstring
- Make Reminder.start_of_range read-only
- Normalize exception_dates and ignore CANCELLED
- Handle RECURRENCE-ID overrides by adding exception_dates
- Add recurrence & exception support for events
- Merge main into develop
- Update legacy-coexisting tests for server-controlled username
- Drop username from token endpoint OpenAPI example and curl snippet
- Drop unused username arg from send_verification_email
- Document email as the canonical auth identifier; keep username as alias
- Merge main into develop
- Send reg email on OAuth signup; trim template
- Merge main into develop
- Reduce email logo height; remove duplicate logo
- Update email template image URLs
- Fix wording, templates, and username validation
- Merge main into develop
- Add OpenAPI summaries to API view endpoints
- Add OpenAPI tag groups and update API tags
- Remove 'calendar.user' OpenAPI tag from views
- Merge main into develop
- Update API docs project description
- Require days_of_week and forbid midnight times
- Merge main into develop
- Clarify wording: homework and events
- Clarify planner models and API docs wording
- Merge main into develop
- Docs tweaks and migration for category/reminder
- Clarify Category.weight help_text behavior
- Replace typographic symbols and clarify docs
- Clarify import and REST ingestion guidelines
- Clarify resource/material naming in docs
- Set default '' for text and email fields
- Merge main into develop
- Improve planner models, serializers, and API docs
- Merge main into develop
- Gate analytics snippet with ANALYTICS_ENABLED
- Add docker-env prerequisite to build-docker
- Make test target depend on build-docs
- Merge remote-tracking branch 'origin/main' into develop
- Bump @redocly/cli to 2.30.x in Makefile
- Make Redoc analytics injection configurable
- Remove drf_spectacular_sidecar and extras
- Remove helium Redoc template and SIDECAR setting
- Add static Redoc, robots, and sitemap support
- Switch API docs from Swagger to ReDoc
- Merge main into develop
- Accept empty Quill delta; rename export keys
- Add Quill delta validator and tests
- Use resources instead of materials across app
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Improve import validation and note/material handling
- Merge main into develop
- Reject naive datetimes and schedule grade recalcs
- Remove homework-category FAQ entry
- Conditionally schedule reminder adjustments; docs update
- Clarify idempotency guidance for CourseGroups
- Add OpenAPI examples and expand API docs
- Remove 'profile' from user detail docstring
- Merge main into develop
- API documentation cleanup (#966)
- Merge main into develop
- Add SEO and social meta tags to Swagger UI
- Add custom Swagger UI template with Open Graph
- Fix README image path
- Rename label invalid-forum to invalid-support
- Shorten invalid-forum auto-comment
- Fix image URLs in README.md
- Capitalize timezone refresh commit messages
- Update README header images
- Merge main into develop
- Use JSON error handlers; remove error templates
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Consolidate Apple touch icons and update templates
- Merge main into develop
- Cancel in-progress runs only for PRs
- Restrict push to develop; run integration on main
- Run build on main; remove release integration tests
- Merge main into develop
- Extend /info API with token TTLs, OAuth providers, import types
- Bump twilio from 9.10.6 to 9.10.9 (#965)
- Merge main into develop
- Add JSON 404/500 handlers and test
- Condense clone docstrings & trim test comments
- Add clone APIs and services for planner items
- Remove 404.html error template
- Merge main into develop
- Remove continue-on-error from cleanup job
- Mark release cleanup as non-failing for the pipeline
- Bump twilio from 9.10.5 to 9.10.6 (#963)
- Bump django from 5.2.13 to 5.2.14 (#962)
- Merge main into develop
- Update U.S. Holidays calendar color
- Merge main into develop
- Add external calendar import; bump Redis to 7
- Remove Python version badge from README
- Merge main into develop
- Normalize all-day items on timezone change
- Normalize all-day events on timezone change
- Merge main into develop
- Canonicalize deprecated timezones, update choices
- Bump Django and pyOpenSSL versions
- Upgrade to Django 5.2 (#961)
- Merge branch 'main' into develop
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Add distribution sampling support and refactor nightly metrics to emit one distribution sample per entity (with zero-filling) instead of aggregated averages. Introduces metricutils.distribution and a helper _emit_per_entity_distribution in helium/auth/tasks.py, switches several users.data.* metrics from average gauges to per-entity distributions, and emits adoption metrics as percentage gauges (users.adoption.*.pct). Also import Count and convert some queryset value_lists to lists for accurate totals and zero-fill behavior. These changes make p50/p95/p99 queries possible while keeping adoption alertable as percentages.
heliumedu-bot Bot and others added 14 commits May 25, 2026 17:24
- Emit per-entity distributions for nightly metrics
- Merge main into develop
- Handle duplicate SES events and adjust logs/metrics
- Update README with app badges and intro
- Merge main into develop
- Allow /sitemap.xml in robots.txt
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add support portal link for syllabus import
- Merge main into develop
- OpenAPI auth ordering and JWT/token tweaks
- Improve token API docstrings
- Clarify API view docstrings and wording
- Add knox API token support and endpoints
- Merge main into develop
- Add API rate limits to SPECTACULAR_SETTINGS
- Merge main into develop
- Add JSM integration for support contact
- Merge main into develop
- Add public support contact endpoint
- Update support URLs to heliumedu.com/support
- Merge main into develop
- Allow /docs/ and /schema/ in robots.txt
- Remove user count properties
- Document frontend grading math dependency
- Update API docs meta descriptions
- Merge main into develop
- Use direct task.apply calls instead of async
- Adjust log messages and increase deployment timeout
- Merge main into develop
- Expose notes relation in serializers
- Merge main into develop
- Include exceptions when importing example schedules
- Add recurrence round-trip test and helper updates
- Add recurrence & exception dates to import
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add OpenAPI enum strip hook & update models
- Merge main into develop
- Add legacy username handling to UserSerializer
- Support iCal RDATE extras in import
- Refactor reminder exceptions, add iCal docstring
- Make Reminder.start_of_range read-only
- Normalize exception_dates and ignore CANCELLED
- Handle RECURRENCE-ID overrides by adding exception_dates
- Add recurrence & exception support for events
- Merge main into develop
- Update legacy-coexisting tests for server-controlled username
- Drop username from token endpoint OpenAPI example and curl snippet
- Drop unused username arg from send_verification_email
- Document email as the canonical auth identifier; keep username as alias
- Merge main into develop
- Send reg email on OAuth signup; trim template
- Merge main into develop
- Reduce email logo height; remove duplicate logo
- Update email template image URLs
- Fix wording, templates, and username validation
- Merge main into develop
- Add OpenAPI summaries to API view endpoints
- Add OpenAPI tag groups and update API tags
- Remove 'calendar.user' OpenAPI tag from views
- Merge main into develop
- Update API docs project description
- Require days_of_week and forbid midnight times
- Merge main into develop
- Clarify wording: homework and events
- Clarify planner models and API docs wording
- Merge main into develop
- Docs tweaks and migration for category/reminder
- Clarify Category.weight help_text behavior
- Replace typographic symbols and clarify docs
- Clarify import and REST ingestion guidelines
- Clarify resource/material naming in docs
- Set default '' for text and email fields
- Merge main into develop
- Improve planner models, serializers, and API docs
- Merge main into develop
- Gate analytics snippet with ANALYTICS_ENABLED
- Add docker-env prerequisite to build-docker
- Make test target depend on build-docs
- Merge remote-tracking branch 'origin/main' into develop
- Bump @redocly/cli to 2.30.x in Makefile
- Make Redoc analytics injection configurable
- Remove drf_spectacular_sidecar and extras
- Remove helium Redoc template and SIDECAR setting
- Add static Redoc, robots, and sitemap support
- Switch API docs from Swagger to ReDoc
- Merge main into develop
- Accept empty Quill delta; rename export keys
- Add Quill delta validator and tests
- Use resources instead of materials across app
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Improve import validation and note/material handling
- Merge main into develop
- Reject naive datetimes and schedule grade recalcs
- Remove homework-category FAQ entry
- Conditionally schedule reminder adjustments; docs update
- Clarify idempotency guidance for CourseGroups
- Add OpenAPI examples and expand API docs
- Remove 'profile' from user detail docstring
- Merge main into develop
- API documentation cleanup (#966)
- Merge main into develop
- Add SEO and social meta tags to Swagger UI
- Add custom Swagger UI template with Open Graph
- Fix README image path
- Rename label invalid-forum to invalid-support
- Shorten invalid-forum auto-comment
- Fix image URLs in README.md
- Capitalize timezone refresh commit messages
- Update README header images
- Merge main into develop
- Use JSON error handlers; remove error templates
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Consolidate Apple touch icons and update templates
- Merge main into develop
- Cancel in-progress runs only for PRs
- Restrict push to develop; run integration on main
- Run build on main; remove release integration tests
- Merge main into develop
- Extend /info API with token TTLs, OAuth providers, import types
- Bump twilio from 9.10.6 to 9.10.9 (#965)
- Merge main into develop
- Add JSON 404/500 handlers and test
- Condense clone docstrings & trim test comments
- Add clone APIs and services for planner items
- Remove 404.html error template
- Merge main into develop
- Remove continue-on-error from cleanup job
- Mark release cleanup as non-failing for the pipeline
- Bump twilio from 9.10.5 to 9.10.6 (#963)
- Bump django from 5.2.13 to 5.2.14 (#962)
- Merge main into develop
- Update U.S. Holidays calendar color
- Merge main into develop
- Add external calendar import; bump Redis to 7
- Remove Python version badge from README
- Merge main into develop
- Normalize all-day items on timezone change
- Normalize all-day events on timezone change
- Merge main into develop
- Canonicalize deprecated timezones, update choices
- Bump Django and pyOpenSSL versions
- Upgrade to Django 5.2 (#961)
- Merge branch 'main' into develop
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Introduce a central redisutils.get_redis_client() and replace ad-hoc redis usage in tasks. Record private feed fetches in Redis (per-day sets keyed by staff flag and date, 181d TTL) from the private feed views to enable feed adoption measurement. Add a helper to count distinct feed slugs across a date window and emit a feeds adoption metric in emit_nightly_metrics. Refactor nightly metrics to use per-entity distributions for completions/graded homework, guard against zero-user windows, and emit active-course adoption as a percentage. Minor cleanup: use the Redis client for celery queue depth and handle Redis failures gracefully.
Introduce a central periodic task registry (helium/common/periodic.py) and migrate module-level Celery on_after_finalize handlers to use register_periodic. Periodic tasks are now installed from PERIODIC_TASKS in helium/common/tasks.py during Celery finalization. Add an admin UI to list and manually trigger triggerable periodic tasks (helium/common/admin.py plus templates admin/helium_index.html and admin/periodic_tasks.html). Update task modules (auth, feed, planner) to register schedules via register_periodic and remove duplicated on_after_finalize setup. Also change REINDEX_FEED_FREQUENCY_SEC from 75 to 300 and add schedule formatting and logging for manual triggers.
- Add periodic task registry and admin UI
- Add redisutils, track feed fetches, update metrics
- Merge main into develop
- Emit per-entity distributions for nightly metrics
- Merge main into develop
- Handle duplicate SES events and adjust logs/metrics
- Update README with app badges and intro
- Merge main into develop
- Allow /sitemap.xml in robots.txt
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add support portal link for syllabus import
- Merge main into develop
- OpenAPI auth ordering and JWT/token tweaks
- Improve token API docstrings
- Clarify API view docstrings and wording
- Add knox API token support and endpoints
- Merge main into develop
- Add API rate limits to SPECTACULAR_SETTINGS
- Merge main into develop
- Add JSM integration for support contact
- Merge main into develop
- Add public support contact endpoint
- Update support URLs to heliumedu.com/support
- Merge main into develop
- Allow /docs/ and /schema/ in robots.txt
- Remove user count properties
- Document frontend grading math dependency
- Update API docs meta descriptions
- Merge main into develop
- Use direct task.apply calls instead of async
- Adjust log messages and increase deployment timeout
- Merge main into develop
- Expose notes relation in serializers
- Merge main into develop
- Include exceptions when importing example schedules
- Add recurrence round-trip test and helper updates
- Add recurrence & exception dates to import
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add OpenAPI enum strip hook & update models
- Merge main into develop
- Add legacy username handling to UserSerializer
- Support iCal RDATE extras in import
- Refactor reminder exceptions, add iCal docstring
- Make Reminder.start_of_range read-only
- Normalize exception_dates and ignore CANCELLED
- Handle RECURRENCE-ID overrides by adding exception_dates
- Add recurrence & exception support for events
- Merge main into develop
- Update legacy-coexisting tests for server-controlled username
- Drop username from token endpoint OpenAPI example and curl snippet
- Drop unused username arg from send_verification_email
- Document email as the canonical auth identifier; keep username as alias
- Merge main into develop
- Send reg email on OAuth signup; trim template
- Merge main into develop
- Reduce email logo height; remove duplicate logo
- Update email template image URLs
- Fix wording, templates, and username validation
- Merge main into develop
- Add OpenAPI summaries to API view endpoints
- Add OpenAPI tag groups and update API tags
- Remove 'calendar.user' OpenAPI tag from views
- Merge main into develop
- Update API docs project description
- Require days_of_week and forbid midnight times
- Merge main into develop
- Clarify wording: homework and events
- Clarify planner models and API docs wording
- Merge main into develop
- Docs tweaks and migration for category/reminder
- Clarify Category.weight help_text behavior
- Replace typographic symbols and clarify docs
- Clarify import and REST ingestion guidelines
- Clarify resource/material naming in docs
- Set default '' for text and email fields
- Merge main into develop
- Improve planner models, serializers, and API docs
- Merge main into develop
- Gate analytics snippet with ANALYTICS_ENABLED
- Add docker-env prerequisite to build-docker
- Make test target depend on build-docs
- Merge remote-tracking branch 'origin/main' into develop
- Bump @redocly/cli to 2.30.x in Makefile
- Make Redoc analytics injection configurable
- Remove drf_spectacular_sidecar and extras
- Remove helium Redoc template and SIDECAR setting
- Add static Redoc, robots, and sitemap support
- Switch API docs from Swagger to ReDoc
- Merge main into develop
- Accept empty Quill delta; rename export keys
- Add Quill delta validator and tests
- Use resources instead of materials across app
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Improve import validation and note/material handling
- Merge main into develop
- Reject naive datetimes and schedule grade recalcs
- Remove homework-category FAQ entry
- Conditionally schedule reminder adjustments; docs update
- Clarify idempotency guidance for CourseGroups
- Add OpenAPI examples and expand API docs
- Remove 'profile' from user detail docstring
- Merge main into develop
- API documentation cleanup (#966)
- Merge main into develop
- Add SEO and social meta tags to Swagger UI
- Add custom Swagger UI template with Open Graph
- Fix README image path
- Rename label invalid-forum to invalid-support
- Shorten invalid-forum auto-comment
- Fix image URLs in README.md
- Capitalize timezone refresh commit messages
- Update README header images
- Merge main into develop
- Use JSON error handlers; remove error templates
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Consolidate Apple touch icons and update templates
- Merge main into develop
- Cancel in-progress runs only for PRs
- Restrict push to develop; run integration on main
- Run build on main; remove release integration tests
- Merge main into develop
- Extend /info API with token TTLs, OAuth providers, import types
- Bump twilio from 9.10.6 to 9.10.9 (#965)
- Merge main into develop
- Add JSON 404/500 handlers and test
- Condense clone docstrings & trim test comments
- Add clone APIs and services for planner items
- Remove 404.html error template
- Merge main into develop
- Remove continue-on-error from cleanup job
- Mark release cleanup as non-failing for the pipeline
- Bump twilio from 9.10.5 to 9.10.6 (#963)
- Bump django from 5.2.13 to 5.2.14 (#962)
- Merge main into develop
- Update U.S. Holidays calendar color
- Merge main into develop
- Add external calendar import; bump Redis to 7
- Remove Python version badge from README
- Merge main into develop
- Normalize all-day items on timezone change
- Normalize all-day events on timezone change
- Merge main into develop
- Canonicalize deprecated timezones, update choices
- Bump Django and pyOpenSSL versions
- Upgrade to Django 5.2 (#961)
- Merge branch 'main' into develop
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Replace the custom admin index template with a programmatic app entry: remove the index_template override and delete helium_index.html, and add PlatformAdminSite.get_app_list to append a 'Tools' app containing a 'Periodic tasks' link (admin:periodic-tasks). This surfaces the periodic tasks UI via the standard app list rather than a bespoke index template.
- Add 'Tools' section to admin app list
- Merge main into develop
- Add periodic task registry and admin UI
- Add redisutils, track feed fetches, update metrics
- Merge main into develop
- Emit per-entity distributions for nightly metrics
- Merge main into develop
- Handle duplicate SES events and adjust logs/metrics
- Update README with app badges and intro
- Merge main into develop
- Allow /sitemap.xml in robots.txt
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add support portal link for syllabus import
- Merge main into develop
- OpenAPI auth ordering and JWT/token tweaks
- Improve token API docstrings
- Clarify API view docstrings and wording
- Add knox API token support and endpoints
- Merge main into develop
- Add API rate limits to SPECTACULAR_SETTINGS
- Merge main into develop
- Add JSM integration for support contact
- Merge main into develop
- Add public support contact endpoint
- Update support URLs to heliumedu.com/support
- Merge main into develop
- Allow /docs/ and /schema/ in robots.txt
- Remove user count properties
- Document frontend grading math dependency
- Update API docs meta descriptions
- Merge main into develop
- Use direct task.apply calls instead of async
- Adjust log messages and increase deployment timeout
- Merge main into develop
- Expose notes relation in serializers
- Merge main into develop
- Include exceptions when importing example schedules
- Add recurrence round-trip test and helper updates
- Add recurrence & exception dates to import
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Add OpenAPI enum strip hook & update models
- Merge main into develop
- Add legacy username handling to UserSerializer
- Support iCal RDATE extras in import
- Refactor reminder exceptions, add iCal docstring
- Make Reminder.start_of_range read-only
- Normalize exception_dates and ignore CANCELLED
- Handle RECURRENCE-ID overrides by adding exception_dates
- Add recurrence & exception support for events
- Merge main into develop
- Update legacy-coexisting tests for server-controlled username
- Drop username from token endpoint OpenAPI example and curl snippet
- Drop unused username arg from send_verification_email
- Document email as the canonical auth identifier; keep username as alias
- Merge main into develop
- Send reg email on OAuth signup; trim template
- Merge main into develop
- Reduce email logo height; remove duplicate logo
- Update email template image URLs
- Fix wording, templates, and username validation
- Merge main into develop
- Add OpenAPI summaries to API view endpoints
- Add OpenAPI tag groups and update API tags
- Remove 'calendar.user' OpenAPI tag from views
- Merge main into develop
- Update API docs project description
- Require days_of_week and forbid midnight times
- Merge main into develop
- Clarify wording: homework and events
- Clarify planner models and API docs wording
- Merge main into develop
- Docs tweaks and migration for category/reminder
- Clarify Category.weight help_text behavior
- Replace typographic symbols and clarify docs
- Clarify import and REST ingestion guidelines
- Clarify resource/material naming in docs
- Set default '' for text and email fields
- Merge main into develop
- Improve planner models, serializers, and API docs
- Merge main into develop
- Gate analytics snippet with ANALYTICS_ENABLED
- Add docker-env prerequisite to build-docker
- Make test target depend on build-docs
- Merge remote-tracking branch 'origin/main' into develop
- Bump @redocly/cli to 2.30.x in Makefile
- Make Redoc analytics injection configurable
- Remove drf_spectacular_sidecar and extras
- Remove helium Redoc template and SIDECAR setting
- Add static Redoc, robots, and sitemap support
- Switch API docs from Swagger to ReDoc
- Merge main into develop
- Accept empty Quill delta; rename export keys
- Add Quill delta validator and tests
- Use resources instead of materials across app
- Merge main into develop
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Improve import validation and note/material handling
- Merge main into develop
- Reject naive datetimes and schedule grade recalcs
- Remove homework-category FAQ entry
- Conditionally schedule reminder adjustments; docs update
- Clarify idempotency guidance for CourseGroups
- Add OpenAPI examples and expand API docs
- Remove 'profile' from user detail docstring
- Merge main into develop
- API documentation cleanup (#966)
- Merge main into develop
- Add SEO and social meta tags to Swagger UI
- Add custom Swagger UI template with Open Graph
- Fix README image path
- Rename label invalid-forum to invalid-support
- Shorten invalid-forum auto-comment
- Fix image URLs in README.md
- Capitalize timezone refresh commit messages
- Update README header images
- Merge main into develop
- Use JSON error handlers; remove error templates
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Consolidate Apple touch icons and update templates
- Merge main into develop
- Cancel in-progress runs only for PRs
- Restrict push to develop; run integration on main
- Run build on main; remove release integration tests
- Merge main into develop
- Extend /info API with token TTLs, OAuth providers, import types
- Bump twilio from 9.10.6 to 9.10.9 (#965)
- Merge main into develop
- Add JSON 404/500 handlers and test
- Condense clone docstrings & trim test comments
- Add clone APIs and services for planner items
- Remove 404.html error template
- Merge main into develop
- Remove continue-on-error from cleanup job
- Mark release cleanup as non-failing for the pipeline
- Bump twilio from 9.10.5 to 9.10.6 (#963)
- Bump django from 5.2.13 to 5.2.14 (#962)
- Merge main into develop
- Update U.S. Holidays calendar color
- Merge main into develop
- Add external calendar import; bump Redis to 7
- Remove Python version badge from README
- Merge main into develop
- Normalize all-day items on timezone change
- Normalize all-day events on timezone change
- Merge main into develop
- Canonicalize deprecated timezones, update choices
- Bump Django and pyOpenSSL versions
- Upgrade to Django 5.2 (#961)
- Merge branch 'main' into develop
- Add timezone refresh workflow and generator
- Merge main into develop
- Skip iCal events without SUMMARY; default comments
- Merge main into develop
- Refine timing mock assertions in tests
- Emit onboarding duration as timing with user tags
- Merge main into develop
- Merge branch 'main' into develop
- Bump valkey cache image to 8.1
- Use docker compose pull and update service images
- Merge main into develop
- Merge main into develop
- Update Docker image tags in CI workflow
- Merge main into develop
- Update CI steps and make timezone usage deterministic
- Update localstack image tag
- Bump MySQL and LocalStack images
- Merge branch 'develop' of github.com:HeliumEdu/platform into develop
- Update release.yml
- Merge main into develop
- Update release.yml
- Refactor CI workflows and release pipeline
- [skip build] Merge main into develop
Update admin messaging and template copy for periodic tasks: change the success message to direct users to "Task results events" for state, and shorten the periodic tasks page paragraph to a simpler instruction about using "Run now" to queue a task for immediate invocation (removes the longer Beat/out-of-band explanation).
Shorten the periodic task description for emit_nightly_metrics in helium/auth/tasks.py from a verbose "Emit nightly platform/users/adoption/engagement gauges" to the more concise "Emit nightly metrics" for clarity and brevity in task listings.
Replace Patreon support badge images from .png to .svg in README.md and the email base template to improve scaling and visual quality. Image paths and target links remain unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant