Skip to content

fix(ui): clarify copy across extension tabs - #309

Merged
guyghost merged 3 commits into
developfrom
guyghost-clarify-extension-tabs-copy
Aug 21, 2026
Merged

fix(ui): clarify copy across extension tabs#309
guyghost merged 3 commits into
developfrom
guyghost-clarify-extension-tabs-copy

Conversation

@guyghost

@guyghost guyghost commented Aug 21, 2026

Copy link
Copy Markdown
Owner

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):

  • Grammar and accents: STATUS_LABELS normalized to feminine (Candidate -> Envoyee, Refuse/Accepte/Archive -> feminine forms); reperee -> reperee, Demarrage -> Demarrage, Ecart -> Ecart, A calibrer -> A calibrer, parametres, C'est pret
  • Meaning fixes: the OnboardingWelcome inversion; matcher -> classer; investiguer -> examiner; the MissionCard CTA "Investiguer ->" -> "Analyser ->"; "Réessayer" -> "Réessayez"
  • Jargon to user language: pipeline -> suivi/candidatures throughout the Suivi tab (including aria-labels and proof labels); "transaction multi-stockage", "snapshots", and cache/recalculs phrasing rewritten plainly; "Sync" -> "Synchronisé"; page title "Paramètres" -> "Réglages" to match the nav label
  • Vague labels: "Normal"/"Fluide" -> "A jour"; "Action {time}" -> "Prochaine action : {time}"; "+N autres" -> "+N autres dossiers"
  • Tone: neutral copy for the partial-profile default scan during onboarding; calmer MissionCard hide/compare tooltips; "alimenter le marche" -> "alimenter le radar" (matching the pinned radar vocabulary)

No state transitions or business logic changed - string literals only, so the Model -> Review -> Implement -> Verify loop is satisfied by construction.

Notes for reviewers

  • Test assertions pinning the old strings were updated in the same commit: ApplicationsPage.test.ts (Envoyee button, suivi wording, terminal-relance copy), operational-ui-constraints.test.ts (Sauvegarde ellipsis, examiner, Chargement des candidatures), e2e feed tests (Analyser), and the focus-registry test's synthetic trigger.
  • The settings copy keeps "Prochain scan des que Chrome declenche l'alarme" since it is accurate for MV3 alarms and test-pinned.
  • Verified: full unit suite (4024 passed), typecheck clean, lint 0 errors, impeccable detector returned no findings on the touched files.

Open in Devin Review

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>
Copilot AI lite review requested due to automatic review settings August 21, 2026 18:36
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pulse Ready Ready Preview Aug 21, 2026 6:54pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pulse-dashboard Skipped Skipped Aug 21, 2026 6:54pm

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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" in src/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.

Comment thread apps/extension/src/ui/organisms/MissionArrivalStack.svelte

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread apps/extension/src/lib/state/app-navigation.svelte.ts
Comment thread apps/extension/src/ui/pages/SettingsPage.svelte

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread apps/extension/src/lib/state/app-navigation.svelte.ts
Comment thread apps/extension/src/ui/pages/SettingsPage.svelte Outdated
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>
@vercel
vercel Bot temporarily deployed to Preview – pulse-dashboard August 21, 2026 18:53 Inactive
@guyghost
guyghost merged commit c94e94c into develop Aug 21, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants