diff --git a/CHANGELOG.md b/CHANGELOG.md
index acdcc3e3..434af368 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -44,6 +44,14 @@ notes. Entries describe what users experience, not internal refactors.
the session on them, so a laptop keeps a recovery point about every 30
seconds while a phone under load backs off instead of competing with the
document you are editing.
+- **The ONLYOFFICE logo is back in the editor header, and the About pane with
+ it.** Both had been switched off as interface clutter. They are not: this
+ editor is a modified version of ONLYOFFICE, and the license it is published
+ under requires the product logo to stay. The About pane now also says that
+ this build is not an official ONLYOFFICE product and links to the source it
+ was built from. Every page of the site carries the same trademark notice in
+ its footer, and the repository has a NOTICE file with the full terms and the
+ list of changes made to the vendor build.
### Known issues
diff --git a/CLAUDE.md b/CLAUDE.md
index 24a8b6e6..bcfc3884 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -63,11 +63,12 @@ lib/ # 应用层(纯 TypeScript,只在本站点用)
loading.ts # 加载状态 UI
onlyoffice-editor.ts # 编辑器生命周期门面:挂载/重建/loadEditorApi,并对外统一导出下面这些模块
onlyoffice/ # 编辑器周边(2026-08-19 从 1975 行的单文件拆出,公开导出面不变)
- iframe-guards.ts # 10 条运行时守卫的编排;每条守卫一个文件在 guards/
+ iframe-guards.ts # 12 条运行时守卫的编排;每条守卫一个文件在 guards/
guards/ # chrome / shared-worker / fetch-fonts / image-pipeline /
# serverless-save / long-action / series-settings /
# font-loading / comment-selection / canvas-loss /
- # wasm-binary-release / unload-prompt / hint-fallback
+ # wasm-binary-release / unload-prompt / hint-fallback /
+ # about-source
open-state.ts # 就绪、打开失败、frame 首个错误(三处共用的单一状态源)
open-failure.ts # 失败分类、-82 guard、环境类失败重开一次(经 setOpenRunner 注入避免环)
font-system.ts # 字体系统就绪判定 + awaitFontSystem(#144)
@@ -621,6 +622,16 @@ docs/explorations/2026-08-19-ci-e2e-sharding.md。
7. **循环依赖处理**:`onlyoffice-editor.ts` 与 `converter.ts` 之间通过回调注入(`setConverterCallbacks`)解耦;`ui.ts` 与 `document.ts` 之间通过 `setUICallbacks` 解耦
8. **编辑器操作队列**:`createEditorInstance` 内部有 `editorOperationQueue`,防止并发创建/销毁编辑器
9. **.claude/ 目录**:已加入 `.gitignore`,不提交本地 Claude Code 配置
+10. **ONLYOFFICE 署名不许再动(2026-08-23)**:本站是 ONLYOFFICE 的衍生作品,vendor
+ 的 AGPL 头附了第 7 条附加条款——**7(b) 必须保留原产品 logo**、**7(e) 不授予任何
+ 商标权利**。曾经两处都被当成"界面净化"去掉了(`guards/chrome.ts` 隐藏
+ `#header-logo`、DocEditor 配置 `customization.about: false`),界面上一处标识都不剩。
+ 现在:header logo 与 About 面板都保留,守卫 12(`guards/about-source.ts`)往 About
+ 面板追加"非官方产品 + 源码地址"(AGPL §13),7 种语言的两个页脚都有商标声明,根目录
+ `NOTICE` 存条款原文、vendor 版本与我们对 vendor 树的全部改动(§5(a) 要求)。
+ `test/unit/branding-notice.test.ts` 与 `test/e2e/vendor-branding.spec.ts` 钉死;
+ 改 vendor 版本后要核对 NOTICE 里的引文与版本号。见
+ docs/explorations/2026-08-23-onlyoffice-attribution-agpl-section-7.md。
---
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 00000000..bd50fd12
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,127 @@
+NOTICE
+======
+
+This product is a derivative work of ONLYOFFICE.
+
+The site (https://edit.chaxus.com/, https://github.com/ranuts/document) is
+licensed under the GNU Affero General Public License version 3 -- see LICENSE.
+It embeds the ONLYOFFICE document editors, which are distributed under the same
+license with the additional terms permitted by Section 7 of the GNU AGPL. Those
+terms are reproduced verbatim below and apply to this work as well.
+
+
+1. ONLYOFFICE editors (sdkjs, web-apps)
+---------------------------------------
+
+Copyright (C) Ascensio System SIA. All rights reserved.
+https://www.onlyoffice.com/
+
+Upstream sources:
+ https://github.com/ONLYOFFICE/sdkjs
+ https://github.com/ONLYOFFICE/web-apps
+
+Version shipped in this repository: 9.3.0.133 (build:1), under public/sdkjs/
+and public/web-apps/. It is a third-party compiled offline build of those two
+projects; the corresponding source is the 9.3.0 release of the repositories
+above.
+
+The notice carried by the upstream source files, reproduced in full:
+
+ (c) Copyright Ascensio System SIA 2010-2024
+
+ This program is a free software product. You can redistribute it and/or
+ modify it under the terms of the GNU Affero General Public License (AGPL)
+ version 3 as published by the Free Software Foundation. In accordance with
+ Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
+ that Ascensio System SIA expressly excludes the warranty of non-infringement
+ of any third-party rights.
+
+ This program is distributed WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
+ details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
+
+ You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
+ street, Riga, Latvia, EU, LV-1050.
+
+ The interactive user interfaces in modified source and object code versions
+ of the Program must display Appropriate Legal Notices, as required under
+ Section 5 of the GNU AGPL version 3.
+
+ Pursuant to Section 7(b) of the License you must retain the original Product
+ logo when distributing the program. Pursuant to Section 7(e) we decline to
+ grant you any rights under trademark law for use of our trademarks.
+
+ All the Product's GUI elements, including illustrations and icon sets, as
+ well as technical writing content are licensed under the terms of the
+ Creative Commons Attribution-ShareAlike 4.0 International. See the License
+ terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
+
+
+How this work complies with those terms
+---------------------------------------
+
+Section 7(b) -- product logo. The ONLYOFFICE logo is shown in the editor
+header, and the About pane (product logo, version, Ascensio System SIA
+copyright, onlyoffice.com link) is reachable from the left rail. Neither is
+suppressed. lib/onlyoffice/guards/chrome.ts hides only the current-user and
+co-users widgets, which describe a collaboration session this serverless build
+cannot have, and lib/onlyoffice-editor.ts leaves `customization.about` at its
+default. test/unit/branding-notice.test.ts and
+test/e2e/vendor-branding.spec.ts keep both from being "cleaned up" again.
+
+Section 7(e) -- trademarks. ONLYOFFICE and the ONLYOFFICE logo are trademarks
+of Ascensio System SIA. No rights under trademark law are granted by the
+license, and none are claimed here. This project is not an official ONLYOFFICE
+product and is not affiliated with, sponsored by or endorsed by Ascensio System
+SIA. The name is used only to identify the engine this site is built on.
+
+Section 5(a) -- modifications. The vendor tree under public/ is not pristine.
+The changes made to it are:
+
+ * public/sdkjs/common/wasm/x2t/x2t_helper.js -- patched to load the x2t
+ WebAssembly module through `Module.instantiateWasm` from a gzip-compressed
+ response, so the 40 MB binary is never materialised in memory, and to
+ report load failures to the host page. See
+ docs/changelogs/2026-08-20-issue-144-memory-and-delivery.md.
+ * public/sdkjs/common/wasm/x2t/x2t.wasm -- published gzip-compressed only
+ (x2t.wasm.gz), because the uncompressed file exceeds the host's per-file
+ limit. The decompressed bytes are unmodified and pinned by sha256 in
+ test/unit/vendor-contract.test.ts.
+ * public/web-apps/apps/*/main/locale/*.json -- missing keys filled in from
+ en.json by bin/locale-fill.mjs for the seven site languages. Untranslated
+ keys returned `undefined` and crashed the tooltip renderer. Values only;
+ no key is removed.
+ * public/web-apps help content trimmed from the shipped tree.
+ * public/fonts/ -- the font catalog's proprietary font files were replaced
+ with redistributable open-source families (see docs/font-licenses.md and
+ docs/changelogs/2026-08-22-font-licensing.md). The catalog registry itself
+ is unchanged in shape; only the files behind the entries differ.
+
+Nothing else in public/sdkjs/ or public/web-apps/ is edited. The behavioural
+patches this site needs are applied at runtime from lib/onlyoffice/guards/,
+which leaves the vendor files themselves byte-identical to the build they came
+from.
+
+
+2. x2t WebAssembly converter
+----------------------------
+
+The document converter (x2t) is part of ONLYOFFICE core (AGPL-3.0, Ascensio
+System SIA) compiled to WebAssembly. The build used here comes from the
+third-party project https://github.com/cryptpad/onlyoffice-x2t-wasm.
+
+
+3. Other components
+-------------------
+
+ * ranui / ranuts (https://github.com/chaxus/ran) -- the design system and
+ utilities this site's own interface is built with.
+ * Fonts under public/fonts/ and public/ran-fonts/ -- see docs/font-licenses.md
+ for the license of each family.
+ * Monaco Editor, under public/web-apps/vendor/monaco/ -- shipped by the
+ vendor build; see the LICENSE and ThirdPartyNotices.txt files in that
+ directory.
+
+Other trademarks named in this repository and on the site (Microsoft Word,
+Excel, PowerPoint, and others) are the property of their respective owners and
+are used only to describe the file formats this editor reads and writes.
diff --git a/bin/build-pages.mjs b/bin/build-pages.mjs
index 28baa1e9..56ba887c 100644
--- a/bin/build-pages.mjs
+++ b/bin/build-pages.mjs
@@ -162,6 +162,7 @@ const UI = {
],
generatedNote: (src) => `Source: ${src} in the repository`,
ossNote: `Open source & self-hostable. Under AGPL-3.0 — verify that nothing is uploaded, or run your own copy: github.com/ranuts/document.`,
+ trademark: `ONLYOFFICE is a trademark of Ascensio System SIA. This site is not an official ONLYOFFICE product and is not affiliated with or endorsed by Ascensio System SIA.`,
},
'zh-CN': {
siteName: 'Document Editor',
@@ -190,6 +191,7 @@ const UI = {
],
generatedNote: (src) => `来源:仓库中的 ${src}`,
ossNote: `开源 · 可自托管。采用 AGPL-3.0——你可以核实没有任何上传,或者自建一份:github.com/ranuts/document。`,
+ trademark: `ONLYOFFICE 是 Ascensio System SIA 的商标。本站并非官方 ONLYOFFICE 产品,与 Ascensio System SIA 无隶属关系,也未获其背书。`,
},
ja: {
siteName: 'Document Editor',
@@ -218,6 +220,7 @@ const UI = {
],
generatedNote: (src) => `ソース: リポジトリの ${src}`,
ossNote: `オープンソース・セルフホスト可能。AGPL-3.0 のもとで公開——何もアップロードされないことを自分で確認でき、自分で運用することもできます: github.com/ranuts/document。`,
+ trademark: `ONLYOFFICE は Ascensio System SIA の商標です。本サイトは公式の ONLYOFFICE 製品ではなく、Ascensio System SIA との提携も推奨関係もありません。`,
},
de: {
siteName: 'Document Editor',
@@ -246,6 +249,7 @@ const UI = {
],
generatedNote: (src) => `Quelle: ${src} im Repository`,
ossNote: `Open Source & selbst hostbar. Unter AGPL-3.0 — prüfen Sie selbst, dass nichts hochgeladen wird, oder betreiben Sie eine eigene Kopie: github.com/ranuts/document.`,
+ trademark: `ONLYOFFICE ist eine Marke von Ascensio System SIA. Diese Website ist kein offizielles ONLYOFFICE-Produkt und steht in keiner Verbindung zu Ascensio System SIA.`,
},
es: {
siteName: 'Document Editor',
@@ -274,6 +278,7 @@ const UI = {
],
generatedNote: (src) => `Fuente: ${src} en el repositorio`,
ossNote: `Código abierto y autoalojable. Bajo AGPL-3.0: comprueba que no se sube nada, o ejecuta tu propia copia: github.com/ranuts/document.`,
+ trademark: `ONLYOFFICE es una marca de Ascensio System SIA. Este sitio no es un producto oficial de ONLYOFFICE ni está afiliado a Ascensio System SIA ni respaldado por ella.`,
},
ko: {
siteName: 'Document Editor',
@@ -302,6 +307,7 @@ const UI = {
],
generatedNote: (src) => `출처: 저장소의 ${src}`,
ossNote: `오픈 소스이며 직접 호스팅할 수 있습니다. AGPL-3.0으로 공개되어 있어, 아무것도 업로드되지 않는다는 것을 직접 확인하거나 직접 운영할 수 있습니다: github.com/ranuts/document.`,
+ trademark: `ONLYOFFICE는 Ascensio System SIA의 상표입니다. 이 사이트는 공식 ONLYOFFICE 제품이 아니며 Ascensio System SIA와 제휴하거나 후원받지 않았습니다.`,
},
pt: {
siteName: 'Document Editor',
@@ -330,6 +336,7 @@ const UI = {
],
generatedNote: (src) => `Fonte: ${src} no repositório`,
ossNote: `Código aberto e auto-hospedável. Sob a AGPL-3.0 — confira você mesmo que nada é enviado, ou rode a sua própria cópia: github.com/ranuts/document.`,
+ trademark: `ONLYOFFICE é uma marca da Ascensio System SIA. Este site não é um produto oficial do ONLYOFFICE nem tem afiliação ou endosso da Ascensio System SIA.`,
},
};
@@ -1020,6 +1027,7 @@ ${footLinks}
${e(ui.trademark)}
@@ -1266,6 +1274,7 @@ ${aside} ${footer} GitHub${escapeHtml(ui.trademark)}