fix(license): restore the ONLYOFFICE product logo and add the notices AGPL Section 7 requires - #202
Merged
Merged
Conversation
… AGPL Section 7 requires The vendor's AGPL-3.0 headers carry two additional terms under Section 7: 7(b) requires a derivative work to retain the original product logo, and 7(e) declines to grant any rights under trademark law. This build honoured neither. guards/chrome.ts hid `#header-logo` and the DocEditor config set `customization.about: false`, which between them left no product mark anywhere in the interface, and no trademark notice existed in the repository or on the site. Both removals were deliberate UI tidy-ups, so a comment would not have held: - guards/chrome.ts keeps hiding the current-user and co-users widgets (a collaboration session a serverless build cannot have) and nothing else. - `customization.about` goes back to its default. The vendor's own `canBrandingExt` check exists to force it back on; this offline build just does not enforce it. - New guard 12 (guards/about-source.ts) appends this build's own two facts to the About pane -- that it is a modified version and not an official ONLYOFFICE product, and where its source is (Section 13). The pane is populated lazily, so it watches for the content rather than writing once. - NOTICE quotes the terms verbatim, pins the vendor version, and lists every change made to the vendor tree (Section 5(a)). - The eight readmes point at it; all seven site languages carry a trademark line in both footers. Pinned by test/unit/branding-notice.test.ts and test/e2e/vendor-branding.spec.ts. Reverse-verified twice: restoring the two suppressions turns the three editor cases red, and dropping the footer notice turns the three page cases red. Also in passing: /zh/ used to 404 (the real prefix is the BCP-47 /zh-CN/), and the embed docs never said prominently that `document:open-url` and `?src=` need CORS on the file's own host. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
chaxus
enabled auto-merge (rebase)
August 23, 2026 15:15
Deploying document with
|
| Latest commit: |
28a2e6a
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://795b927b.document-7hm.pages.dev |
| Branch Preview URL: | https://onlyoffice-attribution.document-7hm.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The vendor's AGPL-3.0 headers add two terms under Section 7 of that license: 7(b) requires a derivative work to retain the original product logo, and 7(e) declines to grant any rights under trademark law. This build honoured neither.
Evidence, taken on the live site before the fix:
#header-logocomputed todisplay: none(hidden byguards/chrome.ts). Unhiding it paints the real ONLYOFFICE logo, 86x20, fromheader-logo_s.svg-- the asset was shipping all along.#left-btn-aboutalsodisplay: none.customization.about: falsedid take effect: the vendor'shidePreloaderhas acanBrandingExt || (about = true)fallback, but this offline build reportscanBrandingExttrue, so nothing forced it back.AGPL-3.0.Both removals were deliberate UI tidy-ups (
docs/explorations/2026-08-12-v9-pure-ui-and-issue-regression-sweep.mdopens with "requirement: remove the ONLYOFFICE logo from the editor header"), so the next tidy-up would have done it again with nothing going red.Changes
guards/chrome.tskeeps hiding the current-user / co-users widgets and nothing else.customization.aboutback to its default.guards/about-source.ts) appends this build's own two facts to the About pane: that it is a modified version and not an official ONLYOFFICE product, and where the source is (Section 13). Additive only. The pane is populated lazily, so it watches for content instead of writing once.NOTICE: the terms verbatim, the vendor version (9.3.0.133) and upstream repos, and every change made to the vendor tree -- the x2t_helper patch, gzip-only wasm, locale key filling, trimmed help, replaced fonts (Section 5(a))..tm)./zh/used to 404 (the real prefix is/zh-CN/), and the embed docs never said prominently thatdocument:open-url/?src=need CORS on the file's own host.Tests
test/unit/branding-notice.test.ts(17): the two suppressions cannot come back, the guard is mounted, NOTICE quotes 7(b)/7(e) verbatim and the vendor file still carries that text, all 154 generated pages carry the notice in their own language.test/e2e/vendor-branding.spec.ts(6): in the real editor -- logo visible and painted (background image + size, not merely present in the DOM), About reachable and carryingAscensio System SIA, our source line in the pane; plus the footer notice on three routes.Reverse-verified, twice:
#header-logo,about: falseand unmounting the guard -> the 3 editor cases fail, the 3 page cases stay green (they test the other half);<p class="tm">-> the 3 page cases fail.Full local run after restoring: 2673 unit tests, 149 E2E, all green.