fix(ui): clarify copy across extension tabs - #309
Conversation
Copy-only clarification pass over all side-panel tabs:
- Grammar: fix STATUS_LABELS gender series (Candidate->Envoyee,
Refuse/Accepte/Archive -> feminine), reperee/Demarrage/Ecart/A calibrer
accents, parametres, C'est pret apostrophe
- Meaning: OnboardingWelcome no longer says the opposite of the intent,
matcher->classer, investiguer->examiner/Analyser, Reessayer->Reessayez
- Jargon: pipeline->suivi/candidatures, multi-stockage/snapshots/cache
rewritten in user language, Sync->Synchronise, Parametres->Reglages
- Vague labels: Normal/Fluide->A jour, Action {time}->Prochaine action,
+N autres->+N autres dossiers
- Tone: neutral onboarding partial-scan copy, calmer MissionCard
tooltips, alimenter le radar
- Tests: sync pinned assertions (Envoyee, suivi wording, Sauvegarde…,
Analyser, examiner)
No state transitions or business logic changed.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
There was a problem hiding this comment.
🟡 Changes recommended
Some user-visible strings referenced in the PR description remain in non-touched call sites (so the copy pass is incomplete and parts of the UI may still display the old wording).
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Copy-only cleanup of French UI text across the MissionPulse extension (tabs + onboarding), aligning labels/CTAs/status copy with clearer user-facing wording and updating affected unit/e2e assertions.
Changes:
- Updated UI strings across pages/organisms/molecules (e.g., “pipeline” → “suivi”, “Investiguer” → “Analyser”, improved accents/ellipsis).
- Normalized application status labels (French feminine forms) via
STATUS_LABELS. - Updated unit + e2e tests that assert on UI copy.
File summaries
| File | Description |
|---|---|
| apps/extension/tests/unit/ui/operational-ui-constraints.test.ts | Updates string-assertion constraints to match the new copy (ellipsis, wording). |
| apps/extension/tests/unit/ui/MissionInvestigationDrawer.test.ts | Updates the synthetic trigger label used by the focus test to match new CTA wording. |
| apps/extension/tests/unit/ui/ApplicationsPage.test.ts | Updates toast/button assertions impacted by the Applications copy changes. |
| apps/extension/tests/e2e/feed.test.ts | Updates the mission-card CTA label expected by Playwright. |
| apps/extension/tests/e2e/feed-tracking-failures.test.ts | Updates helper expectations/comments to match the new CTA wording. |
| apps/extension/src/ui/pages/TJMPage.svelte | Refines empty-state copy (“alimenter le radar”). |
| apps/extension/src/ui/pages/SettingsPage.svelte | Renames/clarifies settings copy and several operational-card descriptions/status labels. |
| apps/extension/src/ui/pages/ProfilePage.svelte | Updates profile completion + saving-state copy (incl. ellipsis character). |
| apps/extension/src/ui/pages/ApplicationsPage.svelte | Rewords Applications (“Suivi”) page copy, labels, aria-labels, and empty/error states. |
| apps/extension/src/ui/organisms/VirtualMissionFeed.svelte | Tweaks empty feed copy (“disponible” vs “stockée”). |
| apps/extension/src/ui/organisms/TJMDashboard.svelte | Fixes accents in KPI labels/values (“Écart”, “À calibrer”). |
| apps/extension/src/ui/organisms/SourceHealthPanel.svelte | Updates action copy and “Sync” wording in health UI. |
| apps/extension/src/ui/organisms/ScanProgress.svelte | Fixes accents/ellipsis in scan progress messaging. |
| apps/extension/src/ui/organisms/ProfileSection.svelte | Updates save button copy to use consistent ellipsis character. |
| apps/extension/src/ui/organisms/OnboardingWelcome.svelte | Fixes onboarding welcome sentence inversion. |
| apps/extension/src/ui/organisms/OnboardingFlow.svelte | Refines onboarding partial-profile and completion copy (incl. apostrophe). |
| apps/extension/src/ui/organisms/MissionArrivalStack.svelte | Adjusts refresh error copy (“Réessayez”). |
| apps/extension/src/ui/organisms/ApplicationPipelineSummary.svelte | Updates summary state labels (“Normal/Fluide” → “À jour”). |
| apps/extension/src/ui/molecules/MissionCard.svelte | Updates tooltips + CTA label (“Analyser →”). |
| apps/extension/src/ui/molecules/AlertBuilderCard.svelte | Updates saving-state copy to consistent ellipsis character. |
| apps/extension/src/lib/state/settings-page.svelte.ts | Updates connected sync status copy (“synchro” → “synchronisation”). |
| apps/extension/src/lib/state/app-navigation.svelte.ts | Removes awkward aria label for Settings nav item. |
| apps/extension/src/lib/core/types/tracking.ts | Updates French status labels (feminine forms, “Envoyée”). |
| apps/extension/src/background/index.ts | Fixes accents in notification copy (“paramètres”). |
Review details
Suppressed comments (1)
apps/extension/src/ui/pages/ApplicationsPage.svelte:246
- The PR description says copy was clarified across tabs by replacing “pipeline”/jargon with user-facing “suivi”, but there are still user-visible “pipeline” strings in the Applications tab error boundary (e.g.
title="Le pipeline candidatures est indisponible",statusLabel="Pipeline interrompu"insrc/sidepanel/App.svelte:662-665). This means users can still see the old terminology even after these updates; consider updating those remaining strings to match the new “suivi” wording.
if (loadError) {
return {
severity: 'attention' as const,
statusLabel: 'Indisponible',
title: 'Le suivi des candidatures ne peut pas être chargé',
description: loadError,
evidence,
primaryActionLabel: 'Réessayer',
primaryActionIcon: 'refresh-cw',
- Files reviewed: 24/24 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2b4097a2b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sync the remaining pinned strings after the copy pass:
- mission-arrival-queue errorMessage: "Réessayer." -> "Réessayez."
(imperative form, matches MissionArrivalStack CTA)
- App.svelte applications error boundary: suivi wording replaces
pipeline ("Le suivi des candidatures est indisponible" /
"Suivi interrompu")
- dev-server e2e: navButton/getByRole locators follow the renamed
settings tab ('Settings'/'Paramètres' -> 'Réglages')
- packaged MV3 navigation scenario + packaged-tab-scenarios model:
settings tab accessible name and heading pins updated to 'Réglages'
(fixes the Packaged MV3 gate regression introduced by the rename)
The 4 settings e2e failures (IA locale / Export / Sauvegarde sections)
reproduce identically at the merge-base: the settings accordion now
renders collapsed, which predates this branch. Not addressed here.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The clarified status line promised analyses would avoid "tout recalcul", but semantic scores expire after seven days and profile changes invalidate the cache, so recomputation is expected in supported scenarios. Restore the "recalculs inutiles" qualification while keeping the clearer "réutilisera ces analyses" wording. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Why
The side panel's French copy had accumulated grammar bugs, anglicisms, engineering jargon, and vague status labels. The worst cases actively confused meaning: the onboarding welcome literally said the opposite of its intent ("pour ne rater que celles qui comptent"), and the application status badges mixed genders ("Candidaté" next to "Préparée").
What changed
A copy-only clarification pass across all six tabs plus onboarding, keeping the brand voice (calme, precis, fiable):
No state transitions or business logic changed - string literals only, so the Model -> Review -> Implement -> Verify loop is satisfied by construction.
Notes for reviewers