Commit Graph
2280 Commits
Author SHA1 Message Date
Manuel Raynaud a57fb7cbde ♻️(backend) remove deprecation warning from pydantic-ai library
Since pydantic-ai has ben upgraded deprecation warning were present in
the logs. This commint change how the instrumentation is enabled to be
compatible with hoe pydantic-ai manage it. Also prompt system are
ignored when they come from the front, like we are doing and dropped. To
maintain the system prompt we use the instruction parameter instead.
2026-08-04 10:16:51 +02:00
Manuel Raynaud 050591e2ee ⬆️(backend) upgrade pydantic-ai-slim and remove mistralai
We upgraded pydantic-ai-slim to the latest version and add mistral has
extra dependency. Doing this, the direct dependance to mistral can be
removed and will be managed with pidantic-ai-slim package. The import of
mistralai has changed, we have to updagre them from mistralai to
mistralai.client
2026-08-04 10:16:50 +02:00
Manuel Raynaud 7439e3f94c 🔧(backend) allow all python 3.14 versions
We don't want to restrict to the higher 3.14 version but for all
available 3.14 versions.
2026-08-04 10:16:50 +02:00
Manuel Raynaud a711e93314 ⬆️(docker) upgrade to python 3.14.6
We want to upgrade to version 3.14 of python.
2026-08-04 10:16:50 +02:00
renovate[bot]andManuel Raynaud 0f823b50fb ⬆️(dependencies) update python dependencies 2026-08-04 10:16:49 +02:00
Florent Chehab edf26d6321 (backend) conditional email notification in server to server api
Add send_notification_email flag (defaults to True) on
the ServerCreateDocumentSerializer so that we can bypass
sending the email notification when creating a document
with the server to server API.

Signed-off-by: Florent Chehab <flo@nextmile.fr>
2026-08-03 10:54:31 +02:00
renovate[bot]andGitHub eed828d8c7 ⬆️(dependencies) update js-yaml to v5.2.2 [SECURITY] 2026-07-28 19:42:08 +00:00
virgile-devandGitHub 61c2183390 📝(docs) update readme (#2508)
Reflect new features and update screenshots

Signed-off-by: virgile-deville <virgile.deville@beta.gouv.fr>
2026-07-23 09:39:19 +00:00
renovate[bot]andGitHub 845f134a51 ⬆️(dependencies) update next to v16.2.11 [SECURITY] 2026-07-23 02:11:03 +00:00
Nathan Panchout 9c3bc8ac60 (frontend) cover presenter share links
Exercise direct present links, copied slide URLs, and mobile behavior.

Keep the e2e slice scoped to the share-link workflow.
2026-07-22 11:16:35 +02:00
Nathan Panchout 33ca348b02 (frontend) open and share a presentation at a given slide
Support ?view=present&slide=N deep-links (clamped, URL kept in sync) and
a "Copy link to slide" action in the floating bar. Ignore the deep-link
on mobile.

Closes #2397
2026-07-22 11:16:35 +02:00
Anthony LC b689ee59a6 🙈(project) add AI config to gitignore
Add github AI config to gitignore.
AI instructions can be quite subjective and can be
a source of bias, so we don't commit them to the repo
yet.
2026-07-21 14:57:29 +02:00
Anthony LC c9bacaeb5e 🚨(y-provider) adapt build command to tsc-alias upgrade
Recent upgrade of tsc-alias introduced a breaking
change in the build command, which now requires the
`--project` flag to specify the path to the
tsconfig file.
2026-07-21 14:57:28 +02:00
Anthony LC ba0a80cdef ⬆️(dependency) upgrade fetch-mock to 12.6.0
Previous version had security vulnerabilities,
better to upgrade to the latest version.
We had to adapt tests to the new version of fetch-mock.
2026-07-21 14:57:28 +02:00
Anthony LC b550a4543b 🔒️(js) fix security warning
- brace-expansion
- body-parser
2026-07-21 14:57:28 +02:00
Anthony LC b17df9971c 📌(dependencies) add @gouvfr-lasuite/cunningham-react resolution
@gouvfr-lasuite/ui-kit pin @gouvfr-lasuite/cunningham-react,
so multiple versions of
@gouvfr-lasuite/cunningham-react were being installed,
which was causing issues.
We pin the version to 4.3.1, forcing all packages to
use the same version.
2026-07-21 14:57:28 +02:00
Anthony LC 11efa78088 ⬇️(dependency) downgrade ai packages to previous version
Blocknote is not compatible with the latest version
of the ai packages:
- @ai-sdk/openai
- ai
Better to downgrade to the previous version until the
compatibility issue is resolved.
2026-07-21 14:25:32 +02:00
Anthony LC a63049b398 🚨(prettier) automatic new prettier formatting
We upgraded prettier in a previous commit. Some files
were not formatted with the new prettier version.
This commit applies the new prettier formatting to
those files.
2026-07-21 14:25:32 +02:00
Anthony LC aff6f2b4cc ⬇️(dependency) downgrade typescript to v6.0.3
We are downgrading TypeScript from version 7.0.2
to 6.0.3.
To bump the version of TypeScript, we will need
to update the codebase to be compatible with the
new version.
2026-07-21 14:25:32 +02:00
renovate[bot]andAnthony LC be5071682b ⬆️(dependencies) update js dependencies 2026-07-21 14:25:32 +02:00
Cyril 1258ae2e04 ️(frontend) use semantic <p> elements in document info card
Wrap role and last-update text in DocHeaderInfo with <p>.
2026-07-21 11:42:14 +02:00
5217dd4fca 🐛(frontend) redirect homepage to login when homepage feat is disabled
FRONTEND_HOMEPAGE_FEATURE_ENABLED=false makes the Auth guard send
anonymous visitors on / straight to login instead of /home, but the
/home page itself still rendered the full homepage when reached via a
direct link. Redirect it to login too, so disabling the feature really
disables the page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PhqB4SHsHCuMfprwLEN3rR
Signed-off-by: Maarten Draijer <maarten@madra.nl>
2026-07-21 10:56:07 +02:00
exyoneandAnthony LC 126818fc15 🌐(i18n) rename cn_CN to zh_CN, add eo_PL and zh_TW locales
We have renamed the Chinese locale from `cn_CN`
to `zh_CN` to align with standard locale naming
conventions.
Additionally, we have added support for two new
locales: Esperanto (`eo_PL`) and
Traditional Chinese (`zh_TW`).
2026-07-21 10:19:01 +02:00
Nathan Panchout 5a8f6967ce 💄(frontend) restyle the editor divider block
Slim the divider to a 1px rule with a brand-colored selected state,
matching the mockups.

Closes #2474
2026-07-20 10:52:19 +02:00
Nathan Panchout 708fa837cc 🐛(frontend) remove the stray focus outline on presenter slides
A selected image (or any selected node) leaked its editing outline into
the read-only slide. Suppress the selected-node outline so nothing looks
focused unless the user tabs or clicks.

Closes #2393
2026-07-20 09:55:20 +02:00
Nathan Panchout 327c7ba103 🐛(frontend) keep divider children and trim slide-break spacing
Dividers with children are kept as structural parents so their slide
keeps its indentation; the divider's own rule is hidden. Empty
paragraphs around a divider are dropped so habitual spacing no longer
offsets slides.

Closes #2398
2026-07-20 09:55:20 +02:00
Nathan Panchout 33d091d88f (frontend) show a generated title slide before the content
Prepend a slide with the document title (emoji stripped) so every
presentation opens on a cover, announced to screen readers like any
other slide (#2466).
2026-07-20 09:55:20 +02:00
Nathan Panchout d87b82ef37 ♻️(frontend) extract reusable presenter slide content component
Pull the BlockNote rendering out of PresenterSlide into
PresenterSlideContent so it can be reused by the title slide and the PDF
export. Add a PresenterSlideData union (title | content) and a shared
PresenterBlock type.
2026-07-20 09:55:20 +02:00
Nathan Panchout 877109be79 ♻️(frontend) drive the presenter from a store and one mount point
Move presenter ownership out of DocToolBox into a top-level
PresenterRoot driven by a zustand store, lazy-load the overlay and paint
a boot cover while the editor boots. Groundwork for the deep-link and
present-from-here features (#2466).
2026-07-20 09:55:20 +02:00
Cyril 8d2dd5b565 (frontend) restore skip to content link after header redesign
Re-add skip link with responsive positioning and document title focus.
2026-07-13 09:41:42 +02:00
Anthony LCandManuel Raynaud 57ad4f4be8 🔖(release) patch 5.4.1
Changed:
- ♻️(backend) reset collaboration connection in cascade for all children

Fixed:
- 💄(frontend) fix some UI/UX in the left panel
- 🐛(frontend) fix tree dnd firefox
v5.4.1
2026-07-09 18:22:20 +02:00
Manuel Raynaud 9551ea67d9 🐛(helm) fix nil pointer error with envFrom in the backened_conjob_list
In the backend_cronjob_list.yaml template the usage `.Values` instead of
`$.Values` was causing a nil pointer error
2026-07-09 18:22:19 +02:00
Anthony LC 5a705b045b 💄(frontend) fix some UI/UX in the left panel
- Collapse panel button is now:
  - fully clickable,
  - the title is hidden
  - when the doc title is visible
  - when small mobile the title is hidden
- Add button login when logout whatever the device
- Fix flickering logo
- New icon name to avoid cache
2026-07-09 17:46:12 +02:00
Anthony LC 8f53e4b068 🐛(frontend) fix tree dnd firefox
With Firefox, the DND was not working properly anymore.
From a previous refacto, a item is now a link,
by default a link has a draggable attribute set
to true, it was conflicting with the DND library,
so we need to set it to false.
2026-07-09 17:45:47 +02:00
Manuel Raynaud d35b81a6ed ♻️(backend) reset collaboration connection in cascade for all children
When an access is updated or deleted, or a link_configuration is
changed, the collaration_service is used to reset the connection in the
collaboration server. As accesses and link_configuration are inherited
in a Docs tree, if the user is connected to a child, the connection is
not reset. This commit fix this issue by calling the reset on every
children in the tree.
2026-07-09 14:46:11 +02:00
Manuel Raynaud d1db000c76 🔧(backend) configure logging with propagate set to True
In the settings, the logging has set the propagate property to False.
While writing tests it wasn't possible to assert log was made using the
caplog fixtures because this propagate is set to False. Changing it to
True allow to correctly tests that a log is made using the caplog
fixture.
2026-07-09 14:45:04 +02:00
Stephan MeijerandGitHub 9c9f2134e7 🔊(y-provider) capture convert handler errors in Sentry
The y-provider `/api/convert` handler catches every writer/reader
exception and returns a generic `{"error":"An error occurred"}` 500. The
real JS exception is silently dropped: `logger()` only prints to stdout
when `COLLABORATION_LOGGING=true`, and Sentry's
`setupExpressErrorHandler` only sees unhandled errors — never this one.

Result: Sentry issues `DOCS-4ZY` / `DOCS-4ZZ` / `DOCS-6DK` all fire on
every 500, but none of them carry the underlying JS stack, making
root-cause diagnosis impossible from Python alone.

This patch adds `Sentry.captureException` in the outer catch with
`handler:convert` tag and `contentType` / `accept` / `bodyBytes` extras.
Behavior otherwise unchanged.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
2026-07-08 13:51:27 +00:00
virgile-devandGitHub 140334de55 📝(issue templates) switch to forms (#2207)
## Purpose

so it is easier to file issues

## Proposal

* [x] deleted templates in markdown
* [x] created YAML templates
2026-07-08 12:47:38 +00:00
Anthony LC 0659cc5247 🔖(minor) release 5.4.0
Added:
- (y-provider) preserve callouts, PDFs, page breaks, interlinking
  links and commented text on HTML/markdown export
- (frontend) add a user menu
- (frontend) new header and responsive harmonization
- (backend) add management command to reset a Document

Changed:
- ️(frontend) hide mobile left panel from screen readers when collapsed
- ️(frontend) enable blocknote heading ids for toc anchors
- ️(frontend) focus export modal on format select
- ️(frontend) configurable legal submenu in HelpMenu, remove Crisp
- ♻️(frontend) new create button for docs
- ️(frontend) align search modal field label with placeholder
- 🚚(frontend) move Waffle to bottom left
- ️(frontend) remove redundant aria-label on table of contents links
- ♻️(core) fix typo in settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY
- ♻️(backend) scope document search by document id instead of path

Fixed:
- 🐛(backend) prevent owner from leaving a soft-deleted document
- 🐛(frontend) fix removed item in the tree
- 🐛(frontend) fix service worker causing reload on tab focus
- 🐛(backend) update restore ability for inherited deletion
- 🔧(dev) make the dev stack domain-agnostic
- 🐛(frontend) stop force index redirect when delete doc
- 🐛(frontend) fix CTA on move modal on mobile

Removed:
- 🔥(backend) remove unused default authentication backend
v5.4.0
2026-07-08 10:55:43 +02:00
Anthony LC 5440146fcd ️(frontend) hide import button on a document
We decided to hide the import button on a
document because it is confusing for the user to
have the possibility to import a document when he
is already in a document. The import button is
now only available on the document list page.
We will add back the button soon, but a import
will create a new sub-document instead.
2026-07-08 10:55:42 +02:00
AntoLCandAnthony LC 11f3dcb635 🌐(i18n) update translated strings
Update translated files with new translations
2026-07-08 09:34:59 +02:00
Manuel Raynaud c647cb62f1 ♻️(frontend) change search using document path to its id
The search endpoint does not accept anymore the usage of the path
parameter but it is using the document id directly. We have to reflect
this changes in the frontend application.
2026-07-07 11:21:47 +02:00
Manuel Raynaud 9ef4a15f5e ♻️(backend) scope document search by document id instead of path
The search in a document tree was triggered by the usage of the document
path. The path is something guessable by incrementing it you can
discover public documents. We decided to change this to use the document
id which is not guessable and prevent discovering public documents.
Thanks to @maboukerfa for discovering it.
2026-07-07 11:21:47 +02:00
Anthony LC 6a6154659f 💄(frontend) improve ui/ux before release
Following the recommendations of the design team,
we lightly improved some UI/UX elements to be
more consistent and user-friendly before the
next release.

It includes the following changes:
- add a background to the grid
- add a fadein to the header buttons
- reduce the generic size icon
- add a title to the doc item
2026-07-07 10:57:20 +02:00
Anthony LC c2864378ed 🐛(frontend) fix CTA on move modal on mobile
On some mobile devices, the CTA button on the
move modal was not visible due to a CSS issue.
This commit fixes the issue by adjusting the modal's
layout and ensuring that the CTA buttons are visible.
2026-07-07 10:20:02 +02:00
Anthony LC 6a84430a4f 🔧(dev) make the dev stack domain-agnostic
Keycloak's hostname, its client's redirect/web
origins, and Django's CSRF trusted origins were
hardcoded to localhost, so the dev stack was
only reachable from that exact origin.
It is now possible to run the dev stack depending
what is configured in the env files.
2026-07-06 17:10:55 +02:00
Anthony LC 151d3a8135 🐛(frontend) stop force index redirect when delete doc
Depends the state, after deleted a doc, we were
automatically redirecting to the index page, which is
not always the desired behavior. This change stops
the automatic redirect after deleting a document,
allowing for more flexible navigation based on user
context.
2026-07-06 14:55:03 +02:00
Manuel Raynaud 9c9daff027 📝(documentation) explain how conversion format can be configured
Create a dedicated documentation to explain how conversion format is
handled and how it can be configured. Docspec configuration is also
covered.
2026-07-06 08:55:22 +02:00
Manuel Raynaud 4ed0ac5ba9 📝(documentation) how to enable collaboration safe guard mechanism
We write a documentation explaining how to enable the safe guard
collaboration feature to prevent a user not connected to the websocket
to erase the data coming from users connected to the websocket.
2026-07-06 08:55:21 +02:00
Manuel Raynaud b01e6d58fd ♻️(core) fix typo in settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY
The settings COLLABORATION_WS_NOT_CONNECTED_READY_ONLY contains a typo.
We don't want to see READY_ONLY but READ_ONLY. This commit fix the typo
and change everywhere in the codebase the settings name.
2026-07-06 08:55:21 +02:00