diff --git a/docs/guide/getting-started-en.md b/docs/guide/getting-started-en.md index 5d7ddf9..ad9ab8b 100644 --- a/docs/guide/getting-started-en.md +++ b/docs/guide/getting-started-en.md @@ -43,8 +43,7 @@ at installation; you grant it one domain at a time. - Under **Known domains**, click the platform you use: GitHub.com, Azure DevOps Services (`dev.azure.com`) or GitLab.com. The browser asks you to confirm. -- For a host of your own (GitHub Enterprise Server, Azure DevOps Server, a - `visualstudio.com` organisation, GitLab Self-Managed), type its domain under **Other +- For a host of your own (GitHub Enterprise Server, GitLab Self-Managed), type its domain under **Other domains** and choose the platform that serves it **before** clicking **Allow**. The domain then appears under **Configured domains**, where you can withdraw the access at diff --git a/docs/guide/getting-started-fr.md b/docs/guide/getting-started-fr.md index bab845e..2721b25 100644 --- a/docs/guide/getting-started-fr.md +++ b/docs/guide/getting-started-fr.md @@ -45,8 +45,7 @@ demande aucun accès aux sites à l'installation ; vous autorisez les domaines u - Sous **Domaines connus**, cliquez sur la plateforme que vous utilisez : GitHub.com, Azure DevOps Services (`dev.azure.com`) ou GitLab.com. Le navigateur vous demande de confirmer. -- Pour un hôte qui vous est propre (GitHub Enterprise Server, Azure DevOps Server, une - organisation `visualstudio.com`, GitLab Self-Managed), saisissez son domaine sous **Autres +- Pour un hôte qui vous est propre (GitHub Enterprise Server, GitLab Self-Managed), saisissez son domaine sous **Autres domaines** et choisissez la plateforme qui le sert **avant** de cliquer sur **Autoriser**. Le domaine apparaît alors sous **Domaines configurés**, où vous pouvez retirer l'accès à tout diff --git a/docs/guide/platforms-en.md b/docs/guide/platforms-en.md index 7d8e2c2..21a78eb 100644 --- a/docs/guide/platforms-en.md +++ b/docs/guide/platforms-en.md @@ -27,14 +27,12 @@ the three adapters; each is active only on the domains you allowed. | GitHub Enterprise Cloud with data residency | your own subdomain of `ghe.com` | *Other domains*: type it, choose GitHub | | GitHub Enterprise Server | your own domain | *Other domains*: type it, choose GitHub | | Azure DevOps Services | `dev.azure.com` | *Known domains*, one click | -| Azure DevOps Services, legacy URL | `.visualstudio.com` | *Other domains*: type it, choose Azure DevOps. **Not measured.** | -| Azure DevOps Server | your own domain | *Other domains*: type it, choose Azure DevOps. **Not measured.** | +| Azure DevOps Server | your own domain | **Not supported yet**: the adapter recognises no page there | | GitLab.com | `gitlab.com` | *Known domains*, one click | | GitLab Self-Managed, GitLab Dedicated | your own domain | *Other domains*: type it, choose GitLab. **Not measured.** | No domain is granted at installation, `github.com` included. You type your own subdomain -rather than allowing all of `ghe.com` or `visualstudio.com`: the extension only gets the one -host you use. +rather than allowing all of `ghe.com`: the extension only gets the one host you use. ## GitHub @@ -50,11 +48,15 @@ host you use. ## Azure DevOps -Measured on `dev.azure.com` only. The adapter was built on captured pages of that host; -`.visualstudio.com` and Azure DevOps Server have not been captured, so nothing -says its selectors find their pages +On `dev.azure.com` only. The adapter was built on captured pages of that host, and +recognises no pull request anywhere else ([DEC0008](../idr/DEC0008-azure-devops-on-dev-azure-com-only-en.md)). +- **Legacy `.visualstudio.com` URLs are not supported, and will not be.** The + toolkit supports the current form of each platform; Microsoft presents those URLs as the + legacy form of `dev.azure.com`, to which an organisation can switch in its settings. +- **Azure DevOps Server is not supported yet**: none of its pages has been captured. + - Every send button goes through validation: *Comment*, *Reply*, *Reply & resolve*, *Update*, *Update & resolve*, *Reply & reactivate*. - A general comment is a thread with a status, like a comment on a line: a blocking label diff --git a/docs/guide/platforms-fr.md b/docs/guide/platforms-fr.md index 0259743..62534b7 100644 --- a/docs/guide/platforms-fr.md +++ b/docs/guide/platforms-fr.md @@ -28,14 +28,12 @@ que vous avez autorisés. | GitHub Enterprise Cloud avec résidence des données | votre propre sous-domaine de `ghe.com` | *Autres domaines* : saisissez-le, choisissez GitHub | | GitHub Enterprise Server | votre propre domaine | *Autres domaines* : saisissez-le, choisissez GitHub | | Azure DevOps Services | `dev.azure.com` | *Domaines connus*, un clic | -| Azure DevOps Services, ancienne URL | `.visualstudio.com` | *Autres domaines* : saisissez-le, choisissez Azure DevOps. **Non vérifié.** | -| Azure DevOps Server | votre propre domaine | *Autres domaines* : saisissez-le, choisissez Azure DevOps. **Non vérifié.** | +| Azure DevOps Server | votre propre domaine | **Pas encore pris en charge** : l'adaptateur n'y reconnaît aucune page | | GitLab.com | `gitlab.com` | *Domaines connus*, un clic | | GitLab Self-Managed, GitLab Dedicated | votre propre domaine | *Autres domaines* : saisissez-le, choisissez GitLab. **Non vérifié.** | -L'installation n'autorise aucun domaine, pas même `github.com`. Pour `ghe.com` et -`visualstudio.com`, vous saisissez votre propre sous-domaine plutôt que d'autoriser tout le -domaine : l'extension n'obtient accès qu'à l'hôte que vous utilisez. +L'installation n'autorise aucun domaine, pas même `github.com`. Pour `ghe.com`, vous +saisissez votre propre sous-domaine plutôt que d'autoriser tout le domaine : l'extension n'obtient accès qu'à l'hôte que vous utilisez. ## GitHub @@ -52,11 +50,17 @@ domaine : l'extension n'obtient accès qu'à l'hôte que vous utilisez. ## Azure DevOps -Vérifié sur `dev.azure.com` seulement. L'adaptateur a été construit sur des pages capturées -sur cet hôte ; `.visualstudio.com` et Azure DevOps Server n'ont pas été capturés, -et rien ne dit que ses sélecteurs y trouvent leurs éléments +Sur `dev.azure.com` seulement. L'adaptateur a été construit sur des pages capturées sur cet +hôte, et ne reconnaît aucune pull request ailleurs ([DEC0008](../idr/DEC0008-azure-devops-on-dev-azure-com-only-fr.md)). +- **Les anciennes URL `.visualstudio.com` ne sont pas prises en charge, et ne le + seront pas.** La boîte à outils prend en charge la forme actuelle de chaque plateforme ; + Microsoft présente ces URL comme l'ancienne forme de `dev.azure.com`, vers laquelle une + organisation peut basculer depuis ses réglages. +- **Azure DevOps Server n'est pas encore pris en charge** : aucune de ses pages n'a été + capturée. + - Tous les boutons d'envoi passent par la validation : *Comment*, *Reply*, *Reply & resolve*, *Update*, *Update & resolve*, *Reply & reactivate*. - Un commentaire général est un fil doté d'un statut, comme un commentaire sur une ligne : un diff --git a/packages/extension/src/options/options.html b/packages/extension/src/options/options.html index fa04df1..c4ef1b0 100644 --- a/packages/extension/src/options/options.html +++ b/packages/extension/src/options/options.html @@ -476,9 +476,8 @@

Domaines autorisés

Domaines connus

Adresse et plateforme déjà connues : un clic autorise l'accès.

@@ -488,12 +487,8 @@

Domaines autorisés

Autres domaines

-

- Pour GitHub Enterprise Server, Azure DevOps Server, une organisation historique - visualstudio.com + Pour GitHub Enterprise Server, Azure DevOps Server, GitLab Self-Managed ou tout autre hôte propre à votre organisation : choisissez la plateforme avant d'autoriser l'accès.

diff --git a/packages/extension/src/options/tour.ts b/packages/extension/src/options/tour.ts index 9a0a0f4..21fd0c4 100644 --- a/packages/extension/src/options/tour.ts +++ b/packages/extension/src/options/tour.ts @@ -344,9 +344,17 @@ export function startTour(doc: Document = document, lang = 'en'): TourHandle | n // personne. Mesuré, pas supposé : `spikes/options-tour.mjs` vérifie que chaque étape // tient réellement dans la fenêtre. const bottomOfView = (view?.scrollY ?? 0) + (view?.innerHeight ?? 0); - const height = popover.offsetHeight; + // La hauteur RÉELLE, fractions comprises : `offsetHeight` l'arrondit à l'entier, et une + // fiche de 226,3 px jugée en tenir 226 dépassait le bas de la fenêtre de 0,2 px — mesuré + // dans la CI sur l'étape « Labels ajoutés » (`spikes/options-tour.mjs`). + const height = popover.getBoundingClientRect().height; if (height > 0 && rect.bottom + gap + height > bottomOfView) { - popover.style.top = `${Math.max(0, rect.top - gap - height)}px`; + // Le plancher est le HAUT DE LA FENÊTRE, pas celui du document : les coordonnées sont + // absolues, et `Math.max(0, …)` laissait passer une fiche au-dessus du bord visible dès + // que la page avait défilé. Mesuré sur l'étape « Labels ajoutés » : cible plus haute que + // la place laissée au-dessus d'elle, fiche à 1 px au-dessus de la fenêtre + // (`spikes/options-tour.mjs`). + popover.style.top = `${Math.max(view?.scrollY ?? 0, rect.top - gap - height)}px`; } } diff --git a/packages/extension/src/ui/strings.ts b/packages/extension/src/ui/strings.ts index c7d815e..a5aa33c 100644 --- a/packages/extension/src/ui/strings.ts +++ b/packages/extension/src/ui/strings.ts @@ -98,7 +98,7 @@ const fr: Record = { 'options.known.empty': 'Tous les domaines connus sont déjà autorisés.', 'options.other.heading': 'Autres domaines', 'options.other.sub.1': - 'Pour GitHub Enterprise Server, Azure DevOps Server, GitLab Self-Managed, une organisation historique', + 'Pour GitHub Enterprise Server, Azure DevOps Server, GitLab Self-Managed', 'options.other.sub.2': 'ou tout autre hôte propre à votre organisation : choisissez la plateforme avant d’autoriser l’accès.', 'options.other.host.aria': 'Domaine à autoriser', @@ -219,7 +219,7 @@ const fr: Record = { 'options.status.selectors.copy.manual': 'Copie automatique impossible : le texte est sélectionné ci-dessous, copiez-le avec Ctrl+C (⌘C sur Mac).', 'options.platform.github': 'GitHub Enterprise Server / GHE Cloud', - 'options.platform.azdo': 'Azure DevOps Server ou organisation visualstudio.com', + 'options.platform.azdo': 'Azure DevOps Server', 'options.platform.gitlab': 'GitLab Self-Managed', 'options.platform.config': 'Hôte de configuration uniquement', 'options.platform.github.option': 'GitHub Enterprise Server / GHE Cloud (résidence)', @@ -358,7 +358,7 @@ const en: Record = { 'options.known.empty': 'Every known domain is already allowed.', 'options.other.heading': 'Other domains', 'options.other.sub.1': - 'For GitHub Enterprise Server, Azure DevOps Server, GitLab Self-Managed, a legacy organisation', + 'For GitHub Enterprise Server, Azure DevOps Server, GitLab Self-Managed', 'options.other.sub.2': 'or any other host of your own: choose the platform before granting access.', 'options.other.host.aria': 'Domain to allow', @@ -478,7 +478,7 @@ const en: Record = { 'options.status.selectors.copy.manual': 'Automatic copy failed: the text is selected below, copy it with Ctrl+C (⌘C on Mac).', 'options.platform.github': 'GitHub Enterprise Server / GHE Cloud', - 'options.platform.azdo': 'Azure DevOps Server or visualstudio.com organisation', + 'options.platform.azdo': 'Azure DevOps Server', 'options.platform.gitlab': 'GitLab Self-Managed', 'options.platform.config': 'Configuration host only', 'options.platform.github.option': 'GitHub Enterprise Server / GHE Cloud (residency)', diff --git a/packages/extension/test/options-i18n.test.ts b/packages/extension/test/options-i18n.test.ts index 8d49d9c..c72b3fe 100644 --- a/packages/extension/test/options-i18n.test.ts +++ b/packages/extension/test/options-i18n.test.ts @@ -105,14 +105,13 @@ describe('application du catalogue à la vraie page', () => { } }); - it('les segments d’une phrase coupée par un se traduisent tous les deux', () => { - // Ces phrases sont découpées parce que le catalogue ne transporte pas de balisage. Le - // risque du découpage est d'en oublier une moitié, qui reste alors dans l'autre langue - // au milieu de la phrase. + it('les deux segments d’une phrase découpée se traduisent tous les deux', () => { + // La phrase est portée par deux clés : elle encadrait un ``, que le catalogue ne + // transporte pas. Le risque du découpage est d'en oublier une moitié, qui reste alors dans + // l'autre langue au milieu de la phrase. applyStaticStrings(document, 'en'); const paragraph = document.querySelector('[data-i18n="options.other.sub.1"]')?.closest('p'); expect(paragraph?.textContent).toContain(ui('en', 'options.other.sub.1')); expect(paragraph?.textContent).toContain(ui('en', 'options.other.sub.2')); - expect(paragraph?.textContent).toContain('visualstudio.com'); }); }); diff --git a/specifications-fr.md b/specifications-fr.md index 39d7eb9..006f54b 100644 --- a/specifications-fr.md +++ b/specifications-fr.md @@ -1553,10 +1553,12 @@ Couvre Azure DevOps Services et Azure DevOps Server. | | Cloud | Auto-hébergé | |---|---|---| | **Offre** | Azure DevOps Services | Azure DevOps Server | -| **Domaine** | `dev.azure.com`, ou `*.visualstudio.com` pour les organisations historiques | Domaine on-premise, variable par instance | +| **Domaine** | `dev.azure.com` — les URL historiques `{organisation}.visualstudio.com` sont hors périmètre (ci-dessous) | Domaine on-premise, variable par instance | | **Rythme de mise à jour du produit** | Continu | Par release | | **Version minimale supportée** | — | *à définir avec la même méthode qu'en A.1* | +**Les URL historiques `{organisation}.visualstudio.com` sont hors périmètre.** La boîte à outils prend en charge la forme actuelle de chaque plateforme, pas les formes que la plateforme elle-même a remplacées : Microsoft présente ces URL comme l'ancienne forme de `dev.azure.com`, vers laquelle une organisation bascule depuis ses réglages. L'extension n'y reconnaît aucune page et ne propose pas de les autoriser (décision du propriétaire, 2026-11-13). + ### B.2 Éditeur et écriture programmatique - Éditeur : **une `