| Name | Modified | Size | Downloads / 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.pyc7d8e9f0a1b2_add_demo_org_tables.py
Full Changelog: https://github.com/learnhouse/learnhouse/compare/1.3.4...1.3.5