* docs(i18n): translate documentation corpus to French (MUL-7637)
Add French (.fr.mdx) translations for all 45 docs pages plus meta.fr.json
navigation, mirroring the English source. Product and UI terms follow the
in-app French locale at packages/views/locales/fr/ (issue -> tâche,
run -> exécution, autopilot -> automatisation, Chat -> Discussion,
Settings -> Paramètres, etc.). Status and role identifiers stay lowercase
English per the conventions glossary, with the French UI label shown once
where they are defined.
Co-authored-by: multica-agent <[email protected]>
* feat(docs): serve French docs locale (MUL-7637)
Register fr in the docs i18n config and add the French Fumadocs chrome,
language-switcher label, and home hero copy. Fumadocs maps fr to Orama's
built-in French tokenizer, so search needs no custom localeMap entry.
Co-authored-by: multica-agent <[email protected]>
* feat(i18n): link French UI to French docs (MUL-7637)
Route French users from the landing page, runtime guides, the autopilot
webhook filter help, and the Slack/Lark/DingTalk/Telegram setup links to
/docs/fr. The four integration tabs and the runtime helper each carried a
copy of the same locale-prefix ternary; they now share docsLocalePrefix.
Co-authored-by: multica-agent <[email protected]>
* fix(i18n): localize remaining docs entry points (MUL-7637)
French users still reached English docs from the Help menu, the Agents and
Skills "Learn more" links, and the landing footer. The views links now use
docsLocalePrefix; the landing dictionaries take the docs href from
docsHrefForLocale, so locales that reuse another dictionary (French reuses
English) still link to their own docs.
Co-authored-by: multica-agent <[email protected]>
---------
Co-authored-by: multica-agent <[email protected]>
MUL-6291. Vitest's own breakdown for `@multica/views` showed the shape of the
problem: environment 633s and import 644s against only 508s of actual test
execution. Two thirds of a cold frontend-test run went on building a jsdom per
file and importing its module graph, not on running assertions.
- 94 pure-logic `.test.ts` files across views/web/desktop now declare
`// @vitest-environment node`. Measured on the 45 converted views files:
environment 53.15s -> 4ms, wall 8.72s -> 2.03s. Candidates were picked by
module-graph analysis (skipping type-only imports) and rejected when the code
under test branches on `typeof window`/`document`, where node would silently
take the SSR path and still pass; the remainder were verified empirically and
reverted where they failed.
- The three jsdom setup files bail out when there is no DOM, so a node-env suite
can share them.
- schedule-editor: the pure state transitions (isFullDay, displayWindow,
timeAnchorOf, defaultAtTime, defaultEveryTime, clampWindow, toggleDay) move
out of the component into transitions.ts, with the full combination matrix as
a table-driven node-env suite. 34 cases in 3ms, replacing four DOM mounts.
- Cross-layer duplicates removed where a canonical layer already owns the
matrix: originSourceUrl (skills/lib/origin.test.ts) was re-run through the
refresh dialog and the detail page; needsSourceBackfill
(core/onboarding/needs-backfill.test.ts) through the backfill modal. Each
component keeps one wiring case naming the canonical file.
No behaviour change: the transitions extraction is a pure move, and every
removal names where the same contract is still covered.
Co-authored-by: Bohan-J <[email protected]>
Co-authored-by: multica-agent <[email protected]>
* i18n: add japanese locale
* fix: spacing issues
* refactor
* fix(desktop): set <html lang> before paint to avoid JA Kanji font flash
Switch the documentElement.lang sync from useEffect to useLayoutEffect so
lang is committed before the first paint. Otherwise Japanese desktop users
saw one frame of Kanji rendered with the Chinese-first fallback stack before
the html[lang|="ja"] CJK override applied. Also fix the stale selector in the
HTML_LANG comment (html[lang^="ja"] -> html[lang|="ja"]).
Addresses review nits on MUL-2893.
Co-authored-by: multica-agent <[email protected]>
* fix(docs): tokenize the ideographic iteration mark in JA search
Add U+3005 (々) to the Japanese search tokenizer character class. It sits just
below the kana blocks, so words like 様々 / 日々 / 個々 previously dropped the
mark and split awkwardly, hurting recall.
Addresses a review nit on MUL-2893.
Co-authored-by: multica-agent <[email protected]>
* fix(i18n): restore ja locale parity after merging main
Merging main brought new EN strings into agents/chat/onboarding/settings/
squads that the ja bundle (authored against an older snapshot) lacked, breaking
the locales parity test. Add the Japanese translations for the new keys
(workspace logo upload, agents runtime filter, chat session-history stop
dialog, onboarding social_github, squad archived status) and drop the two
renamed chat window keys (active_group / archived_group) that EN removed in
favour of history_group.
Fixes the failing @multica/views parity.test.ts on the FE CI for MUL-2893.
Co-authored-by: multica-agent <[email protected]>
---------
Co-authored-by: J <[email protected]>
Co-authored-by: multica-agent <[email protected]>