Skip to content

🔖(release) major 6.0.0 - #2781

Merged
lunika merged 15 commits into
mainfrom
release/v6.0.0
Oct 9, 2026
Merged

lunika merged 15 commits into
mainfrom
release/v6.0.0

Conversation

@lunika

@lunika lunika commented Oct 5, 2026

Copy link
Copy Markdown
Member

Added

Changed

Fixed

Removed

Security

@lunika
lunika requested a review from AntoLC October 5, 2026 14:55
@lunika lunika self-assigned this Oct 5, 2026
@lunika

lunika commented Oct 5, 2026

Copy link
Copy Markdown
Member Author

@AntoLC the helm chart has not been upgraded yet, I published yet an alpha version I want to reuse before publishing version 6.0.0

@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 0338c876-f1e8-4f63-8f17-25012454b62b

📥 Commits

Reviewing files that changed from the base of the PR and between 8779186 and 46dedf8.


⛔ Files ignored due to path filters (3)
  • src/backend/uv.lock is excluded by !**/*.lock
  • src/frontend/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
  • src/yhub-server/yarn.lock is excluded by !**/yarn.lock, !**/*.lock

📒 Files selected for processing (1)
  • Dockerfile

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.



Walkthrough

The changelog and upgrade guide document the 6.0.0 release. Package manifests update their versions and selected dependencies. Backend translation catalogs refresh dates and source references; message catalogs remain otherwise unchanged except for one French punctuation change. Frontend translations remove older sign-in entries, add sign-in-related translations in French, Russian, and Ukrainian, and revise two French translations. The Docker base image changes to Python 3.14.8 Alpine.

Priority: ⬆️ High

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk

Merge Risk: ⚪ Minimal · up to 46ded

No actionable merge-blocking risk is identified in the reviewed release-preparation changes.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 46ded

No expanded privileges or new unsafe migration behavior was established. Existing credential configuration and deferred tool handling remain in place, but compatibility and security-control preservation across the major AI-library upgrades remain unverified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The security-relevant dependency exposure includes backend AI-provider traffic carrying configured API credentials and user-supplied content. Actual production enablement, destinations, and tenant reach were not established.

Trust Boundaries and Controls

  • observed — The unchanged provider configuration requires explicit API keys, base URLs, and a model. Frontend-supplied tool definitions are represented as external tools, and streaming requests use DeferredToolRequests rather than binding server-side tool implementations. Preservation of these library semantics after the upgrade remains unverified.

Hardening Proposals

  • proposed — Validate the major AI-library upgrades specifically against configured credential destinations, TLS behavior, server-owned instructions, and external-tool deferral before rollout. This is targeted assurance for an unresolved dependency transition, not an observed vulnerability.



🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title identifies this as the major 6.0.0 release, which matches the main purpose of the changeset.
Description check ✅ Passed The description summarizes the 6.0.0 release changes, including additions, fixes, removals, and a security update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.


✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: +1.79 kB (+0.04%)

Total Size: 4.06 MB

📦 View Changed
Filename Size Change
apps/impress/out/_next/static/22d76927/_buildManifest.js 0 B -702 B (removed) 🏆
apps/impress/out/_next/static/chunks/4050.js 0 B -153 kB (removed) 🏆
apps/impress/out/_next/static/chunks/4562.js 51.9 kB -2.95 kB (-5.38%) ✅
apps/impress/out/_next/static/chunks/6277.js 156 kB +156 kB (new file) 🆕
apps/impress/out/_next/static/chunks/f2a8b075.js 97.5 kB +1.56 kB (+1.63%)
apps/impress/out/_next/static/css/0f4e8be50eda1ebd.css 0 B -86.6 kB (removed) 🏆
apps/impress/out/_next/static/css/5be45e3755865a3d.css 0 B -12.7 kB (removed) 🏆
apps/impress/out/_next/static/css/6b86d2cd23ca68de.css 13.4 kB +13.4 kB (new file) 🆕
apps/impress/out/_next/static/css/71cb7b01543ffdd4.css 0 B -13.6 kB (removed) 🏆
apps/impress/out/_next/static/css/5260bf534a0bca1b.css 86.6 kB +86.6 kB (new file) 🆕
apps/impress/out/_next/static/css/f048233e311d9df4.css 13.2 kB +13.2 kB (new file) 🆕
apps/impress/out/_next/static/dae3d570/_buildManifest.js 701 B +701 B (new file) 🆕

compressed-size-action

Update translated files with new translations
@lunika
lunika force-pushed the release/v6.0.0 branch 10 times, most recently from 3d0d5fe to 4916867 Compare October 6, 2026 07:53
@AntoLC AntoLC added the release label Oct 6, 2026
@lunika
lunika force-pushed the release/v6.0.0 branch 3 times, most recently from de7bc7f to 96c5e94 Compare October 9, 2026 08:54
lunika added 5 commits October 9, 2026 11:14
pip is not used in production, we can remove it in the production to
avoid having to maintain library linked to it and that can possibly
contains CVEs
The yhub image was using a normal debian images with to many
dependencies installed that can contain CVE. Using a slim image is
enough
lunika and others added 9 commits October 9, 2026 11:14
Trivy is reporting some CVE from debian packages and they have not
published patches. These CVE are not critical, we ignore them for now.
Some translation have changed, the tests related to this string must be
updated accordingly.
We need to upgrade to the last version of nginx to fix recent security
issues.
A version is identified by the moment it ends, which is also all the
changeset and the rollback are given. Two entries of the timeline can end
at the same moment without merging: an imported `system` save next to an
edit, or concurrent edits sorted by start. They produced two versions
with the same id, which both looked selected and shared a React key.
Entries ending together are the same document, so they are now folded
into one version, keeping every author and the earliest start.

Signed-off-by: Anthony LC <anthony.le-courric@mail.numerique.gouv.fr>
If two requests at the exact same time update a document and
link-configuration, a race condition can happen and one action can
overwrite the other one. If a document link_reach is changed from public
to restricted, this change can be overwritten and the owner does not
have this information. To fix this issue we set the updated_fields for
every save.
One feature we have is to still be able to read a soft deleted document
in the application. Calling the yhub service to delete the document
inside yhub make it unreachable, so it does not load anymore in the
editor. Yhub map the permission on what Docs returns in its abilities.
A soft deleted document will be in read only.
When a document is deleted, we must reset the connection in the
collaboration server otherwise all users remain connected and can still
edit it if they are at least editor.
the task `sync_service_deletions_in_cascade` is no more called when a
document is soft deleted. We rename it in
sync_service_restorations_in_cascade and still call it when a document
is restored. No ydoc should be tombstone in yhub anymore but we want to
keep it as a safe guard, it is still possible to tombstone a ydoc
programmatically but not used in the application for now.
Added

- 👷(ci) lint, typecheck, build and test the collaboration server (yhub) #2757
- 👷(ci) check the load-test tooling: swarm, canary, k6 and dashboards #2757
- 👷(ci) cancel the superseded runs of a pull request #2757
- ✨(backend) add mention endpoint with cooldown-limited email
  notification #2447
- 🚩(setting) add feature flag on Duplicate with Children #2721
- 💄(frontend) redesign 404 error standalone page #2696
- 💄(frontend) redesign 403 access denied page #2720
- ✨(frontend) duplicate with subdocuments #2584
- ✨(frontend) add markdown download option #2608
- ✨(frontend) turn pasted doc links into interlinks #2713
- ✨(helm) allow disallowing search engine indexing per instance #2694
- ✨(backend) expose the attachment max size in the config endpoint #2577
- ✨(frontend) warn before uploading an attachment over the size limit #2577
- ✨(loadtest) add a websocket load generator for the collaboration
  server #2556
- ✨(loadtest) add k6 scenarios for the page-open sequence and the heavy
  endpoints #2556
- ✨(loadtest) add browser canaries measuring what a user feels under
  load #2556
- ✨(loadtest) add the grafana dashboards of the load-test campaign, valkey
  included #2556
- 📝(documentation) add the load-testing guide #2556
- 🔧(helm) run grafana with those dashboards in the dev cluster, in place of
  the prometheus console #2556
- ✨(backend) measure the calls to yhub and to the converters, the database
  pool and the celery queue #2556
- ✨(backend) add a `LoadTest` configuration and its `loadtest` application,
  minting sessions for load tests #2556
- ✨(collaboration) add opt-in prometheus metrics to yhub, server and worker,
  protected by a bearer token #2556
- ✨(collaboration) report yhub errors to sentry, configured through
  `SENTRY_*` #2556
- ✨(backend) add opt-in prometheus metrics on `/metrics`, protected by a
  bearer token #2556
- ✨(helm) add a dedicated ingress for the prometheus metrics of the backend
  and of yhub #2556
- ✨(helm) add a ServiceMonitor and a PodMonitor per component whose metrics
  are enabled, and `backend.metrics.enabled` #2556
- 🔧(helm) scrape the metrics of the dev cluster with a trimmed
  kube-prometheus-stack and the ServiceMonitors of the chart #2556
- 🔧(helm) serve the example console of django-prometheus on the dev
  Prometheus #2556
- ✨(backend) add a service generating cached RS256 JWT tokens #2556
- ✨(backend) publish the JWT public key on a JWKS endpoint #2556
- 🔧(dev) generate the JWT signing key when bootstrapping the dev stack #2556
- ✨(collaboration) add an admin reset-connections endpoint on yhub #2556
- ✨(collaboration) add a create-ydoc endpoint on yhub #2556
- ✨(collaboration) soft-migrate legacy S3 documents into yhub #2556
- ✨(collaboration) replay legacy s3 version history into yhub #2556
- ✨(backend) add a service to call the yhub REST API #2556
- ✨(backend) call YHubService to seed initial document content #2556
- ✨(collaboration) add a get-ydoc endpoint on yhub #2556
- ✨(backend) duplicate a document through the collaboration server #2556
- ✨(backend) serve `documents/{id}/formatted-content/` from yhub #2556
- ✨(collaboration) notify the backend when the worker persists new
  content #2556
- ✨(collaboration) let a user read the document's editing history #2556
- ✨(frontend) fall back to http polling when the websocket cannot be
  opened. #2556
- 🔧(collaboration) make the version-history granularity configurable through
  `COLLABORATION_VERSION_GRANULARITY_MS` #2556
- ✨(frontend) keep a local copy of documents, so they open and stay editable
  offline #2556

Changed

- 🛂(backend) let users allowed to comment list each other's accesses #2447
- ♻️(collaboration) migrate the collaboration server from hocuspocus to
  yhub #2556
- 💥(y-provider) y-provider becomes converter-only #2556
- 💥(backend) move the resource server JWKS from `/api/{version}/jwks` to
  `/external_api/{version}/jwks` #2556
- 🔧(collaboration) adapt docker stack for development purpose #2556
- 🔧(helm) run a valkey for the backend and one for yhub in dev and
  feature #2556
- 💄(frontend) redesign 401 error standalone page #2716

Fixed

- 🐛(documentation) fix minio port and keycloak realm in the k8s guide #2751
- 🐛(collaboration) bound the calls yhub makes to the backend with a timeout,
  `YHUB_BACKEND_REQUEST_TIMEOUT_MS`, 5s by default #2753
- 🐛(backend) compensate document duplication failures #2755
- 🐛(frontend) open search results in a new tab with ctrl/cmd+click #2719
- 🐛(docker) pull minio images from pgsty #2739
- 🐛(backend) retry the duplicate of a document on a tree path collision #2726
- 🐛(frontend) keep caption and alignment when replacing an image #2730
- 🐛(backend) reset the collaboration connections on every access change #2725
- ⚡️(backend) coalesce and pace the resets of collaboration connections #2725
- 🐛(frontend) clear callout background on Backspace #2052
- 🐛(export) keep image aspect ratio in PDF columns #2670
- 🐛(frontend) fix redirect after deleting a document #2706
- 🐛(frontend) keep documents draggable with a mouse when zoomed #2727
- 📝(docs) fix markdown typo in installation README #2766
- 🐛(i18n) export locale correctly #2750
- 🐛(frontend) keep login and logout out of the service worker cache #2771
- 🐛(frontend) reduce PostHog volume from web vitals and opt_in spam #2701
- 🐛(frontend) stop reconnecting to the websocket based on the status
  code #2556
- 🐛(frontend) stop the service worker from caching the collaboration server's
  rest api #2556

Removed

- 🔥(backend) remove the unused `CollaborationService` #2556
- 💥(backend) remove the `documents/{id}/can-edit/` endpoint #2556
- 💥(backend) remove the `documents/{id}/content/` endpoint #2556
- 🔥(backend) remove the document version endpoints. #2556
- 🔥(backend) remove `Document.content` #2556

Security

- 🔒️(collaboration) stop read-only users from sharing their cursor #2556
@lunika
lunika merged commit dbf8fec into main Oct 9, 2026
73 checks passed
@lunika
lunika deleted the release/v6.0.0 branch October 9, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants