Remove machine-writing tells from comments and docs

Emoji markers, markdown bold inside code comments, and em-dashes are
gone from source comments, string literals, scripts, Gradle files and
the markdown docs. Counted before and after:

  emoji markers   2680 -> 1 (the emoji picker's own list, which is the feature)
  em-dashes       2490 -> 9 (table placeholders and fenced code)

Two warning glyphs in user-facing strings in ChatScreens.kt are removed
as well; the sentences say the same thing without them. Two backtick
test names carried an em-dash and now carry a comma.

Nothing else changed. 1208 tests pass, counted from the result XML.
The three obfs4 interop tests are opted out with OBFS4_INTEROP_OPTOUT=1
for this run, as their own message instructs when no bridge is set up.

CONTRIBUTING gets a four-line rule so it does not grow back.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Paul Hitt
2026-09-08 18:52:12 -04:00
co-authored by Claude Fable 5.1
parent 04e06452b6
commit 4dd544083c
277 changed files with 4885 additions and 4883 deletions
@@ -12,10 +12,10 @@ import org.json.JSONObject
/**
* A timer on one message rather than the whole conversation (§6.17).
*
* 🔴 **The rule that keeps this from making the product worse is that the
* **The rule that keeps this from making the product worse is that the
* shorter timer always wins.** A per-message timer may only take life away,
* never add it. Without that, a sender could defeat the recipient's
* conversation timer by putting a long one on every message — turning a setting
* conversation timer by putting a long one on every message, turning a setting
* the recipient chose, on their own device, into something the other party gets
* to overrule.
*/
@@ -45,7 +45,7 @@ class PerMessageTimerTest {
}
/**
* 🔴 The one that matters. A message asking to live a week, in a
* The one that matters. A message asking to live a week, in a
* conversation set to an hour, lives an hour.
*/
@Test
@@ -65,7 +65,7 @@ class PerMessageTimerTest {
}
/**
* ⚠️ Zero means "no timer", not "expire immediately". Reading it the other
* Zero means "no timer", not "expire immediately". Reading it the other
* way would delete a message the instant it arrived.
*/
@Test
@@ -83,9 +83,9 @@ class PerMessageTimerTest {
}
/**
* 🔴 **The bug the old code had.** Pruning returned early when the
* The bug the old code had. Pruning returned early when the
* CONVERSATION had no timer, so a timed message in an untimed thread was
* kept for ever — the feature would have looked like it worked on the
* kept for ever, the feature would have looked like it worked on the
* sending phone and done nothing on the receiving one.
*/
@Test
@@ -116,7 +116,7 @@ class PerMessageTimerTest {
assertEquals("new", kept.getJSONObject(0).getString("text"))
}
/** 🔴 A long message timer does not save a message from a short thread one. */
/** A long message timer does not save a message from a short thread one. */
@Test
fun `a long message timer does not survive a short conversation timer`() {
val vault = Vault(MapStorage(), key())
@@ -130,7 +130,7 @@ class PerMessageTimerTest {
}
/**
* ⚠️ A message with no timestamp predates the field. Kept rather than
* A message with no timestamp predates the field. Kept rather than
* destroyed: an unknown age is not evidence of an old one, and deleting
* somebody's history on a guess is unrecoverable.
*/
@@ -147,7 +147,7 @@ class PerMessageTimerTest {
// ---------------------------------------------------------------- the wire
/**
* 🔴 **A duration, never a deadline.** An absolute expiry would be the
* A duration, never a deadline. An absolute expiry would be the
* sender's clock: they could backdate a message so it vanished on arrival,
* or forward-date one so it never expired.
*/
@@ -160,7 +160,7 @@ class PerMessageTimerTest {
}
/**
* 🔴 **`Content.text` returns raw bytes when it has nothing to carry**, so a
* `Content.text` returns raw bytes when it has nothing to carry, so a
* timer that was not counted in that decision would be dropped and the
* message would live for ever.
*/
@@ -176,7 +176,7 @@ class PerMessageTimerTest {
}
/**
* ⚠️ A conversation-timer announcement carries `secs` too and means
* A conversation-timer announcement carries `secs` too and means
* something entirely different. Reading both off one field is why this
* checks the kind.
*/