Skip to content

New release - Account edition W35 - #23153

Draft
github-actions[bot] wants to merge 1 commit into
masterfrom
release/Account-edition-UX-improvements
Draft

New release - Account edition W35#23153
github-actions[bot] wants to merge 1 commit into
masterfrom
release/Account-edition-UX-improvements

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

📦 New release

Approximate release date: 📆 24/08/2026

Transversal

✨ Features

🐛 Bug Fixes

/

…ing (#23131)

* feat(account): improve UX design for search assistant for FR e-invoicing

The user experience on the manager for B2B/B2G account is still not comprehensible =>
Customers still need to contact support to have information of how they can do the
company completion, and how they can add the e-invoicing address

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* feat(account): auto-search the SIRET already held when the lookup modal opens

Opening the company lookup now runs the search straight away when the account
already holds a valid SIRET, so the customer lands on the company found instead
of retyping it. A response is dropped when the SIRET has since been edited, or
when the modal was closed. The intro then asks the customer to check their
information, and the SIRET field carries the ui-kit error state. Field errors of
the edition form no longer show up before the customer touched them.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* feat(account): tell the customer what to complete on a non-disclosed company

The directory withholds the data of some companies, answering either the [ND]
token or an empty string depending on the provider. Empty values were not
detected at all, so the lookup silently blanked fields with no explanation, and
the company name kept the value of the previously searched company, which also
left the field locked.

Both shapes now count as missing, on the name and on the three parts of the
address. The modal lists what has to be filled in, its confirm button asks to
complete the information rather than to validate, and validating focuses the
first field to fill.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* test(sign-up): cover the SIRET search assistant and its lookup modal

The module had no test harness at all, so the three bugs found while building the
lookup modal went unnoticed until they were reproduced by hand: an empty value was
not recognised as withheld data, the company name inherited the previously searched
company and stayed locked, and a stale lookup response overwrote the selection.

Adds the vitest setup the rest of the repo uses, and 119 tests over the pure
helpers, the modal controller and the siret controller. Each of those three bugs
was reintroduced to check the suite fails, then reverted.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* fix(account): fill the lookup field with the SIRET held, searchable or not

The field was only filled in when the value already was a searchable 14-digit
SIRET, because seeding it sat inside that check. An account holding a SIREN, a
partially formatted value or a malformed one therefore opened the modal on an
empty field, and the customer had to retype what we already knew.

Seed the field with whatever is held, and keep the automatic lookup for a
usable 14-digit SIRET only: searching a value known to be incomplete would
greet the customer with an error they did not ask for.

The tests missed it by asserting no lookup fired without asserting what the
field showed, so they now cover the field content on both paths.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* fix(account): only clear the e-invoicing address on evidence against it

The selected e-invoicing billing address was emptied by things that said nothing
about it. A failed PUT /me broadcast the stale-address warning on any 400, and
the rules refresh that followed could drop the e-invoicing entry, which deleted
the model value and took the picker off the screen with it. The form also
refetches /newAccount/rules on every field change, so a refresh triggered by
another field cleared the selection on its own. An error forced on the company
data therefore cost the customer a choice the API had never pointed at.

A submit error never names the field it rejected, so every path now asks the
directory instead. The address is stale only when the refreshed rules offer
other addresses without it; an answer that brings none, or that omits the entry
altogether, is no evidence, and the entry is carried over so the picker keeps
its value.

A change of company still clears it, since another company may genuinely have no
address (RG5), and the picker still hides itself once the account stops being
eligible.

Adds the vitest setup this module was missing, along with 23 tests over both
decisions, each verified by reintroducing the behaviour it replaces.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* feat(account): drop the API errors once a company has been validated

The errors raised by the last submit stayed on screen after the customer
validated a company in the SIRET lookup, both as the alert banner and as the
inline message above the form. They described data that had just been replaced,
so they read as if the new company had been refused too.

Clear both when the siret component hands a company over, and name the alert
container and the event it is listening to rather than repeating their strings.

Adds 4 tests, verified by dropping the listener and the banner reset in turn.

ref: #MANAGER-22144

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>

* fix(i18n): add missing translations [CDS 1300]

Signed-off-by: CDS Translator Agent <opensource@ovh.net>

---------

Signed-off-by: Alexis Afonso <alexis.afonso@ovhcloud.com>
Signed-off-by: CDS Translator Agent <opensource@ovh.net>
Co-authored-by: Alexis AFONSO <alexis.afonso@ovhcloud.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@AlexisAfonso AlexisAfonso changed the title New release New release - Account edition W35 Aug 21, 2026
@AlexisAfonso AlexisAfonso self-assigned this Aug 21, 2026
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.

1 participant