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

@@ -157,7 +157,7 @@ watch(open, async (v) => {
}
});
// raccourci global ⌘K / Ctrl+K en phase de capture pour passer devant xterm (SessionView).
// raccourci global ⌘K / Ctrl+K : en phase de capture pour passer devant xterm (SessionView).
function onKey(e: KeyboardEvent): void {
if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {
e.preventDefault();

View File

@@ -28,7 +28,7 @@
<script setup lang="ts">
// P4-A : répondre à un dialogue Claude sans ouvrir le terminal. Le composant gère sa
// propre attache interactive LÉGÈRE (sink no-op, sans xterm), créée à la demande au
// premier clic et libérée au démontage c'est ce qui réalise la réponse « mobile ».
// premier clic et libérée au démontage : c'est ce qui réalise la réponse « mobile ».
import { computed, onUnmounted } from 'vue';
import { useI18n } from 'vue-i18n';
import type { SessionSummary } from '@arboretum/shared';

View File

@@ -65,7 +65,7 @@ onMounted(async () => {
try {
const { WebglAddon } = await import('@xterm/addon-webgl');
const webgl = new WebglAddon();
// perte de contexte GPU : on dispose (retour au renderer DOM) PUIS on repeint sinon l'écran
// perte de contexte GPU : on dispose (retour au renderer DOM) PUIS on repeint, sinon l'écran
// reste figé sur le dernier rendu WebGL jusqu'à la prochaine interaction (« texte qui ne s'affiche
// que si ça bouge »).
webgl.onContextLoss(() => {
@@ -132,7 +132,7 @@ onMounted(async () => {
resizeObserver = new ResizeObserver(refit);
resizeObserver.observe(container.value);
// Re-révélation RÉELLE du conteneur : cellule de grille démontée/remontée (maximize↔grille), scroll
// hors/dans le viewport, ou navigation SPA autant de cas que `visibilitychange` (onglet only) ne
// hors/dans le viewport, ou navigation SPA : autant de cas que `visibilitychange` (onglet only) ne
// couvre PAS. Au retour visible, on repeint (le rendu était gelé hors-écran) ET on flushe l'ACK pour
// sortir d'une éventuelle pause serveur (le callback de xterm.write était throttlé tant que caché).
intersectionObserver = new IntersectionObserver((entries) => {

View File

@@ -191,7 +191,7 @@ async function onStart(): Promise<void> {
}
const branchLabel = computed(() =>
props.worktree.branch ?? (props.worktree.detached ? `${t('worktrees.detached')} ${props.worktree.head.slice(0, 7)}` : ''),
props.worktree.branch ?? (props.worktree.detached ? `${t('worktrees.detached')} ${props.worktree.head.slice(0, 7)}` : '·'),
);
// --- actions git : commit / push / promotion en principal ---

View File

@@ -10,7 +10,7 @@
</template>
<script setup lang="ts">
// État vide soigné (icône + titre + indice + CTA) remplace les <p text-zinc-500> plats.
// État vide soigné (icône + titre + indice + CTA) : remplace les <p text-zinc-500> plats.
import type { Component } from 'vue';
defineProps<{ icon?: Component; title: string; hint?: string }>();

View File

@@ -47,7 +47,7 @@ const error = ref<string | null>(null);
const children = ref<FsEntry[]>([]);
let loaded = false;
// chemin relatif au worktree (POSIX) clé utilisée par l'API fichiers / diff.
// chemin relatif au worktree (POSIX) : clé utilisée par l'API fichiers / diff.
const relPath = computed(() => (props.entry.path.startsWith(props.wt) ? props.entry.path.slice(props.wt.length + 1) : props.entry.name));
const isActive = computed(() => props.entry.isFile && props.active === relPath.value);