7.4.0 - 2026-08-25
❤️ Thanks to all contributors! ❤️
@AlexAndBear, @JammingBen, @dschmidt, @fschade, @junkerderprovinz, @kulmann, @maki5, @saw-jan, @schweigisito, @tammi-23, @v-scharf
📈 Enhancement
- enhance code block language picker [#3214]
- perf: preview cache optimizations [#3194]
- perf: decode thumbnails asynchronously [#3204]
- feat: add accessibility hint for code block exit [#3209]
- feat(epub-reader): improve chapter resolution and progress slider UX [#3201]
- Tip tap code block tab indetation [#3208]
- feat(editor): add lowlight code blocks [#3199]
- feat: add notebook assets [#3200]
- perf: drop queued previews leaving the viewport [#3198]
- perf: dynamic tile preview dimensions [#3192]
- feat(web-pkg): move text align into toolbar submenu [#3196]
- feat(web-pkg): add text align support to tiptap-json strategy [#3195]
- feat(web-runtime): add sponsor emoji transition on hover [#3191]
- Rename extensions to apps in admin and account settings [#3190]
- perf: introduce cache for active location checks [#3182]
- feat: make space header more compact [#3173]
- perf: remove location checks from resource actions [#3177]
- Wire ocnote to tiptap-json and add Note new-file entry [#3175]
- feat: e2ee vault spaces [#3115]
- add sanitized SVG rendering in preview app [#3144]
- feat: update default space icon [#3146]
- feat: enhance preview media controls layout and migrate to bubble menu [#3138]
- feat: move bubble menu styling to design system [#3134]
- feat(web-pkg): optional unload warning for loading tasks [#3135]
- feat: add filters to favorites view [#3087]
- feat: modernize ebup reader [#3088]
- feat(yjs): collaborative editing framework [#2785]
- feat: update more resource icons [#2898]
- feat: add subscript and superscript support to text editor [#3068]
- feat: enhance text editor table functionality with custom size picker and toggle header action [#3063]
- feat: rework vault setup process [#3031]
- feat(tiptap): add insert image from cloud [#3024]
- enhance: listen on favourite events [#3019]
- feat(vault): use integrity id as passphrase verifier [#3018]
- feat(tiptap): add find and replace [#3015]
- feat(tiptap): add inline table actions toolbar [#2997]
🐛 Bug Fixes
- fix: improve code block visibility in dark mode [#3213]
- fix(epub-reader): select first chapter when opening EPUB for the first time [#3212]
- fix(web-pkg): improve text editor action-group consistency [#3197]
- fix(design-system): avoid duplicated SVG ids [#3157]
- Fix empty right sidebar when opening space context menu [#3153]
- fix: improve media controls layout stability [#3145]
- fix: only mark shares nav item active on shares routes [#3148]
- fix: render action buttons in move/copy dialogs [#3147]
- fix: remove delay for vault password error message [#3140]
- fix(extension-sdk): ignore module federation temp files in the dev watcher [#3136]
- fix(files): guard FileDetails against transient null resource [#3098]
- fix: make ESC app close behave like top-bar close [#3094]
- fix: add cache-buster for provided images [#3082]
- fix: let the drop flip again after its content grew [#3077]
- fix: encode hash character in app route URLs to prevent truncation [#3075]
- fix(admin-settings): opening user sidebar panels [#3067]
- fix: position versions loading spinner without shifting the details layout [#3065]
- correct resource id in restore file version link [#3053]
- fix: reset shift selection anchor when deselecting all files [#3061]
- fix: keep the file details panel stable while loading [#3057]
- fix: white flash on page relaod when dark theme is applied [#3055]
- fix(web-pkg): keep sidebar panels mounted while loading [#3056]
- fix(tip tap): don't show drag handle on mobile as it's not compatible [#3052]
- fix(sort): explorer-like ordering for leading-zero prefixes [#3047]
- fix (tiptap): slash menu is lacking hover state [#3035]
- fix: improve file sorting to handle duplicates with extensions correctly [#3046]
- fix: autofocus public link pasword input [#3034]
- fix(tip tap): drag handle overflows narrow editors (e.G announcement banner) [#3030]
- fix: keep slash menu open when returning to command [#3017]
- fix: prevent closing editor from slash menu [#3020]
✅ Tests
- test(e2e): add test to copy and move file to a new folder [#3206]
- test(e2e): fix e2ee space tests by creating ocnote instead of txt [#3193]
- test(e2e): add e2ee space tests [#3189]
- test(e2e): add test for saving file as different [#3176]
- e2e-test: yjs collaboration tests [#3179]
- e2e-test: cover favorite SSE events across tabs [#3154]
- test(e2e): add sidebar details check for shared resources [#3116]
- test(e2e): extend e2e coverage for rclone-crypt vault [#3102]
- test(e2e): add coverage for opening files with special characters [#3099]
- e2e-test/fix pagination test flaky [#3078]
- e2e-test: pagination in spaces/trashbin [#3037]
- e2e-test: announcement banner [#2998]
- fix(e2e): wait for login form after logout to avoid teardown hang [#3022]
📚 Documentation
- docs: add GitHub workflow guidelines to AGENTS.md [#3121]
📦️ Dependencies
- fix(deps): update dependency @sentry/vue to v10.71.0 [#3219]
- chore(deps): update typescript-eslint monorepo to v8.68.0 [#3218]
- chore(deps): update dependency cropperjs to v2.2.0 [#3202]
- chore(deps): update dependency highlight.js to v11.12.0 [#3207]
- chore(deps): update pnpm to v11.23.0 [#3203]
- chore(deps): update node.js to v24 [#3092]
- chore(deps): update dependency @tiptap/y-tiptap to v3.0.9 [#3158]
- chore(deps): update traefik docker tag to v3.7.11 [#3186]
- fix(deps): update dependency uuid to v14.0.2 [#3160]
- chore(deps): update dependency dompurify to v3.4.14 [#3180]
- chore(client): bump libre-graph-sdk [#3149]
- chore(client): bump libre-graph-sdk [#3143]
- chore(deps): update dependency fast-xml-parser to v5.11.0 [#3139]
- chore(deps): update pnpm to v11.22.0 [#3137]
- fix(deps): update dependency pinia to v4.0.3 [#3096]
- fix(deps): update dependency @sentry/vue to v10.70.0 [#3071]
- chore(deps): update dependency @axe-core/playwright to v4.13.0 [#3085]
- chore(deps): update typescript-eslint monorepo to v8.67.0 [#3072]
- chore(deps): update pnpm to v11.21.0 [#3059]
- chore(deps): update devdependencies (non-major) [#3054]
- chore(deps): update dependency vite to v8.2.1 [#3049]
- chore(deps): update devdependencies (non-major) [#3048]
- chore(deps): update devdependencies (non-major) to v3.5.41 [#3043]
- chore(deps): update typescript-eslint monorepo to v8.66.0 [#3027]
- chore(deps): update pnpm to v11.20.0 [#3023]
- chore(deps): update dependency dompurify to v3.4.13 [#3026]
- chore(deps): update node.js to v24.19.0 [#3021]
- chore(deps): update devdependencies (non-major) [#2999]