fix(copy): replace em-dashes in user-facing strings with commas/periods

Per the project's no-dashes feedback rule (see CORBEL-Main memory
feedback_no_dashes.md), em-dashes in user-visible copy are the single
biggest "AI wrote this" surface tell. Forty-two occurrences across ten
files: ten in SettingsPage's group descriptions and option labels
(audio device picker, vocabulary help, prompt placeholders, model
descriptions), four in FirstRunPage's setup steps, three in
DictationPage / FilesPage / Energy chip tooltips, plus the privacy
bullets ("100% offline, no Python required, no cloud, no accounts,
no telemetry"), the rejection toast, MicroSteps thumb labels, and the
shutdown ritual prompts.

Replacement rule: subordinate-clause em-dashes followed by lowercase
become commas; sentence-break em-dashes followed by capitals become
full stops. Code comments left intact.

One non-em-dash regression caught while reviewing: TasksPage's energy
filter "no selection" placeholder showed "—" as a literal label; the
script changed it to a comma which read as a UI bug. Replaced with
"Any" instead.
This commit is contained in:
2026-05-07 09:16:37 +01:00
parent 637ed89eac
commit 360e5457dc
10 changed files with 39 additions and 39 deletions

View File

@@ -227,7 +227,7 @@
<Play size={32} strokeWidth={1.5} class="text-accent mx-auto mb-3" />
<h2 class="text-xl font-medium text-text">Launch Magnotia at login?</h2>
<p class="text-sm text-text-secondary mt-3 leading-relaxed">
So Magnotia is already there when you need it especially useful if you said yes to morning triage. Uses your OS's standard autostart. No background tricks, no telemetry.
So Magnotia is already there when you need it, especially useful if you said yes to morning triage. Uses your OS's standard autostart. No background tricks, no telemetry.
</p>
<p class="text-[11px] text-text-tertiary mt-3">You can change this any time in Settings.</p>
<div class="flex items-center justify-center gap-3 mt-6">
@@ -264,7 +264,7 @@
</div>
<p class="text-xs text-text-tertiary mt-2">{downloadProgress}%</p>
{#if estimatedMinutes > 2}
<p class="text-xs text-text-secondary mt-3">Download in background this may take a while</p>
<p class="text-xs text-text-secondary mt-3">Download in background, this may take a while</p>
{/if}
</div>
@@ -296,7 +296,7 @@
{#if models.length > 0}
<div class="mt-6">
<h3 class="text-xs font-medium text-text-tertiary uppercase tracking-wider mb-3">Pick a model</h3>
<p class="text-xs text-text-tertiary mb-3">One tap we handle the rest.</p>
<p class="text-xs text-text-tertiary mb-3">One tap, we handle the rest.</p>
<div class="space-y-2">
{#each models as model, i}
<button
@@ -330,7 +330,7 @@
style="transition-duration: var(--duration-ui)"
onclick={skipSetup}
>
Skip setup I'll configure later
Skip setup. I'll configure later
</button>
</div>
{/if}