Skip to content

1.3.2

Choose a tag to compare

@swve swve released this 21 Jul 12:35

Assignments improvements and bug fixes

✨ Features

  • Merge pull request #952 from learnhouse/feat/welcome-email-org-whitelabel (b149bd4e)
  • feat(email): org-scope and white-label the account welcome email (0dd130d8)
  • Merge pull request #935 from SenithVijayantha/feat/language_translations_for_paste_from_clipboard_button (36a22884)
  • feat: add language trnaslations for paste from clipboard button text (6d5d7681)
  • Merge pull request #934 from learnhouse/feat/docs-api-reference (5b792a0e)
  • feat(docs): reference v2 — auth rights, search/SEO/llms, playground upgrades, docs-aligned layout (afcb75da)
  • feat(docs): add full API reference generated from the live OpenAPI spec (a22450fb)
  • Merge pull request #932 from SenithVijayantha/feat/paste_img_from_clipboard_to_course_thumbnail_input (e1577942)
  • Merge pull request #933 from learnhouse/feat/scorm-large-package-upload (ba5935c3)
  • feat(scorm): large-package upload with progress, parallel S3 transfer, streaming playback (2f445c67)
  • feat(web): show an upgrade prompt when a plan limit is reached (95f9106f)
  • feat: add paste from clipboard button to the Course Thumbnail input in the Create Course dialog (59de6370)
  • feat(api): harden free-tier abuse surfaces against invite-spam relay (deb0a3fc)
  • Merge pull request #926 from learnhouse/feat/scorm-and-resource-activities (eb717765)
  • feat(activities): show unpublished courses + per-type counts in resource picker (21d87bf4)
  • feat(activities): add Resource activity + SCORM upload picker card (fd04e5c2)
  • Merge pull request #921 from learnhouse/feat/activation-and-monetization-improvements (351c1d7d)
  • feat(audio): add "Speak" monologue mode and a length selector (64a7f1e3)
  • feat(audio): generate a podcast discussion script from a topic, then narrate it (5205436e)
  • feat: activation + monetization improvements and AI podcast/audio generation (be516976)
  • feat: use i18n strings for course mobile view (49a579c8)
  • feat(scorm): support 5GB SCORM uploads (proxy timeouts + UI copy) (be309799)

🐛 Bug Fixes

  • Merge pull request #954 from learnhouse/fix/security-hardening (d7002ec7)
  • fix(security): sanitize dynamic URLs at href/redirect sinks (451fb2d3)
  • fix(security): validate course export archive path before serving (1e9ff315)
  • fix(security): bump python base image to 3.14.6-slim-bookworm (d0fe96ef)
  • fix(security): patch high-severity transitive advisories (c40f71b9)
  • Merge pull request #946 from learnhouse/renovate/major-react-email-monorepo (6f1974ba)
  • fix(deps): update @react-email/components to v1 (1.0.12) (efc097d3)
  • Merge pull request #947 from learnhouse/renovate/loops-7.x (ae6a0f18)
  • Merge pull request #949 from learnhouse/renovate/resend-6.x (edca1075)
  • Merge pull request #951 from learnhouse/renovate/workos-9.x (e639432f)
  • fix(deps): update loops to v7 (e2716363)
  • fix(deps): update resend to v6 (dc0b7bf3)
  • fix(deps): update workos to v9 (9.1.0) (53c2ea22)
  • Merge pull request #948 from learnhouse/renovate/pydantic-ai-slim-2.x (82f0acee)
  • fix(deps): update dependency pydantic-ai-slim to v2 (d1b13865)
  • Merge pull request #940 from learnhouse/renovate/all-minor-patch (d8bf2fee)
  • fix(ci): reconcile web lockfiles and de-flake account-age tests (6ab92388)
  • fix(deps): update all non-major dependencies (4e787ad1)
  • Merge pull request #938 from learnhouse/fix/learner-onboarding-blockers (3d636d07)
  • fix(web): certificate rendering, learner name & completion, plan gating, i18n (9b44e48c)
  • fix(web): assignment learner & grading UX (a2cdace2)
  • fix(assignments): admin completion reporting, AI-gen authorization & webhook events (894a580a)
  • fix(certifications): completion integrity & certificate lifecycle (e0aea375)
  • fix(security): restrict assignment submission files to owner or instructor (89aa0f70)
  • fix(assignments): grading engine correctness & submission integrity (dea18d93)
  • Merge pull request #950 from learnhouse/renovate/major-shiki-monorepo (87176c36)
  • fix(deps): update dependency shiki to v4 (702e7c83)
  • Merge pull request #937 from learnhouse/fix/billing-plan-write-hardening (aa8bee1e)
  • fix(billing): harden the Stripe plan-write path against silent upgrade drops (eed8a168)
  • fix(courses): derive pasted thumbnail extension from clipboard image type (2911f032)
  • fix(api): enforce plan/usage limits that were silently bypassed (73b30a1b)
  • fix(courses): make Share Course links absolute (#923) (36ac3adc)
  • fix(activities): allow same-origin framing for resource routes (14577ca8)
  • fix(activities): typecheck + lint on changed files (964c5d89)
  • fix(audio): stop generated scripts being cut off mid-sentence (e2bd1987)
  • fix: enforce member limit on the invite path so the upgrade gate works (223bc070)
  • Merge pull request #927 from learnhouse/fix/headless-usergroups-api-tokens (16539e75)
  • fix(api): allow API tokens on /usergroups with org-boundary guards (b1c44aad)
  • Merge pull request #925 from gutocarollo/fix/assignment-task-submission-uuid-scope (8be60533)
  • fix(assignments): scope task submission uuid updates (65c719e0)
  • fix: use two ampersands (33267b94)
  • Merge pull request #920 from learnhouse/feat/scorm-5gb-timeouts-and-copy (07ea6876)
  • fix(scorm): allow same-origin framing of SCORM content (34a6a291)

♻️ Refactoring

  • Merge pull request #929 from gutocarollo/fix/catalog-pagination-refactor (86936b96)
  • refactor(web): share catalog pagination controls (85816575)

📚 Documentation

  • docs: document AI audio/podcast generation and media-model env vars (dd64c708)

🔧 Maintenance

  • Merge pull request #944 from learnhouse/renovate/node-26.x (60fb7934)
  • chore(deps): update dependency @types/node to v26 (d52397fa)
  • Merge pull request #953 from learnhouse/chore/renovate-weekly-schedule (bccb95a0)
  • chore(renovate): run dependency updates weekly instead of biweekly (52b31fc5)
  • Merge pull request #942 from learnhouse/renovate/actions-setup-node-7.x (ba72aa54)
  • Merge pull request #941 from learnhouse/renovate/actions-checkout-7.x (bae5d635)
  • Merge pull request #943 from learnhouse/renovate/major-github-artifact-actions (a855aa85)
  • chore(deps): update actions/upload-artifact action to v7 (c3fdf85c)
  • chore(deps): update actions/setup-node action to v7 (1b21ba86)
  • chore(deps): update actions/checkout action to v7 (93cc561b)
  • Merge pull request #922 from rzmk/rzmk/hide-on-activity (a66eea34)
  • chore: hide hint and reference file when empty on student activity (5a43c93d)
  • Merge pull request #914 from rzmk/get-started-mobile (2ce22930)
  • chore: show Get Started on mobile for unauthenticated users (9b000334)

🎉 New Contributors

👥 Contributors

@gutocarollo, @rzmk, @SenithVijayantha, @swve


📦 Getting Started

New installation:

npx learnhouse setup

Upgrade to this version:

# Back up your database first
npx learnhouse backup

# Update to this specific version
npx learnhouse update --version 1.3.2

Docker image:

docker pull ghcr.io/learnhouse/app:1.3.2

Warning

This release includes 4 database migration(s). Back up your database before upgrading.

  • a2b3c4d5e6f7_unique_assignment_submission_rows.py
  • e7f8a9b0c1d2_add_pass_threshold_to_assignment.py
  • f1a2b3c4d5e6_unique_certificateuser_user_certification.py
  • r5s6t7u8v9w0_add_resource_activity_subtype.py

Full Changelog: 1.3.1...1.3.2