Merge branch 'main' into staging

This commit is contained in:
David Benque 2026-02-11 15:56:52 +00:00
commit 5a62afb17f
No known key found for this signature in database
GPG Key ID: 7EC3E5D34DCCC0BF
12 changed files with 129 additions and 13 deletions

View File

@ -89,6 +89,7 @@ body:
label: Version
description: What version of CryptPad are you running?
options:
- 2026.1.0
- 2025.9.0
- 2025.6.0
- 2025.3.1

View File

@ -5,6 +5,106 @@ SPDX-License-Identifier: AGPL-3.0-or-later
-->
# ❄️ Winter release (2026.2.0)
## Goals
This release upgrades our office applications with OnlyOffice 9 as well as the same history browsing feature as our other applications (history was limited until now). We also include a redesigned folder tree in the drive, and many other improvements and fixes as detailed below.
## Features
- Upgrade Office applications to OnlyOffice v9.2.0.119
- OnlyOffice history browsing [#2134](https://github.com/cryptpad/cryptpad/pull/2134)
- Update drive tree UI [#2102](https://github.com/cryptpad/cryptpad/pull/2102)
## Improvements
- Integration API improvements [#2139](https://github.com/cryptpad/cryptpad/pull/2139)
- Integration API: Allow client download [#2114](https://github.com/cryptpad/cryptpad/pull/2114)
- Let the user close the old password error modal, without having to refresh the login page [#2125](https://github.com/cryptpad/cryptpad/pull/2125)
- Add support for required poll questions in forms [#2092](https://github.com/cryptpad/cryptpad/pull/2092)
- Improve support & moderation UI [#2082](https://github.com/cryptpad/cryptpad/pull/2082)
- Enable Dutch language [#2148](https://github.com/cryptpad/cryptpad/pull/2148)
## Fixes
- Account, Profile and Contacts
- Fix incorrect error message for invalid credentials [#2163](https://github.com/cryptpad/cryptpad/pull/2163)
- Delete 2FA data when archiving account [#2177](https://github.com/cryptpad/cryptpad/pull/2177)
- Fix padding for profile action buttons [#2081](https://github.com/cryptpad/cryptpad/pull/2081)
- Fix contact page name overflow [#2084](https://github.com/cryptpad/cryptpad/pull/2084)
- Fix: Profile description editor now shows saved value without requiring focus [#2100](https://github.com/cryptpad/cryptpad/pull/2100)
- Drives
- Fix rtChannel not always stored and pinned [#2168](https://github.com/cryptpad/cryptpad/pull/2168)
- Preserve drive list sorting order across reloads [#2115](https://github.com/cryptpad/cryptpad/pull/2115)
- Fix: Removed avatars are no longer shown in team roster [#2087](https://github.com/cryptpad/cryptpad/pull/2087)
- Fix text overflow issues on Ctrl+E (New document) modal [#2117](https://github.com/cryptpad/cryptpad/pull/2117)
- Fix: Context menu new document options now respect selected type [#2124](https://github.com/cryptpad/cryptpad/pull/2124)
- Apps
- Hide History button if history disabled [#2104](https://github.com/cryptpad/cryptpad/pull/2104)
- Disable dragging when selecting text inside title and items for Kanban cards [#2088](https://github.com/cryptpad/cryptpad/pull/2088)
- Add missing margin to elements in Form [#2083](https://github.com/cryptpad/cryptpad/pull/2083)
- CKEditor undo stack cleared on refresh [#2121](https://github.com/cryptpad/cryptpad/pull/2121)
- change code-pad to code [#2160](https://github.com/cryptpad/cryptpad/pull/2160) @achf01
- Office apps
- Do not delete last checkpoint on 5xx error [#2166](https://github.com/cryptpad/cryptpad/pull/2166)
- OnlyOffice tab notifications [#2110](https://github.com/cryptpad/cryptpad/pull/2110)
- install-onlyoffice.sh: fix --check for new install_version function [#2097](https://github.com/cryptpad/cryptpad/pull/2097) @martinetd
- Typos
- Fix some typos [#2126](https://github.com/cryptpad/cryptpad/pull/2126) @josep11
- doc: typo [#2116](https://github.com/cryptpad/cryptpad/pull/2116) @thiswillbeyourgithub
- Fix translation key errors in admin panel and installation page [#2138](https://github.com/cryptpad/cryptpad/pull/2138)
- Other
- File upload base64 caused by base64 conversion [#2181](https://github.com/cryptpad/cryptpad/pull/2181)
- Calendar export fixes [#2151](https://github.com/cryptpad/cryptpad/pull/2151)
- Fix UI overflow when loading a PDF file [#2118](https://github.com/cryptpad/cryptpad/pull/2118)
- Icon fixes [#2096](https://github.com/cryptpad/cryptpad/pull/2096)
- moderator setting on by default [#2144](https://github.com/cryptpad/cryptpad/pull/2144)
## Dependencies
- Minor upgrades
- body-parser from ^1.20.2 to ^1.20.4
- express from ~4.21.2 to ~4.22.1
- jsonwebtoken from ^9.0.0 to ^9.0.3
## Deployment and Development
- Do not deploy Draw.io's JAR files [#2120](https://github.com/cryptpad/cryptpad/pull/2120)
- Switch to docker alpine image [#2119](https://github.com/cryptpad/cryptpad/pull/2119)
- Update triggers for end-to-end test suite [#2060](https://github.com/cryptpad/cryptpad/pull/2060)
- add Intellij directory to ignored git files [#2122](https://github.com/cryptpad/cryptpad/pull/2122) @josep11
## Upgrade notes
If you are upgrading from a version older than `2025.9.0` please read the upgrade notes of all versions between yours and `2026.2.0` to avoid configuration issues.
To upgrade:
1. Stop your server
2. Get the latest code with git
```bash
git fetch --depth 1 origin tag 2026.2.0
git checkout 2026.2.0
npm ci
npm run install:components
./install-onlyoffice.sh
```
3. Restart your server
4. Review your instance's checkup page to ensure that you are passing all tests
## Contributors
Community: @achf01 @martinetd @josep11 @thiswillbeyourgithub
CryptPad team: @AAAMON @Chouhartem @dariiing @davidbenque @DianaXWiki @mathilde-cryptpad @wginolas @yflory @zuzanna-maria
# 🍁 Autumn release (2025.9.0)
## Goals

View File

@ -43,7 +43,7 @@ For the purposes of the document, it doesn't matter which becomes which, it must
The research team at XWiki Labs created and continues to maintain a Javascript library called [Chainpad](https://github.com/xwiki-contrib/chainpad "Realtime Collaborative Editor Algorithm based on Nakamoto Blockchains") which simplifies this process, and provides a few guarantees about how differences will be resolved.
The algorithm is based on Nakamoto Blockchains, a construct popularized by Bitcoin, and now a growing number of other cryptocurrencies.
The core datatype is considered a [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type "Conflict-free Replicated Data Type).
The core datatype is considered a "Conflict-free Replicated Data Type" ([CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type)).
CRDTs are also also employed by the popular source control managements software [Git](https://en.wikipedia.org/wiki/Git_%28software%29).
Each patch references the [SHA-256 Hash](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm "Secure Hashing Algorithms") of the previous state of the document.

View File

@ -11,11 +11,11 @@ const factory = (NaclUtil) => {
window.btoa = window.btoa || function (str) { return Buffer.from(str, 'binary').toString('base64'); };
Util.encodeBase64 = u8 => {
if (typeof(u8?.toBase64) === "function") {
if (typeof (u8?.toBase64) === "function") {
return u8.toBase64();
}
return NaclUtil.encodeBase64(u8);
}
};
Util.decodeBase64 = str => {
if (typeof(Uint8Array?.fromBase64) === "function") {
return Uint8Array.fromBase64(str);

View File

@ -1860,5 +1860,8 @@
"password_note3": "Dein Passwort ist der geheime Schlüssel, der alle deine Dokumente und Administratorrechte auf dieser Instanz verschlüsselt.",
"computer_note": "Wenn du einen gemeinsam genutzten Computer verwendest, {0}denke daran, dich abzumelden{1}, wenn du fertig bist. Durch bloßes Schließen des Browserfensters bleibt das Konto ungeschützt.",
"import_note": "Um die Dokumente zu behalten, die du erstellt und/oder gespeichert hast, ohne eingeloggt zu sein, setze einen Haken bei \"Dokumente aus deiner Gast-Sitzung importieren\".",
"admin_creation_note": "Erstelle auf dieser Seite deinen ersten Administrator-Account. Administratoren verwalten die Einstellungen der Instanz einschließlich der Speicherplatzkontingente und haben Zugriff auf die Moderationswerkzeuge."
"admin_creation_note": "Erstelle auf dieser Seite deinen ersten Administrator-Account. Administratoren verwalten die Einstellungen der Instanz einschließlich der Speicherplatzkontingente und haben Zugriff auf die Moderationswerkzeuge.",
"fo_sharedFolder_move_error": "Geteilte Ordner können nicht in andere geteilte Ordner verschoben werden.",
"fo_trash_move_error": "Der Inhalt von geteilten Ordnern kann nicht in den Papierkorb verschoben werden. Verwende stattdessen \"Entfernen\".",
"form_poll_required_hint": "Die Beantwortung dieser Umfrage ist erforderlich, du musst mit mindestens einer Option interagieren."
}

View File

@ -1862,6 +1862,6 @@
"color8": "Violet",
"loading_encrypted": "chiffré de bout en bout",
"form_poll_required_hint": "Ce sondage est requis, vous devez interagir avec au moins une option.",
"fo_trash_move_error": "Le contenu d'un dossier partagé ne peut pas être déplacé dans la corbeille. Veuillez utiliser \\\"Supprimer\\\".",
"fo_trash_move_error": "Le contenu d'un dossier partagé ne peut pas être déplacé dans la corbeille. Veuillez utiliser \"Supprimer\".",
"fo_sharedFolder_move_error": "Un dossier partagé ne peut pas être déplacé dans un autre dossier partagé."
}

View File

@ -1862,6 +1862,6 @@
"color8": "Purple",
"loading_encrypted": "end-to-end encrypted",
"form_poll_required_hint": "This poll is required, you must interact with at least one option.",
"fo_trash_move_error": "Shared folder contents cannot be moved to trash. Use \\\"Remove\\\" instead.",
"fo_trash_move_error": "Shared folder contents cannot be moved to trash. Use \"Remove\" instead.",
"fo_sharedFolder_move_error": "Shared folders cannot be moved inside other shared folders."
}

View File

@ -1860,5 +1860,8 @@
"color6": "Turkusowy",
"color7": "Niebieski",
"color8": "Fioletowy",
"loading_encrypted": "szyfrowane od końca do końca"
"loading_encrypted": "szyfrowane od końca do końca",
"form_poll_required_hint": "Ta ankieta jest obowiązkowa, należy wybrać co najmniej jedną opcję.",
"fo_trash_move_error": "Zawartości folderów współdzielonych nie można przenieść do kosza. Zamiast tego użyj opcji „Usuń”.",
"fo_sharedFolder_move_error": "Folderów współdzielonych nie można przenosić do innych folderów współdzielonych."
}

View File

@ -39,7 +39,7 @@
"upgrade": "Upgrade",
"MB": "MB",
"GB": "GB",
"KB": "KB",
"KB": "kB",
"formattedMB": "{0} MB",
"formattedGB": "{0} GB",
"formattedKB": "{0} KB",

View File

@ -1860,5 +1860,8 @@
"help_close_button": "Închide notificarea de ajutor",
"fc_open_formaud": "Deschide (ca auditor)",
"admin_documentsDeletionTitle": "Arhivează documente multiple",
"admin_documentsDeletionHint": "Arhivează o listă de documente după id (un id per linie)"
"admin_documentsDeletionHint": "Arhivează o listă de documente după id (un id per linie)",
"form_poll_required_hint": "Această întrebare este obligatorie, trebuie să interacționați cu cel puțin o opțiune.",
"fo_trash_move_error": "Conținutul unui dosar distribuit nu poate fi mutat la gunoi. În schimb, folosiți funcția \"Elimină\".",
"fo_sharedFolder_move_error": "Dosarele distribuite nu pot fi mutate în alte dosare distribuite."
}

View File

@ -1860,5 +1860,8 @@
"color6": "Бирюзовый",
"color7": "Синий",
"color8": "Фиолетовый",
"loading_encrypted": "с сквозным шифрованием"
"loading_encrypted": "с сквозным шифрованием",
"form_poll_required_hint": "Этот вопрос обязателен, Вы должны выбрать хотя бы один вариант.",
"fo_trash_move_error": "Содержимое общей папки нельзя переместить в корзину. Вместо этого используйте \"Удалить\".",
"fo_sharedFolder_move_error": "Общие папки нельзя перемещать внутрь других общих папок."
}

View File

@ -351,8 +351,8 @@
"uploadButtonTitle": "将新文件上传到您的 CryptDrive",
"uploadFolderButton": "上传文件夹",
"uploadButton": "上传文件",
"form_required_on": "必要的",
"form_required_off": "选",
"form_required_on": "必",
"form_required_off": "选",
"form_preview": "表格预览",
"form_changeTypeConfirm": "选择新的问题类型。",
"form_corruptAnswers": "此表单已经有回复。 更改此问题类型可能会使以前的响应数据无效。",
@ -1860,5 +1860,8 @@
"password_note3": "您的密码是加密此实例上所有文档和管理员权限的密钥。",
"computer_note": "如果您使用的是共享计算机,{0}请记住在操作完成后登出{1}。仅关闭浏览器窗口会导致账号暴露。",
"import_note": "要保留您在未登录的情况下创建和/或存储的文档,请勾选“从访客会话导入文档”。",
"admin_creation_note": "在此页面创建首个管理员账号。管理员可管理实例设置,包括存储配额,并有权使用审核工具。"
"admin_creation_note": "在此页面创建首个管理员账号。管理员可管理实例设置,包括存储配额,并有权使用审核工具。",
"form_poll_required_hint": "此投票为必选项,您必须至少选择一个选项。",
"fo_trash_move_error": "共享文件夹内容无法移至回收站,请改用“移除”。",
"fo_sharedFolder_move_error": "共享文件夹无法移至其他共享文件夹内。"
}