chore: sweep em dashes from our own source and README #13

Merged
adrianbonpin merged 1 commits from chore/no-em-dashes into prod 2026-10-03 22:03:01 +00:00
Owner

The default prompt tells the model never to write an em dash, so shipping them in our own strings and docs was a standard we did not hold ourselves to.

User-facing strings

Before After
**Error** — {msg} **Error:** {msg}
{status} — press ⏎ to stop {status}. Press ⏎ to stop
Never — always reopen the last chat Never (always reopen the last chat)

The last one also reads better next to its siblings, which are all bare phrases like "After 15 minutes".

Comments and README

Rewritten rather than having the dash swapped for a comma, so the sentences still read naturally. Two README table cells used a bare — to mean "no default"; those now say None.

Guard

src/__tests__/voice.test.ts fails if an em dash appears anywhere in the shipped source or in the README.

Comments are covered on purpose. Guarding only the UI strings means picking them out by hand, and a documented standard that depends on remembering to check drifts. Tests are excluded, because the unicode fixture in ollama.test.ts ("café ☕ — ok") needs one.

The guard was verified to actually fail and name the offending file before committing, since a test that cannot fail proves nothing.

Verification

173 tests across 12 files, tsc --noEmit, eslint . and vici build -o dist all clean. Setup screen checked visually after the sweep: connection still live and all preferences render.

The default prompt tells the model never to write an em dash, so shipping them in our own strings and docs was a standard we did not hold ourselves to. ## User-facing strings | Before | After | | --- | --- | | `**Error** — {msg}` | `**Error:** {msg}` | | `{status} — press ⏎ to stop` | `{status}. Press ⏎ to stop` | | `Never — always reopen the last chat` | `Never (always reopen the last chat)` | The last one also reads better next to its siblings, which are all bare phrases like "After 15 minutes". ## Comments and README Rewritten rather than having the dash swapped for a comma, so the sentences still read naturally. Two README table cells used a bare `—` to mean "no default"; those now say `None`. ## Guard `src/__tests__/voice.test.ts` fails if an em dash appears anywhere in the shipped source or in the README. Comments are covered on purpose. Guarding only the UI strings means picking them out by hand, and a documented standard that depends on remembering to check drifts. Tests are excluded, because the unicode fixture in `ollama.test.ts` (`"café ☕ — ok"`) needs one. The guard was verified to actually fail and name the offending file before committing, since a test that cannot fail proves nothing. ## Verification 173 tests across 12 files, `tsc --noEmit`, `eslint .` and `vici build -o dist` all clean. Setup screen checked visually after the sweep: connection still live and all preferences render.
adrianbonpin added 1 commit 2026-10-03 22:02:55 +00:00
The default prompt tells the model never to write an em dash, so shipping
them in our own strings and docs was a standard we did not hold.

Three user-facing strings changed:

- `**Error** — {msg}` becomes `**Error:** {msg}`
- `{status} — press ⏎ to stop` becomes `{status}. Press ⏎ to stop`
- `Never — always reopen the last chat` becomes `Never (always reopen the
  last chat)`, which also reads better next to its siblings ("After 15
  minutes" and friends)

Comments and README prose were restructured rather than having the dash
swapped for a comma, so they still read naturally. The two table cells
using a bare em dash to mean "no default" now say `None`.

A guard test fails if an em dash appears anywhere in the shipped source or
the README. Comments are covered on purpose: guarding only the UI strings
means picking them out by hand, and the rule then drifts. Tests are
excluded, because the unicode fixture in `ollama.test.ts` needs one.

Verified the guard actually fails and names the offending file before
committing, since a test that cannot fail proves nothing.

173 tests, tsc, eslint and vici build all clean.
adrianbonpin merged commit f5d1ced4d6 into prod 2026-10-03 22:03:01 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adrianbonpin/lam-agent-vicinae#13