Download Latest Version 1.3.7 source code.zip (35.5 MB) Google Add to Preferred Sources
Home / 1.3.5
Name Modified Size InfoDownloads / Week
Parent folder
1.3.5 source code.tar.gz 2026-08-23 33.8 MB
1.3.5 source code.zip 2026-08-23 35.4 MB
README.md 2026-08-23 9.7 kB
Totals: 3 Items   69.2 MB 0

H5P, Demo Organizations, Bug fixes and Improvements

✨ Features

  • feat(editor): add H5P block button to the toolbar (338c8d0c)
  • feat(quiz): explicit single- and multiple-response questions (594be17c)
  • feat(email): let organizations set the sender display name (6957f595)
  • feat(editor): add embed-only H5P interactive content block (32c1d10c)
  • feat: add the demo entry points, routes and tests (8c660b1a)
  • feat(api): reconcile the demo organization in place instead of rebuilding it (e5230dc4)
  • feat(api): add the demo content bundle (5eba830c)
  • feat(api): keep the demo out of billing, email and other people's data (54835f5c)
  • feat(api): add the demo organization schema and its guards (cd409e27)
  • Merge pull request [#1028] from learnhouse/feat/rtl-arabic (f18d05be)
  • feat(web): Arabic typography, mirrored icons, and per-block content direction (9062b5cc)
  • feat(i18n): resolve text direction from the active locale (44541de7)
  • feat(api): learn delivery outcomes by asking, not by being told (38b0e047)
  • feat(activity): record user activity on enterprise deployments (9967c3f8)
  • fix(api): stop the hardening from breaking CORS, SCORM import and migration (1c2f598b)
  • feat(api): run nudges on their own tick, and seed the backlog automatically (a35d4cbb)
  • feat(api): illustrations, inbox polish, reactivation and suppression (145de9da)
  • feat(api): lifecycle nudge emails for organization admins (7c866b97)

🐛 Bug Fixes

  • Merge pull request [#1054] from learnhouse/renovate/all-minor-patch (33d5a470)
  • fix(deps): update all non-major dependencies (8ffcef09)
  • Merge pull request [#1053] from tbilah/fix/course-plan-tags (6307b32e)
  • Merge pull request [#1050] from learnhouse/fix/saas-frontend-node-build (6643e071)
  • fix(ai): make course-plan tags a list, join to pipe at finalize (84211ee7)
  • fix(docker): move every image to bun 1.4.0 and drop the node build stages (a31d1870)
  • fix(docker): build the SaaS frontend image with Node instead of Bun (32d2ddd6)
  • Merge pull request [#1048] from learnhouse/renovate/all-minor-patch (350ab6ee)
  • fix(deps): update all non-major dependencies (1b42b008)
  • Merge pull request [#1049] from learnhouse/fix/typescript-6-baseurl (76d8cfb0)
  • fix(docker): build the frontend with Node instead of Bun (735346a6)
  • fix(web): repair DAUChart tooltip typing and add a CI type check (b5f819f2)
  • fix(web): drop deprecated tsconfig baseUrl so the image build type-checks (1ee08e87)
  • Merge pull request [#1047] from learnhouse/renovate/all-minor-patch (48a5c73b)
  • fix(deps): update all non-major dependencies (b205d03d)
  • Merge pull request [#1046] from learnhouse/fix/demo-storefront-capability-gate (b7a85418)
  • fix(demo): make the storefront optional as a unit, and stop unlocking what nothing sweeps (fe130490)
  • Merge pull request [#1040] from learnhouse/fix/demo-store-provider-skew (f75cff36)
  • fix: sort folders by org mode and hide certificate copy (3702ecd5)
  • fix(demo): stop an older Enterprise release breaking the whole demo sync (976734e1)
  • Merge pull request [#1041] from learnhouse/fix/pin-bun-image-to-repo-version (ac4a67aa)
  • fix(ci): pin the bun image to the version the repo declares (0ba72217)
  • Merge pull request [#1039] from learnhouse/renovate/all-minor-patch (063600f8)
  • fix(deps): update all non-major dependencies (eff075a6)
  • fix(auth): invalidate sessions on password change and logout (bbf67289)
  • Merge pull request [#1033] from learnhouse/renovate/all-minor-patch (27bb37be)
  • Merge pull request [#1034] from learnhouse/renovate/workos-cryptography (e3f56843)
  • fix(deps): update all non-major dependencies (141c8f84)
  • fix(deps): update dependency workos to v10.2.0 (66628005)
  • Merge pull request [#1008] from mchtter/fix/dash-admin-denial-ux (c28889d2)
  • fix(web): don't paint the denial page before authorization is decided (bf56395a)
  • Merge pull request [#1032] from learnhouse/fix/nudge-gates-and-logging (c4a7b5c3)
  • fix(api): make application logs visible, and open the gates nudges shut (83311146)
  • Merge pull request [#1021] from learnhouse/fix/sentry-resend-recipient-rejection (869a89cd)
  • fix(api): run the nudge job on boot, and say why when it doesn't (a489e0e7)
  • fix(api): stop paging on provider rejections of a bad recipient address (3ecba874)
  • fix(security): make the superadmin surface Enterprise-only (93504483)
  • Merge pull request [#1026] from learnhouse/fix/license-gating-hardening (df6975ef)
  • fix(lint): drop the now-unused is_multi_org_allowed import (2bb5c2c8)
  • fix(config): parse YAML-side boolean strings in _env_bool too (86625e76)
  • fix(cache): version the instance-info key, set PYTHONDONTWRITEBYTECODE (bb096330)
  • Merge pull request [#1022] from learnhouse/fix/sentry-tiptap-delete-extension-crash (ec407be9)
  • Merge pull request [#1024] from learnhouse/chore/ruff-unused-import (69220462)
  • Merge pull request [#1023] from learnhouse/fix/sentry-translated-dom-crash (d9d714dd)
  • Merge pull request [#1020] from learnhouse/fix/sentry-internal-packs-key-guard (46db78bf)
  • fix(web): upgrade tiptap to 3.29.2 to fix a crash while editing (fb1d1658)
  • Merge pull request [#1017] from learnhouse/renovate/all-minor-patch (2d2beea2)
  • fix(deps): update all non-major dependencies to v1.43.65 (5f674de2)
  • fix(web): give course-structure labels their own element so translation can't crash the page (7b0c259c)
  • Merge pull request [#1014] from learnhouse/renovate/motion-13.x (12abf6c9)
  • fix(api): fail internal pack endpoints closed with 403 instead of 500 (f4f0f2c9)
  • fix(deps): update dependency motion to v13 (a3894c7c)
  • Merge pull request [#1011] from learnhouse/renovate/all-minor-patch (0b7beb81)
  • fix(deps): bump cryptography with workos, regenerate lockfiles (3d7047e0)
  • fix(deps): update all non-major dependencies (82fd49ef)
  • fix(config): harden mode detection, per-request instance info, env booleans (a13d9915)
  • Merge pull request [#1013] from learnhouse/renovate/ioredis-6.x (06eb3734)
  • fix(deps): update dependency ioredis to v6 (940712c3)
  • fix(web): gate the whole dashboard, and explain a denial instead of flashing it (de57c118)
  • Merge pull request [#1004] from learnhouse/renovate/all-minor-patch (7d3d818f)
  • fix(ci): regenerate apps/web/bun.lock after dependency bumps (54bc73c8)
  • fix(deps): update all non-major dependencies (df9cf41b)
  • fix(api): leave billing alone, keep the authorization fix (c8ccb0f4)
  • fix(api): stop the hardening from breaking CORS, SCORM import and migration (1c2f598b)
  • fix(api): don't turn a missing org config into a finalize failure (fcba5f84)
  • fix(api): verify Resend webhooks properly, and cut the config surface (e5a51d1d)
  • fix(api): keep SVG renderable and drop the unsatisfiable token rights gate (4451b795)
  • fix(api): validate each link-preview hop next to the request it guards (08148294)
  • fix(api): tighten authorization and input handling across service layer (37b42224)
  • Merge pull request [#1001] from learnhouse/fix/billing-internal-key-and-fulfillment (c8d76f62)
  • fix(auth): bound the grace for sessions with no recorded auth method (c82caeb5)
  • fix(config): fail loud on missing SaaS credentials instead of degrading quietly (61ee8112)
  • fix(auth): treat an unknown session auth method as unknown, not as a violation (e3fcfe5f)
  • fix(billing): resolve the internal key from either env name, restore fulfillment fallbacks (f7690933)
  • fix media content-type mismatch and preview iframe sandbox conflict (52c62f21)

⚡ Performance

  • perf(config): memoise the config.yaml parse, resolve deployment mode once (4dc64a31)

♻️ Refactoring

  • refactor(web): convert physical direction utilities to logical ones (6bfca121)

📚 Documentation

  • docs(config): document the LEARNHOUSE_SSL parsing change, correct a cost comment (b85a69d3)

🔧 Maintenance

  • chore(deps): regenerate lockfiles (a23dcf2e)
  • Merge pull request [#1035] from learnhouse/renovate/astral-sh-setup-uv-10.x (a74c7a06)
  • chore(deps): update astral-sh/setup-uv action to v10 (bd73af4c)
  • chore(api): drop dead import that fails ruff on dev (bb00c436)
  • Merge pull request [#1018] from learnhouse/renovate/node-26.x (f6814e30)
  • chore(deps): update dependency @types/node to v26 (8ea530bd)
  • Merge pull request [#1019] from learnhouse/renovate/typescript-6.x (4df66743)
  • chore(deps): update dependency typescript to v6 (a67042d5)
  • chore(deps): regenerate apps/web/pnpm-lock.yaml for motion v13 (87e925f5)
  • chore(deps): regenerate apps/web/bun.lock for motion v13 (2bbd9eb4)

🎉 New Contributors

  • @mchtter made their first contribution!
  • @tbilah made their first contribution!

👥 Contributors

@mchtter, @swve, @swve, @tbilah


📦 Getting Started

New installation:

:::bash
npx learnhouse setup

Upgrade to this version:

:::bash
# Back up your database first
npx learnhouse backup

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

Docker image:

:::bash
docker pull ghcr.io/learnhouse/app:1.3.5

[!WARNING] This release includes 2 database migration(s). Back up your database before upgrading.

  • b1n2u3d4g5e6_add_nudge_tables.py
  • c7d8e9f0a1b2_add_demo_org_tables.py

Full Changelog: https://github.com/learnhouse/learnhouse/compare/1.3.4...1.3.5

Source: README.md, updated 2026-08-23