chore(typo): retire tous les tirets cadratins/demi-cadratins + garde CI
Some checks failed
CI / Build & test (Node 24) (push) Has been cancelled
CI / Pack & boot smoke (Node 22) (push) Has been cancelled
CI / No em/en dashes (push) Has been cancelled
CI / Build & test (Node 22) (push) Has been cancelled
Deploy site (production) / build-and-deploy (push) Successful in 20s

Remplace les 547 tirets cadratins (U+2014) et demi-cadratins (U+2013) des fichiers versionnés par la ponctuation contextuelle adaptée (point médian, deux-points, virgule, parenthèses ; tiret simple pour les plages), sur 122 fichiers (appli, vitrine, doc, tests, workflows, scripts).

Ajoute le job CI « lint-dashes » (git grep -P) qui échoue si un tiret cadratin/demi-cadratin réapparaît, hors logo binaire et captures brutes du terminal (fidélité des fixtures de détection de dialogue).
This commit is contained in:
2026-07-17 16:44:00 +02:00
parent 985531a986
commit 65ef616867
122 changed files with 538 additions and 521 deletions

View File

@@ -1,4 +1,4 @@
// Messages EN copie fidèle du dict() du design Arboretum.dc.html.
// Messages EN : copie fidèle du dict() du design Arboretum.dc.html.
export default {
navFeatures: 'Features',
navWorkspace: 'Workspace',
@@ -9,16 +9,16 @@ export default {
heroBadge: 'Mission control for AI coding agents',
heroTitle: 'Mission control for your AI coding agents',
heroSub:
'Run many Claude Code sessions across every git worktree and supervise them from any device, even your phone.',
'Run many Claude Code sessions across every git worktree, and supervise them from any device, even your phone.',
getStarted: 'Get started',
probKicker: 'The problem',
probTitle: "Many agents across worktrees is chaos and you're chained to one terminal.",
probTitle: "Many agents across worktrees is chaos, and you're chained to one terminal.",
probBody:
'Sessions scattered across tabs. No idea which agent is waiting on you. Step away from the desk and everything stalls. Arboretum is the single pane of glass.',
featKicker: 'Everything in one view',
featTitle: 'Built to supervise agents working in parallel',
feat1Title: 'Worktree-first',
feat1Desc: 'Work on your main branch or spin up an isolated worktree then commit, push or promote a branch to main, without opening a terminal. Branches, not chaos.',
feat1Desc: 'Work on your main branch or spin up an isolated worktree, then commit, push or promote a branch to main, without opening a terminal. Branches, not chaos.',
feat2Title: 'Many sessions, one view',
feat2Desc: 'Run parallel Claude Code agents side by side in a single live grid.',
feat3Title: 'Fine-grained states',
@@ -38,22 +38,22 @@ export default {
feat10Title: 'New project in one click',
feat10Desc: 'Create a project folder anywhere (optional git init) and start a Claude session in it, from any device.',
scAKicker: 'Worktree-first dashboard',
scATitle: 'See what needs you before anything stalls',
scATitle: 'See what needs you, before anything stalls',
scABody:
'A live list of every worktree and its session state. The Needs attention rail floats the agents waiting on a decision to the top, so nothing sits blocked while you are heads-down elsewhere. Commit, push or promote a branch to main straight from the card, and hide the noisy history left by past terminal sessions so the list stays actionable.',
scBKicker: 'Multi-terminal grid',
scBTitle: "Every agent's output, streaming live",
scBBody:
'Watch all your sessions at once real terminal output, color-coded by state, updating in real time. Click any pane to take over in a fullscreen terminal prompt pinned to the bottom, full scrollback above answer a prompt, or stop a run.',
'Watch all your sessions at once: real terminal output, color-coded by state, updating in real time. Click any pane to take over in a fullscreen terminal (prompt pinned to the bottom, full scrollback above), answer a prompt, or stop a run.',
scCKicker: 'On your phone',
scCTitle: 'Unblock an agent from the kitchen',
scCBody:
'Install the PWA and get a Web Push the second a session needs you. Tap the notification, read the prompt, answer the dialog — your agent keeps moving while you are away.',
'Install the PWA and get a Web Push the second a session needs you. Tap the notification, read the prompt, answer the dialog. Your agent keeps moving while you are away.',
grpHub: '1 session',
grpKicker: 'Work groups · cross-repo',
grpTitle: 'Drive every repo from one Claude session',
grpBody:
'Group the repos that move together a service, its client, its docs. Launch a single Claude session that spans all of them at once: one conversation, one shared context working across every repo instead of juggling one agent per repo.',
'Group the repos that move together: a service, its client, its docs. Launch a single Claude session that spans all of them at once: one conversation, one shared context working across every repo, instead of juggling one agent per repo.',
howKicker: 'How it works',
howTitle: 'Zero install. Three steps.',
step1Title: 'Launch the daemon',
@@ -64,7 +64,7 @@ export default {
step3Desc: 'Start Claude Code sessions on your main branch or any worktree, and watch them from anywhere.',
secKicker: 'Security',
secTitle: 'A web terminal you can actually trust',
secIntro: 'Built local-first. Nothing is exposed unless you choose to and even then, on your terms.',
secIntro: 'Built local-first. Nothing is exposed unless you choose to, and even then, on your terms.',
sec1Title: 'Localhost by default',
sec1Desc: 'Binds to 127.0.0.1. Nothing leaves your machine unless you say so.',
sec2Title: 'Hashed tokens',
@@ -72,7 +72,7 @@ export default {
sec3Title: 'Strict origin checks',
sec3Desc: 'Every request is origin-validated. No cross-site surprises.',
sec4Title: 'Remote via Tailscale',
sec4Desc: 'Reach it over Tailscale Serve no public port, no port forwarding.',
sec4Desc: 'Reach it over Tailscale Serve: no public port, no port forwarding.',
faqTitle: 'Questions, answered',
ctaTitle: 'Take command of your agents',
ctaBody: 'One command to launch. Supervise everything from one place.',
@@ -110,21 +110,21 @@ export default {
// New feature cards (P7→P12: IDE worktree)
feat11Title: 'A real IDE for every worktree',
feat11Desc: 'Browse the file tree, edit in a full Monaco editor, and read changes as inline diffs all in the /workspace view.',
feat11Desc: 'Browse the file tree, edit in a full Monaco editor, and read changes as inline diffs, all in the /workspace view.',
feat12Title: 'Diff & selective staging',
feat12Desc: 'Stage, unstage or discard file by file, then commit (all or staged), amend, fetch and pull without leaving the dashboard.',
feat12Desc: 'Stage, unstage or discard file by file, then commit (all or staged), amend, fetch and pull, without leaving the dashboard.',
feat13Title: 'Remote git services',
feat13Desc: 'Connect GitHub, GitLab or Gitea with a PAT or app password credentials encrypted at rest and clone over HTTPS with live progress.',
feat13Desc: 'Connect GitHub, GitLab or Gitea with a PAT or app password (credentials encrypted at rest) and clone over HTTPS with live progress.',
feat14Title: 'Auto-archive sessions',
feat14Desc: 'Finished sessions are archived automatically after a configurable retention window (30 days by default), keeping the list clean.',
feat15Title: 'Real-time file sync',
feat15Desc: 'A filesystem watcher streams changes the moment a file moves on disk diffs and status update live, no refresh needed.',
feat15Desc: 'A filesystem watcher streams changes the moment a file moves on disk: diffs and status update live, no refresh needed.',
// Workspace IDE showcase
wsKicker: 'The worktree IDE',
wsTitle: 'A full IDE for every worktree, in the browser',
wsBody:
'Open any worktree in /workspace: a file tree on the left, a Monaco editor and inline diff in the center, and the correlated session terminal on the right. Stage changes file by file, write a commit message, push all without leaving the page, on any device.',
'Open any worktree in /workspace: a file tree on the left, a Monaco editor and inline diff in the center, and the correlated session terminal on the right. Stage changes file by file, write a commit message, push, all without leaving the page, on any device.',
wsEditor: 'Editor',
wsDiff: 'Diff',
wsFiles: 'Files',