eleven / messenger Public

docs: mark AI-authored prose with ๐Ÿค– and document the authorship convention (#238)

Everything in this repo was AI-written, so every Markdown file is stamped with
a visible ๐Ÿค– at its top (or on the first line, for changelog entries that open
with the note itself). Per the new "Who wrote this" section in CLAUDE.md, a ๐Ÿค–
cascades over everything beneath it, "no marker" means ambiguous, and a person
emoji (e.g. <!-- ๐Ÿ‘จ -->) certifies human-written text that an LLM must not touch.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Paul Campbell f5b3ec3ec0f50efbb1360d1345c2e48403c09b5f parent 02b81ca
115 files changed, +146 −115
  • CLAUDE.md +32 −1
  • README.md +1 −1
  • agent/README.md +1 −1
  • changelog/2026-07-01-helpers.md +1 −1
  • changelog/2026-07-01-message-polish.md +1 −1
  • changelog/2026-07-02-action-chips.md +1 −1
  • changelog/2026-07-02-announcer.md +1 −1
  • changelog/2026-07-02-bot-crosstalk.md +1 −1
  • changelog/2026-07-02-bot-name-badge.md +1 −1
  • changelog/2026-07-02-bots-reply-when-spoken-to.md +1 −1
  • changelog/2026-07-02-edit-bots.md +1 −1
  • changelog/2026-07-02-eleven.md +1 −1
  • changelog/2026-07-02-feed-stays-pinned.md +1 −1
  • changelog/2026-07-02-header-bot-count.md +1 −1
  • changelog/2026-07-02-helpers-mention-only.md +1 −1
  • changelog/2026-07-02-ios-app-polish.md +1 −1
  • changelog/2026-07-02-ios-instant-chats.md +1 −1
  • changelog/2026-07-02-ios-push-notifications.md +1 −1
  • changelog/2026-07-02-ios-qr-scan.md +1 −1
  • changelog/2026-07-02-notification-tap-scroll.md +1 −1
  • changelog/2026-07-02-own-messages-read.md +1 −1
  • changelog/2026-07-02-pin-chats.md +1 −1
  • changelog/2026-07-02-private-names.md +1 −1
  • changelog/2026-07-02-someone-label.md +1 −1
  • changelog/2026-07-02-todo-mini-app.md +1 −1
  • changelog/2026-07-02-typing-in-stream.md +1 −1
  • changelog/2026-07-03-chat-app-parity.md +1 −1
  • changelog/2026-07-03-composer-dark.md +1 −1
  • changelog/2026-07-03-fix-stale-app-panel.md +1 −1
  • changelog/2026-07-03-icon-purple.md +1 −1
  • changelog/2026-07-03-keyboard-shortcuts.md +1 −1
  • changelog/2026-07-03-new-chat-engine.md +1 −1
  • changelog/2026-07-03-no-blank-flash-on-switch.md +1 −1
  • changelog/2026-07-03-open-message-links.md +1 −1
  • changelog/2026-07-03-passkey-backup.md +1 −1
  • changelog/2026-07-03-restore-passkey.md +1 −1
  • changelog/2026-07-03-smoother-gestures.md +1 −1
  • changelog/2026-07-03-swipe-down-to-dismiss-keyboard.md +1 −1
  • changelog/2026-07-03-typing-bubble.md +1 −1
  • changelog/2026-07-03-welcome-page.md +1 −1
  • changelog/2026-07-03-whiteboard-mini-app.md +1 −1
  • changelog/2026-07-04-ai-helpers-and-commands.md +1 −1
  • changelog/2026-07-04-chat-app-badge-parity.md +1 −1
  • changelog/2026-07-04-delete-original-chat-code.md +1 −1
  • changelog/2026-07-04-favicon-app-logo.md +1 −1
  • changelog/2026-07-04-fix-attachment-error-messages.md +1 −1
  • changelog/2026-07-04-fix-chat-keyboard-shortcuts.md +1 −1
  • changelog/2026-07-04-fix-composer-repin.md +1 −1
  • changelog/2026-07-04-fix-copy-confirmation.md +1 −1
  • changelog/2026-07-04-fix-day-separator-month.md +1 −1
  • changelog/2026-07-04-fix-legacy-message-dates.md +1 −1
  • changelog/2026-07-04-fix-legacy-own-messages.md +1 −1
  • changelog/2026-07-04-fix-link-preview-parity.md +1 −1
  • changelog/2026-07-04-fix-mac-drop-upload.md +1 −1
  • changelog/2026-07-04-fix-native-drop-guard.md +1 −1
  • changelog/2026-07-04-fix-native-thread-routing.md +1 −1
  • changelog/2026-07-04-fix-own-typing-indicator.md +1 −1
  • changelog/2026-07-04-fix-paste-blockquote.md +1 −1
  • changelog/2026-07-04-fix-poll-close-during-voting.md +1 −1
  • changelog/2026-07-04-fix-react-no-bubble-rebuild.md +1 −1
  • changelog/2026-07-04-fix-reaction-while-offline.md +1 −1
  • changelog/2026-07-04-fix-remind-validation.md +1 −1
  • changelog/2026-07-04-fix-reminder-cancel-error.md +1 −1
  • changelog/2026-07-04-fix-self-mention-styling.md +1 −1
  • changelog/2026-07-04-fix-send-while-offline.md +1 −1
  • changelog/2026-07-04-fix-swipe-reply-parity.md +1 −1
  • changelog/2026-07-04-fix-touch-longpress-selection.md +1 −1
  • changelog/2026-07-04-fix-typing-indicator-layout.md +1 −1
  • changelog/2026-07-04-fix-typing-rebeat.md +1 −1
  • changelog/2026-07-04-mac-native-menus.md +1 −1
  • changelog/2026-07-04-native-avatar-photos.md +1 −1
  • changelog/2026-07-04-perf-skip-classic-append.md +1 −1
  • changelog/2026-07-04-pin-and-close-chats-on-ios.md +1 −1
  • changelog/2026-07-04-server-avatar.md +1 −1
  • changelog/2026-07-04-touch-message-menu-parity.md +1 −1
  • changelog/2026-07-05-bot-double-reply.md +1 −1
  • changelog/2026-07-05-bot-typing-indicator.md +1 −1
  • changelog/2026-07-05-bots-ignore-typing.md +1 −1
  • changelog/2026-07-05-chat-list-recency.md +1 −1
  • changelog/2026-07-05-chat-scrolling-and-focus.md +1 −1
  • changelog/2026-07-05-composer-scroll.md +1 −1
  • changelog/2026-07-05-connect-services.md +1 −1
  • changelog/2026-07-05-dnsimple-app.md +1 −1
  • changelog/2026-07-05-eleven-knowledge.md +1 −1
  • changelog/2026-07-05-eleven-tutorial.md +1 −1
  • changelog/2026-07-05-feed-dismiss-flash.md +1 −1
  • changelog/2026-07-05-fix-pending-invite-load.md +1 −1
  • changelog/2026-07-05-help-and-in-feed-command-replies.md +1 −1
  • changelog/2026-07-05-invite-link-preview.md +1 −1
  • changelog/2026-07-05-ios-app-thread-titles.md +1 −1
  • changelog/2026-07-05-mac-app.md +1 −1
  • changelog/2026-07-05-mac-drag-drop-hover.md +1 −1
  • changelog/2026-07-05-mac-file-download.md +1 −1
  • changelog/2026-07-05-reminders-previous-section.md +1 −1
  • changelog/2026-07-05-reminders-speak-via-dm.md +1 −1
  • changelog/2026-07-05-reply-card-calms-down.md +1 −1
  • changelog/2026-07-05-send-scrolls-to-bottom.md +1 −1
  • changelog/2026-07-05-server-rail-images.md +1 −1
  • changelog/2026-07-05-todo-completed-section.md +1 −1
  • changelog/2026-07-05-todo-tap-and-newest.md +1 −1
  • changelog/2026-07-05-video-attachments.md +1 −1
  • deploy/README.md +1 −1
  • docs/bots.md +1 −1
  • docs/connected-services.md +1 −1
  • docs/cross-instance-relay.md +1 −1
  • docs/instance-contexts.md +1 −1
  • docs/instance-migration.md +1 −1
  • docs/instance-router.md +1 −1
  • docs/invite-redesign.md +1 −1
  • docs/onboarding-and-home-server.md +1 −1
  • docs/push-relay.md +1 −1
  • docs/threads-and-dms.md +1 −1
  • home/README.md +1 −1
  • ios/README.md +1 −1
  • web/static/apps/README.md +1 −1
diff --git a/CLAUDE.md b/CLAUDE.md
index 2116fb2..21a296c 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -1,4 +1,4 @@
-# CLAUDE.md
+# ๐Ÿค– CLAUDE.md
Working notes for anyone (human or agent) changing this codebase. User-facing
docs and the encryption rationale live in `README.md`; this file is about how we
@@ -143,6 +143,37 @@ Interface via `render`. No `chatMessage` โ†’ takeover. So "wants a chat view" an
is opt-in, not mandatory. The gate is `appWantsChatView(name)` in `apps.js`; the
decision lives there, not spread through `shell.js`.
+## Who wrote this: AI vs human markers (๐Ÿค– / ๐Ÿ‘จ)
+
+Prose in this repo carries an authorship marker, so a reader (human or agent)
+can tell who wrote what โ€” and so a human can **fence text off** from AI rewriting.
+
+- **๐Ÿค– โ€” written by an LLM.** Always **visible**, immediately before the heading,
+ paragraph, or section it applies to (`# ๐Ÿค– Title`, or a leading `๐Ÿค– ` on a
+ paragraph). A ๐Ÿค– on a heading **cascades**: it marks that heading and everything
+ beneath it โ€” sub-headings, paragraphs, lists โ€” down to the next marker of the
+ same-or-higher level or a human-certified block. So one ๐Ÿค– on a document's top
+ heading marks the whole document.
+- **No marker โ€” ambiguous.** Could be either; today's status quo. Never *assume*
+ AI authorship; when you genuinely don't know, leave it unmarked.
+- **A person emoji (๐Ÿ‘จ / ๐Ÿ‘ค / ๐Ÿง‘ โ€ฆ) โ€” certified human, off-limits.** The text was
+ written or vetted by a person. **An LLM must not rewrite, rephrase, condense,
+ or delete it.** You may add new ๐Ÿค– prose nearby, but the human's words are
+ fixed. In HTML/Markdown the person marker may hide in a comment (`<!-- ๐Ÿ‘จ -->`)
+ so it doesn't render; the ๐Ÿค– marker must **never** be hidden.
+
+Transitions:
+- An LLM writing new prose marks it ๐Ÿค– (including new `changelog/*.md` entries โ€”
+ their first line gets the ๐Ÿค–).
+- An LLM that substantially rewrites *unmarked* prose makes it ๐Ÿค–.
+- A human rewriting ๐Ÿค– text **removes the ๐Ÿค–** (back to ambiguous), or adds their
+ person marker to certify and lock it.
+- An LLM that reaches a person-marked block hands off โ€” leave it exactly as is.
+
+Baseline: **everything in this repo was AI-written unless a block carries a person
+marker.** Every Markdown file is stamped ๐Ÿค– at its top; changelog entries (which
+open with the note itself) carry the ๐Ÿค– on their first line.
+
## Conventions
- **Never `innerHTML` untrusted content.** Build DOM nodes / use `textContent`.
diff --git a/README.md b/README.md
index 294ff2d..5286095 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Eleven Messenger
+# ๐Ÿค– Eleven Messenger
A small, self-hostable messenger โ€” DMs and group chats, no logins, no passwords,
just secret invite links. Messages are **end-to-end encrypted**: the server only
diff --git a/agent/README.md b/agent/README.md
index ffc9922..8d29f29 100644
--- a/agent/README.md
+++ b/agent/README.md
@@ -1,4 +1,4 @@
-# lchat agent sidecar
+# ๐Ÿค– lchat agent sidecar
One headless process that hosts an instance's **default agents**, each a normal
E2EE member with its own keypair and identity file. **The lchat server only
diff --git a/changelog/2026-07-01-helpers.md b/changelog/2026-07-01-helpers.md
index 79f3405..d2efb2e 100644
--- a/changelog/2026-07-01-helpers.md
+++ b/changelog/2026-07-01-helpers.md
@@ -1 +1 @@
-You can now discover helpers (bots) when starting a chat or adding people to a group โ€” look for the new Helpers section, where each one says what it does.
+๐Ÿค– You can now discover helpers (bots) when starting a chat or adding people to a group โ€” look for the new Helpers section, where each one says what it does.
diff --git a/changelog/2026-07-01-message-polish.md b/changelog/2026-07-01-message-polish.md
index 14afe52..75fa90c 100644
--- a/changelog/2026-07-01-message-polish.md
+++ b/changelog/2026-07-01-message-polish.md
@@ -1 +1 @@
-Messages got smarter: code blocks and quotes now render properly, and YouTube links show a tap-to-play preview.
+๐Ÿค– Messages got smarter: code blocks and quotes now render properly, and YouTube links show a tap-to-play preview.
diff --git a/changelog/2026-07-02-action-chips.md b/changelog/2026-07-02-action-chips.md
index 403fcca..50b0345 100644
--- a/changelog/2026-07-02-action-chips.md
+++ b/changelog/2026-07-02-action-chips.md
@@ -1 +1 @@
-Ask Eleven to change your look โ€” "switch to dark mode" or "make it purple" gets you a one-tap button that applies it.
+๐Ÿค– Ask Eleven to change your look โ€” "switch to dark mode" or "make it purple" gets you a one-tap button that applies it.
diff --git a/changelog/2026-07-02-announcer.md b/changelog/2026-07-02-announcer.md
index 3118024..6cc40cb 100644
--- a/changelog/2026-07-02-announcer.md
+++ b/changelog/2026-07-02-announcer.md
@@ -1 +1 @@
-Deploy announcements are live โ€” this very message arrived through one.
+๐Ÿค– Deploy announcements are live โ€” this very message arrived through one.
diff --git a/changelog/2026-07-02-bot-crosstalk.md b/changelog/2026-07-02-bot-crosstalk.md
index 22f5c60..c1a42da 100644
--- a/changelog/2026-07-02-bot-crosstalk.md
+++ b/changelog/2026-07-02-bot-crosstalk.md
@@ -1 +1 @@
-Helpers no longer reply to each other โ€” no more bot-to-bot chatter in groups.
+๐Ÿค– Helpers no longer reply to each other โ€” no more bot-to-bot chatter in groups.
diff --git a/changelog/2026-07-02-bot-name-badge.md b/changelog/2026-07-02-bot-name-badge.md
index 6452495..e4ff9b8 100644
--- a/changelog/2026-07-02-bot-name-badge.md
+++ b/changelog/2026-07-02-bot-name-badge.md
@@ -1 +1 @@
-Bots are now labelled with a BOT badge next to their name on group messages.
+๐Ÿค– Bots are now labelled with a BOT badge next to their name on group messages.
diff --git a/changelog/2026-07-02-bots-reply-when-spoken-to.md b/changelog/2026-07-02-bots-reply-when-spoken-to.md
index 243e09f..f205055 100644
--- a/changelog/2026-07-02-bots-reply-when-spoken-to.md
+++ b/changelog/2026-07-02-bots-reply-when-spoken-to.md
@@ -1,4 +1,4 @@
-Helpers now only join in when you're actually talking to them. @mention one
+๐Ÿค– Helpers now only join in when you're actually talking to them. @mention one
(like @Claude) for a guaranteed reply; if a message just uses a helper's name
in passing, it first checks whether it's really being spoken to and stays
quiet otherwise. DMs are unchanged โ€” a helper always replies there.
diff --git a/changelog/2026-07-02-edit-bots.md b/changelog/2026-07-02-edit-bots.md
index 0b21cf8..07c8fc9 100644
--- a/changelog/2026-07-02-edit-bots.md
+++ b/changelog/2026-07-02-edit-bots.md
@@ -1 +1 @@
-Admins can now edit a bot after creating it โ€” its personality, model, description, when it replies in groups, and whether it shows under Helpers.
+๐Ÿค– Admins can now edit a bot after creating it โ€” its personality, model, description, when it replies in groups, and whether it shows under Helpers.
diff --git a/changelog/2026-07-02-eleven.md b/changelog/2026-07-02-eleven.md
index 82643cf..95a9e92 100644
--- a/changelog/2026-07-02-eleven.md
+++ b/changelog/2026-07-02-eleven.md
@@ -1 +1 @@
-Meet Eleven โ€” your guide to the app. It welcomes new members when they join, and you can DM it any time to ask how something works.
+๐Ÿค– Meet Eleven โ€” your guide to the app. It welcomes new members when they join, and you can DM it any time to ask how something works.
diff --git a/changelog/2026-07-02-feed-stays-pinned.md b/changelog/2026-07-02-feed-stays-pinned.md
index 595a77e..d1966a7 100644
--- a/changelog/2026-07-02-feed-stays-pinned.md
+++ b/changelog/2026-07-02-feed-stays-pinned.md
@@ -1 +1 @@
-Fixed: the chat sometimes drifted up from the newest message while you typed (or when the emoji/mention suggestions appeared). It now stays pinned to the bottom.
+๐Ÿค– Fixed: the chat sometimes drifted up from the newest message while you typed (or when the emoji/mention suggestions appeared). It now stays pinned to the bottom.
diff --git a/changelog/2026-07-02-header-bot-count.md b/changelog/2026-07-02-header-bot-count.md
index b939901..577d280 100644
--- a/changelog/2026-07-02-header-bot-count.md
+++ b/changelog/2026-07-02-header-bot-count.md
@@ -1,3 +1,3 @@
-Group headers now count people and bots separately โ€” a group with two people
+๐Ÿค– Group headers now count people and bots separately โ€” a group with two people
and a helper bot says "2 members, 1 bot" instead of "3 members", so you can
see at a glance who's actually in the room.
diff --git a/changelog/2026-07-02-helpers-mention-only.md b/changelog/2026-07-02-helpers-mention-only.md
index 77c0e64..63e92b9 100644
--- a/changelog/2026-07-02-helpers-mention-only.md
+++ b/changelog/2026-07-02-helpers-mention-only.md
@@ -1,4 +1,4 @@
-Helpers now stay out of group conversations unless you @mention them (like
+๐Ÿค– Helpers now stay out of group conversations unless you @mention them (like
@Claude). Your admin can allow an individual helper to also answer when spoken
to by name โ€” it checks it's really being talked *to*, not just *about*. DMs
are unchanged: a helper always replies there.
diff --git a/changelog/2026-07-02-ios-app-polish.md b/changelog/2026-07-02-ios-app-polish.md
index 76a5119..9bc328c 100644
--- a/changelog/2026-07-02-ios-app-polish.md
+++ b/changelog/2026-07-02-ios-app-polish.md
@@ -1,4 +1,4 @@
-The iPhone app (Eleven) got a big round of polish: the chat now floats a glass
+๐Ÿค– The iPhone app (Eleven) got a big round of polish: the chat now floats a glass
title bar and message box over your conversation, typing keeps the newest
message in view, swipe-right to reply shows who you're replying to above the
message box, and :emoji: and @name suggestions pop up as you type โ€” just like
diff --git a/changelog/2026-07-02-ios-instant-chats.md b/changelog/2026-07-02-ios-instant-chats.md
index bd758f3..aa2ea60 100644
--- a/changelog/2026-07-02-ios-instant-chats.md
+++ b/changelog/2026-07-02-ios-instant-chats.md
@@ -1 +1 @@
-Improved: in the iPhone app, chats you've already visited now open instantly, and your most recent chats are loaded in the background โ€” no more loading spinner every time you tap into a conversation.
+๐Ÿค– Improved: in the iPhone app, chats you've already visited now open instantly, and your most recent chats are loaded in the background โ€” no more loading spinner every time you tap into a conversation.
diff --git a/changelog/2026-07-02-ios-push-notifications.md b/changelog/2026-07-02-ios-push-notifications.md
index 13ef384..60c19ec 100644
--- a/changelog/2026-07-02-ios-push-notifications.md
+++ b/changelog/2026-07-02-ios-push-notifications.md
@@ -1,4 +1,4 @@
-Groundwork for iPhone notifications: the server can now tap Apple's push
+๐Ÿค– Groundwork for iPhone notifications: the server can now tap Apple's push
service to wake the app when a message arrives โ€” and just like on the web,
what travels is encrypted; your iPhone decrypts the preview itself. Rolling
out to devices soon.
diff --git a/changelog/2026-07-02-ios-qr-scan.md b/changelog/2026-07-02-ios-qr-scan.md
index c533ec0..41cd64e 100644
--- a/changelog/2026-07-02-ios-qr-scan.md
+++ b/changelog/2026-07-02-ios-qr-scan.md
@@ -1,2 +1,2 @@
-When adding a chat on the iPhone/iPad app, you can now tap "Scan QR code" and
+๐Ÿค– When adding a chat on the iPhone/iPad app, you can now tap "Scan QR code" and
point the camera at an invite QR code instead of pasting the link.
diff --git a/changelog/2026-07-02-notification-tap-scroll.md b/changelog/2026-07-02-notification-tap-scroll.md
index a1f3b77..08ec498 100644
--- a/changelog/2026-07-02-notification-tap-scroll.md
+++ b/changelog/2026-07-02-notification-tap-scroll.md
@@ -1 +1 @@
-Fixed: tapping a notification now lands you on the newest message. Before, the chat could open scrolled a few messages short of the bottom, especially on iPhone.
+๐Ÿค– Fixed: tapping a notification now lands you on the newest message. Before, the chat could open scrolled a few messages short of the bottom, especially on iPhone.
diff --git a/changelog/2026-07-02-own-messages-read.md b/changelog/2026-07-02-own-messages-read.md
index 93a7155..9df1e39 100644
--- a/changelog/2026-07-02-own-messages-read.md
+++ b/changelog/2026-07-02-own-messages-read.md
@@ -1 +1 @@
-Chats no longer light up as unread for messages you sent yourself โ€” reply from your phone and the chat is already marked read on your laptop.
+๐Ÿค– Chats no longer light up as unread for messages you sent yourself โ€” reply from your phone and the chat is already marked read on your laptop.
diff --git a/changelog/2026-07-02-pin-chats.md b/changelog/2026-07-02-pin-chats.md
index 8afe6ae..4694b39 100644
--- a/changelog/2026-07-02-pin-chats.md
+++ b/changelog/2026-07-02-pin-chats.md
@@ -1 +1 @@
-You can now pin your favourite chats to the top of the list โ€” open a chat, tap the โ‹ฎ menu, and choose "Pin chat". Pins are yours alone and follow you across your devices.
+๐Ÿค– You can now pin your favourite chats to the top of the list โ€” open a chat, tap the โ‹ฎ menu, and choose "Pin chat". Pins are yours alone and follow you across your devices.
diff --git a/changelog/2026-07-02-private-names.md b/changelog/2026-07-02-private-names.md
index 915118d..8334142 100644
--- a/changelog/2026-07-02-private-names.md
+++ b/changelog/2026-07-02-private-names.md
@@ -1 +1 @@
-Added: your screen name is now private. It's encrypted on your device before it ever leaves, so the server only sees an anonymous ID โ€” your name shows only to the people you're in chats with. (Helper bots keep their names, since those are set by the person who runs the chat.)
+๐Ÿค– Added: your screen name is now private. It's encrypted on your device before it ever leaves, so the server only sees an anonymous ID โ€” your name shows only to the people you're in chats with. (Helper bots keep their names, since those are set by the person who runs the chat.)
diff --git a/changelog/2026-07-02-someone-label.md b/changelog/2026-07-02-someone-label.md
index 2463b6d..a332a37 100644
--- a/changelog/2026-07-02-someone-label.md
+++ b/changelog/2026-07-02-someone-label.md
@@ -1 +1 @@
-Fixed: a first-time chat from someone new (like a helper saying hi) no longer shows as "Someone" until you refresh.
+๐Ÿค– Fixed: a first-time chat from someone new (like a helper saying hi) no longer shows as "Someone" until you refresh.
diff --git a/changelog/2026-07-02-todo-mini-app.md b/changelog/2026-07-02-todo-mini-app.md
index 907662e..4359992 100644
--- a/changelog/2026-07-02-todo-mini-app.md
+++ b/changelog/2026-07-02-todo-mini-app.md
@@ -1,4 +1,4 @@
-Say hello to **mini-apps** โ€” little tools that live right alongside your chats. Open the compose (๏ผ‹) menu and you'll find an **Apps** section:
+๐Ÿค– Say hello to **mini-apps** โ€” little tools that live right alongside your chats. Open the compose (๏ผ‹) menu and you'll find an **Apps** section:
- **To-do** โ€” your own personal checklist. Type `/todo buy milk` in *any* chat and it quietly files into your to-do list (you'll get a little "Added to To-do" nudge); or open the To-do app and add things directly.
- **Reminders** โ€” nudge yourself later: `/remind Call the plumber in 2h`, `/remind Standup at 9:00`, or `/remind Renew passport | 2026-08-01`. When the moment comes you get a real notification on all your devices โ€” even with the app closed (allow notifications and you're set). Dismiss a reminder anywhere and it's gone everywhere.
diff --git a/changelog/2026-07-02-typing-in-stream.md b/changelog/2026-07-02-typing-in-stream.md
index fa5c014..7d308fb 100644
--- a/changelog/2026-07-02-typing-in-stream.md
+++ b/changelog/2026-07-02-typing-in-stream.md
@@ -1 +1 @@
-Improved: "โ€ฆ is typing" now appears right in the conversation, below the newest message โ€” so it no longer nudges the chat around, and it finally shows up in the iPhone app. Typing from the iPhone app now shows the indicator to everyone else, too.
+๐Ÿค– Improved: "โ€ฆ is typing" now appears right in the conversation, below the newest message โ€” so it no longer nudges the chat around, and it finally shows up in the iPhone app. Typing from the iPhone app now shows the indicator to everyone else, too.
diff --git a/changelog/2026-07-03-chat-app-parity.md b/changelog/2026-07-03-chat-app-parity.md
index f4ef688..31c40dd 100644
--- a/changelog/2026-07-03-chat-app-parity.md
+++ b/changelog/2026-07-03-chat-app-parity.md
@@ -1 +1 @@
-Brought the newer chat engine up to parity with a few recent improvements: photos now open in the same pinch-to-zoom, rotate, and fly-in/out lightbox everywhere; the animated typing bubble shows correctly in one-to-one chats; and editing a message from the iOS/Mac app no longer gets confused about which chat you're editing in.
+๐Ÿค– Brought the newer chat engine up to parity with a few recent improvements: photos now open in the same pinch-to-zoom, rotate, and fly-in/out lightbox everywhere; the animated typing bubble shows correctly in one-to-one chats; and editing a message from the iOS/Mac app no longer gets confused about which chat you're editing in.
diff --git a/changelog/2026-07-03-composer-dark.md b/changelog/2026-07-03-composer-dark.md
index f33948d..3a8ed3b 100644
--- a/changelog/2026-07-03-composer-dark.md
+++ b/changelog/2026-07-03-composer-dark.md
@@ -1 +1 @@
-The message box now sits cleanly in dark mode โ€” the input has lost its washed-out grey fill, and the dividing line above the composer is gone, so the whole bottom bar reads as one calm surface.
+๐Ÿค– The message box now sits cleanly in dark mode โ€” the input has lost its washed-out grey fill, and the dividing line above the composer is gone, so the whole bottom bar reads as one calm surface.
diff --git a/changelog/2026-07-03-fix-stale-app-panel.md b/changelog/2026-07-03-fix-stale-app-panel.md
index 6a7e61d..da6a459 100644
--- a/changelog/2026-07-03-fix-stale-app-panel.md
+++ b/changelog/2026-07-03-fix-stale-app-panel.md
@@ -1 +1 @@
-Fixed shared app panels (like Poll and Whiteboard) sometimes showing another chat's content for a moment after switching chats.
+๐Ÿค– Fixed shared app panels (like Poll and Whiteboard) sometimes showing another chat's content for a moment after switching chats.
diff --git a/changelog/2026-07-03-icon-purple.md b/changelog/2026-07-03-icon-purple.md
index 6c301ec..d4f93a2 100644
--- a/changelog/2026-07-03-icon-purple.md
+++ b/changelog/2026-07-03-icon-purple.md
@@ -1 +1 @@
-We've given the app icon a richer, deeper purple โ€” you'll spot it on your home screen, in the dock, and when you install the app to your home screen.
+๐Ÿค– We've given the app icon a richer, deeper purple โ€” you'll spot it on your home screen, in the dock, and when you install the app to your home screen.
diff --git a/changelog/2026-07-03-keyboard-shortcuts.md b/changelog/2026-07-03-keyboard-shortcuts.md
index 55cac63..56d3961 100644
--- a/changelog/2026-07-03-keyboard-shortcuts.md
+++ b/changelog/2026-07-03-keyboard-shortcuts.md
@@ -1,4 +1,4 @@
-# Keyboard shortcuts
+# ๐Ÿค– Keyboard shortcuts
**Cmd+T** opens the message menu on the latest message from someone else โ€” press 1-6 to send a reaction.
diff --git a/changelog/2026-07-03-new-chat-engine.md b/changelog/2026-07-03-new-chat-engine.md
index 72338e8..aabca42 100644
--- a/changelog/2026-07-03-new-chat-engine.md
+++ b/changelog/2026-07-03-new-chat-engine.md
@@ -1 +1 @@
-The chat window has been rebuilt on the same engine that powers mini-apps like To-do and Poll โ€” everything looks and works exactly as before, just on stronger foundations (and future features will arrive faster because of it). If anything seems off, you can switch back anytime: โ‹ฎ menu โ†’ **Use original chat** (and please tell us what you saw!). The same menu switches you forward again.
+๐Ÿค– The chat window has been rebuilt on the same engine that powers mini-apps like To-do and Poll โ€” everything looks and works exactly as before, just on stronger foundations (and future features will arrive faster because of it). If anything seems off, you can switch back anytime: โ‹ฎ menu โ†’ **Use original chat** (and please tell us what you saw!). The same menu switches you forward again.
diff --git a/changelog/2026-07-03-no-blank-flash-on-switch.md b/changelog/2026-07-03-no-blank-flash-on-switch.md
index a718a73..e0f9a9a 100644
--- a/changelog/2026-07-03-no-blank-flash-on-switch.md
+++ b/changelog/2026-07-03-no-blank-flash-on-switch.md
@@ -1 +1 @@
-Switching between chats no longer flashes blank. Chats you've already opened now reappear instantly with your place in the conversation kept, instead of rebuilding from scratch on every tap.
+๐Ÿค– Switching between chats no longer flashes blank. Chats you've already opened now reappear instantly with your place in the conversation kept, instead of rebuilding from scratch on every tap.
diff --git a/changelog/2026-07-03-open-message-links.md b/changelog/2026-07-03-open-message-links.md
index 7885dcc..bc8af58 100644
--- a/changelog/2026-07-03-open-message-links.md
+++ b/changelog/2026-07-03-open-message-links.md
@@ -1 +1 @@
-In the iOS app, tapping a link in a message opens it in your browser again โ€” before, nothing happened when you tapped one.
+๐Ÿค– In the iOS app, tapping a link in a message opens it in your browser again โ€” before, nothing happened when you tapped one.
diff --git a/changelog/2026-07-03-passkey-backup.md b/changelog/2026-07-03-passkey-backup.md
index 14b14f1..d2ae743 100644
--- a/changelog/2026-07-03-passkey-backup.md
+++ b/changelog/2026-07-03-passkey-backup.md
@@ -1 +1 @@
-You can now protect your access with a passkey, so you won't lose your chats if you lose your device or browser โ€” look for the "Back up with a passkey" prompt in your chat list.
+๐Ÿค– You can now protect your access with a passkey, so you won't lose your chats if you lose your device or browser โ€” look for the "Back up with a passkey" prompt in your chat list.
diff --git a/changelog/2026-07-03-restore-passkey.md b/changelog/2026-07-03-restore-passkey.md
index 592be23..be2bccd 100644
--- a/changelog/2026-07-03-restore-passkey.md
+++ b/changelog/2026-07-03-restore-passkey.md
@@ -1 +1 @@
-Improved: if you've saved a chat with a passkey, you can now get back into it on a new device or browser โ€” open the chat and choose "Already a member? Restore with a passkey". It signs you straight back in, no invite link needed.
+๐Ÿค– Improved: if you've saved a chat with a passkey, you can now get back into it on a new device or browser โ€” open the chat and choose "Already a member? Restore with a passkey". It signs you straight back in, no invite link needed.
diff --git a/changelog/2026-07-03-smoother-gestures.md b/changelog/2026-07-03-smoother-gestures.md
index 72a106e..7ad9f93 100644
--- a/changelog/2026-07-03-smoother-gestures.md
+++ b/changelog/2026-07-03-smoother-gestures.md
@@ -1 +1 @@
-Smoother gestures: swipe-right-to-reply now glides without the little stutter it sometimes had, especially in the app. Tap a photo to open it and you can now pinch to zoom, double-tap to zoom in and out, drag to pan around, and flick it away to close.
+๐Ÿค– Smoother gestures: swipe-right-to-reply now glides without the little stutter it sometimes had, especially in the app. Tap a photo to open it and you can now pinch to zoom, double-tap to zoom in and out, drag to pan around, and flick it away to close.
diff --git a/changelog/2026-07-03-swipe-down-to-dismiss-keyboard.md b/changelog/2026-07-03-swipe-down-to-dismiss-keyboard.md
index bf73c4d..a4de15b 100644
--- a/changelog/2026-07-03-swipe-down-to-dismiss-keyboard.md
+++ b/changelog/2026-07-03-swipe-down-to-dismiss-keyboard.md
@@ -1 +1 @@
-In the iOS app, you can now swipe the keyboard away: with it open, drag the messages downward and the keyboard slides out with your finger as you reach it โ€” the way Messages does it โ€” instead of staying stuck open.
+๐Ÿค– In the iOS app, you can now swipe the keyboard away: with it open, drag the messages downward and the keyboard slides out with your finger as you reach it โ€” the way Messages does it โ€” instead of staying stuck open.
diff --git a/changelog/2026-07-03-typing-bubble.md b/changelog/2026-07-03-typing-bubble.md
index 28341b9..05d4c3e 100644
--- a/changelog/2026-07-03-typing-bubble.md
+++ b/changelog/2026-07-03-typing-bubble.md
@@ -1 +1 @@
-In one-to-one chats you'll now see the familiar animated dots bubble while the other person writes; groups still say who's typing by name. Bots also keep the indicator going for as long as they're composing, instead of it fading out mid-thought.
+๐Ÿค– In one-to-one chats you'll now see the familiar animated dots bubble while the other person writes; groups still say who's typing by name. Bots also keep the indicator going for as long as they're composing, instead of it fading out mid-thought.
diff --git a/changelog/2026-07-03-welcome-page.md b/changelog/2026-07-03-welcome-page.md
index 3ebf2e3..b2dd013 100644
--- a/changelog/2026-07-03-welcome-page.md
+++ b/changelog/2026-07-03-welcome-page.md
@@ -1 +1 @@
-Improved: invite links now open a welcome screen first โ€” you choose whether to join in the browser or open the chat in the app, instead of the link signing you in the moment it loads. Links no longer get "used up" by just being previewed, and on iPhone an invite can open straight into the app when it's installed.
+๐Ÿค– Improved: invite links now open a welcome screen first โ€” you choose whether to join in the browser or open the chat in the app, instead of the link signing you in the moment it loads. Links no longer get "used up" by just being previewed, and on iPhone an invite can open straight into the app when it's installed.
diff --git a/changelog/2026-07-03-whiteboard-mini-app.md b/changelog/2026-07-03-whiteboard-mini-app.md
index 7bb2bbc..957d344 100644
--- a/changelog/2026-07-03-whiteboard-mini-app.md
+++ b/changelog/2026-07-03-whiteboard-mini-app.md
@@ -1 +1 @@
-New mini-app: **Whiteboard** ๐ŸŽจ โ€” a shared drawing board for the current chat. Run `/board` to open it, then draw together with a pick of 5 colors and 3 brush sizes; everyone in the chat sees lines appear live. `/board clear` (or the Clear link) wipes it for everyone. Like the rest of lchat, it's end-to-end encrypted โ€” the server never sees what's drawn, only that something was.
+๐Ÿค– New mini-app: **Whiteboard** ๐ŸŽจ โ€” a shared drawing board for the current chat. Run `/board` to open it, then draw together with a pick of 5 colors and 3 brush sizes; everyone in the chat sees lines appear live. `/board clear` (or the Clear link) wipes it for everyone. Like the rest of lchat, it's end-to-end encrypted โ€” the server never sees what's drawn, only that something was.
diff --git a/changelog/2026-07-04-ai-helpers-and-commands.md b/changelog/2026-07-04-ai-helpers-and-commands.md
index b3dde8d..94158e9 100644
--- a/changelog/2026-07-04-ai-helpers-and-commands.md
+++ b/changelog/2026-07-04-ai-helpers-and-commands.md
@@ -1 +1 @@
-Helpers now show what they are: an **AI** badge when a helper is powered by AI (so it's clear that what you send it is answered by an AI service), or a **BOT** badge for a simple automated helper that stays on this server. And you can now ask Eleven for quick things with slash commands โ€” try `/help`, `/theme lagoon`, `/dark`, or `/profile` โ€” no need to spell it out in a sentence.
+๐Ÿค– Helpers now show what they are: an **AI** badge when a helper is powered by AI (so it's clear that what you send it is answered by an AI service), or a **BOT** badge for a simple automated helper that stays on this server. And you can now ask Eleven for quick things with slash commands โ€” try `/help`, `/theme lagoon`, `/dark`, or `/profile` โ€” no need to spell it out in a sentence.
diff --git a/changelog/2026-07-04-chat-app-badge-parity.md b/changelog/2026-07-04-chat-app-badge-parity.md
index 4a4ae1b..3112a1b 100644
--- a/changelog/2026-07-04-chat-app-badge-parity.md
+++ b/changelog/2026-07-04-chat-app-badge-parity.md
@@ -1 +1 @@
-Brought the newer chat engine up to date with the recent AI/BOT badge split โ€” helper senders now show the right "AI" or "BOT" chip, centered next to their name, everywhere the classic chat already did.
+๐Ÿค– Brought the newer chat engine up to date with the recent AI/BOT badge split โ€” helper senders now show the right "AI" or "BOT" chip, centered next to their name, everywhere the classic chat already did.
diff --git a/changelog/2026-07-04-delete-original-chat-code.md b/changelog/2026-07-04-delete-original-chat-code.md
index 86377ff..cd9cec9 100644
--- a/changelog/2026-07-04-delete-original-chat-code.md
+++ b/changelog/2026-07-04-delete-original-chat-code.md
@@ -1 +1 @@
-Housekeeping: removed the last of the old chat screen's code now that the newer chat engine handles every conversation. Nothing changes for you โ€” messages, replies, reactions, edits, photos and typing all work exactly as before โ€” the app is just a little leaner under the hood.
+๐Ÿค– Housekeeping: removed the last of the old chat screen's code now that the newer chat engine handles every conversation. Nothing changes for you โ€” messages, replies, reactions, edits, photos and typing all work exactly as before โ€” the app is just a little leaner under the hood.
diff --git a/changelog/2026-07-04-favicon-app-logo.md b/changelog/2026-07-04-favicon-app-logo.md
index b39e2b2..270acc3 100644
--- a/changelog/2026-07-04-favicon-app-logo.md
+++ b/changelog/2026-07-04-favicon-app-logo.md
@@ -1,3 +1,3 @@
-The browser tab icon (and the "Add to Home Screen" icon) now uses the Eleven
+๐Ÿค– The browser tab icon (and the "Add to Home Screen" icon) now uses the Eleven
Messenger app logo, so the web app matches the icon you see on your phone and Mac
instead of the old generic speech bubble.
diff --git a/changelog/2026-07-04-fix-attachment-error-messages.md b/changelog/2026-07-04-fix-attachment-error-messages.md
index 3eca5a5..84907c4 100644
--- a/changelog/2026-07-04-fix-attachment-error-messages.md
+++ b/changelog/2026-07-04-fix-attachment-error-messages.md
@@ -1 +1 @@
-Attachment errors are clear again: an oversized photo, an oversized file (with the 25 MB limit), and an unsupported file type each show their own message instead of one generic โ€œcouldnโ€™t add that fileโ€ โ€” and an unsupported file no longer flashes a loading chip before the error.
+๐Ÿค– Attachment errors are clear again: an oversized photo, an oversized file (with the 25 MB limit), and an unsupported file type each show their own message instead of one generic โ€œcouldnโ€™t add that fileโ€ โ€” and an unsupported file no longer flashes a loading chip before the error.
diff --git a/changelog/2026-07-04-fix-chat-keyboard-shortcuts.md b/changelog/2026-07-04-fix-chat-keyboard-shortcuts.md
index 956be6a..85f9d03 100644
--- a/changelog/2026-07-04-fix-chat-keyboard-shortcuts.md
+++ b/changelog/2026-07-04-fix-chat-keyboard-shortcuts.md
@@ -1 +1 @@
-Fixed desktop keyboard shortcuts going dead after switching between chats. Once you'd opened a couple of threads, the reply (Cmd/Ctrl-R), message-menu (Cmd/Ctrl-T) and Escape-to-cancel shortcuts only worked on one of them; now they follow whichever chat you're actually looking at.
+๐Ÿค– Fixed desktop keyboard shortcuts going dead after switching between chats. Once you'd opened a couple of threads, the reply (Cmd/Ctrl-R), message-menu (Cmd/Ctrl-T) and Escape-to-cancel shortcuts only worked on one of them; now they follow whichever chat you're actually looking at.
diff --git a/changelog/2026-07-04-fix-composer-repin.md b/changelog/2026-07-04-fix-composer-repin.md
index 16b7f2c..06ee4e7 100644
--- a/changelog/2026-07-04-fix-composer-repin.md
+++ b/changelog/2026-07-04-fix-composer-repin.md
@@ -1 +1 @@
-Fixed the chat staying put when you type: as your message wraps onto more lines โ€” or when you start editing a longer one โ€” the conversation now keeps the newest message in view instead of drifting up and hiding it, matching how the classic chat has always behaved.
+๐Ÿค– Fixed the chat staying put when you type: as your message wraps onto more lines โ€” or when you start editing a longer one โ€” the conversation now keeps the newest message in view instead of drifting up and hiding it, matching how the classic chat has always behaved.
diff --git a/changelog/2026-07-04-fix-copy-confirmation.md b/changelog/2026-07-04-fix-copy-confirmation.md
index 8412202..3f6ca7b 100644
--- a/changelog/2026-07-04-fix-copy-confirmation.md
+++ b/changelog/2026-07-04-fix-copy-confirmation.md
@@ -1,4 +1,4 @@
-Tapping Copy on a message now confirms it worked: youโ€™ll see a brief "Copied"
+๐Ÿค– Tapping Copy on a message now confirms it worked: youโ€™ll see a brief "Copied"
pill, or "Couldnโ€™t copy" if your browser blocked clipboard access โ€” the same
quick confirmation the chat has always shown. Before, Copy stayed silent, so
you couldnโ€™t tell whether the text had actually made it to your clipboard.
diff --git a/changelog/2026-07-04-fix-day-separator-month.md b/changelog/2026-07-04-fix-day-separator-month.md
index c60cce1..49f98ac 100644
--- a/changelog/2026-07-04-fix-day-separator-month.md
+++ b/changelog/2026-07-04-fix-day-separator-month.md
@@ -1 +1 @@
-Fixed the dated day separators in the newer chat engine to use the short month again (e.g. โ€œJul 4โ€, not โ€œJuly 4โ€), matching the classic chat above older messages.
+๐Ÿค– Fixed the dated day separators in the newer chat engine to use the short month again (e.g. โ€œJul 4โ€, not โ€œJuly 4โ€), matching the classic chat above older messages.
diff --git a/changelog/2026-07-04-fix-legacy-message-dates.md b/changelog/2026-07-04-fix-legacy-message-dates.md
index 05e7ce0..1bd8e0a 100644
--- a/changelog/2026-07-04-fix-legacy-message-dates.md
+++ b/changelog/2026-07-04-fix-legacy-message-dates.md
@@ -1 +1 @@
-Fixed old messages showing up dated "January 1970" (and adding a stray "January 1970" day divider) in the newer chat engine. Messages sent before we started stamping a send time now fall back to the server's received time, so they sit in the right place in the history again.
+๐Ÿค– Fixed old messages showing up dated "January 1970" (and adding a stray "January 1970" day divider) in the newer chat engine. Messages sent before we started stamping a send time now fall back to the server's received time, so they sit in the right place in the history again.
diff --git a/changelog/2026-07-04-fix-legacy-own-messages.md b/changelog/2026-07-04-fix-legacy-own-messages.md
index d0a44e2..fe04dc9 100644
--- a/changelog/2026-07-04-fix-legacy-own-messages.md
+++ b/changelog/2026-07-04-fix-legacy-own-messages.md
@@ -1 +1 @@
-Fixed older messages you sent showing up as if they were someone else's in the newer chat โ€” left-aligned, with your name on them, and not editable. The chat now recognises your own earlier messages by name (as it always did), so they line up on your side again and stay editable.
+๐Ÿค– Fixed older messages you sent showing up as if they were someone else's in the newer chat โ€” left-aligned, with your name on them, and not editable. The chat now recognises your own earlier messages by name (as it always did), so they line up on your side again and stay editable.
diff --git a/changelog/2026-07-04-fix-link-preview-parity.md b/changelog/2026-07-04-fix-link-preview-parity.md
index 83fb5b1..58f6c20 100644
--- a/changelog/2026-07-04-fix-link-preview-parity.md
+++ b/changelog/2026-07-04-fix-link-preview-parity.md
@@ -1 +1 @@
-Link previews in the newer chat engine now match the classic one: a link's host line shows an explicit port when there is one, and a preview that fails to load the first time retries the next time the message is shown instead of staying blank until a full reload.
+๐Ÿค– Link previews in the newer chat engine now match the classic one: a link's host line shows an explicit port when there is one, and a preview that fails to load the first time retries the next time the message is shown instead of staying blank until a full reload.
diff --git a/changelog/2026-07-04-fix-mac-drop-upload.md b/changelog/2026-07-04-fix-mac-drop-upload.md
index 99f948d..5cd0266 100644
--- a/changelog/2026-07-04-fix-mac-drop-upload.md
+++ b/changelog/2026-07-04-fix-mac-drop-upload.md
@@ -1 +1 @@
-Fixed drag-and-drop file uploads in the Mac app again: a photo or file dropped onto a chat now lands in the message box ready to send, instead of being silently swallowed.
+๐Ÿค– Fixed drag-and-drop file uploads in the Mac app again: a photo or file dropped onto a chat now lands in the message box ready to send, instead of being silently swallowed.
diff --git a/changelog/2026-07-04-fix-native-drop-guard.md b/changelog/2026-07-04-fix-native-drop-guard.md
index 64b5666..10de9ba 100644
--- a/changelog/2026-07-04-fix-native-drop-guard.md
+++ b/changelog/2026-07-04-fix-native-drop-guard.md
@@ -1 +1 @@
-Fixed file drag-and-drop in the Mac app: dropping a photo or file onto the chat now hands it to the native app to send, instead of being silently swallowed.
+๐Ÿค– Fixed file drag-and-drop in the Mac app: dropping a photo or file onto the chat now hands it to the native app to send, instead of being silently swallowed.
diff --git a/changelog/2026-07-04-fix-native-thread-routing.md b/changelog/2026-07-04-fix-native-thread-routing.md
index 5eeea94..00c7d57 100644
--- a/changelog/2026-07-04-fix-native-thread-routing.md
+++ b/changelog/2026-07-04-fix-native-thread-routing.md
@@ -1,4 +1,4 @@
-On the iOS and Mac apps, a message or photo you sent from the native composer
+๐Ÿค– On the iOS and Mac apps, a message or photo you sent from the native composer
now always lands in the chat you're actually looking at. Previously, after you
hopped between a couple of chats and came back to an earlier one, the app could
quietly send your next message โ€” or your typing indicator โ€” to the chat you'd
diff --git a/changelog/2026-07-04-fix-own-typing-indicator.md b/changelog/2026-07-04-fix-own-typing-indicator.md
index 62273bc..2b86ace 100644
--- a/changelog/2026-07-04-fix-own-typing-indicator.md
+++ b/changelog/2026-07-04-fix-own-typing-indicator.md
@@ -1 +1 @@
-Fixed your own typing indicator briefly showing to you in a brand-new chat: when you started typing in a fresh DM or group, your relayed typing beat could flash back at you as if someone else were typing. Now your own beat is always filtered out, so the indicator only ever shows when the other person is typing.
+๐Ÿค– Fixed your own typing indicator briefly showing to you in a brand-new chat: when you started typing in a fresh DM or group, your relayed typing beat could flash back at you as if someone else were typing. Now your own beat is always filtered out, so the indicator only ever shows when the other person is typing.
diff --git a/changelog/2026-07-04-fix-paste-blockquote.md b/changelog/2026-07-04-fix-paste-blockquote.md
index 6be6d5b..c228f10 100644
--- a/changelog/2026-07-04-fix-paste-blockquote.md
+++ b/changelog/2026-07-04-fix-paste-blockquote.md
@@ -1 +1 @@
-Pasting into a quote keeps quoting. Start a line with "> " in the message box, then paste several lines, and every line comes in as part of the quote โ€” just like the classic chat already did.
\ No newline at end of file
+๐Ÿค– Pasting into a quote keeps quoting. Start a line with "> " in the message box, then paste several lines, and every line comes in as part of the quote โ€” just like the classic chat already did.
\ No newline at end of file
diff --git a/changelog/2026-07-04-fix-poll-close-during-voting.md b/changelog/2026-07-04-fix-poll-close-during-voting.md
index 3893073..88c98d8 100644
--- a/changelog/2026-07-04-fix-poll-close-during-voting.md
+++ b/changelog/2026-07-04-fix-poll-close-during-voting.md
@@ -1 +1 @@
-Fixed the Poll mini-app so you can reliably close a poll and post its results even while people are actively voting. The two-step **Close poll** confirm no longer resets every time a new vote or message arrives, and the posted results count every vote right up to the moment you close.
+๐Ÿค– Fixed the Poll mini-app so you can reliably close a poll and post its results even while people are actively voting. The two-step **Close poll** confirm no longer resets every time a new vote or message arrives, and the posted results count every vote right up to the moment you close.
diff --git a/changelog/2026-07-04-fix-react-no-bubble-rebuild.md b/changelog/2026-07-04-fix-react-no-bubble-rebuild.md
index 920b71c..fe5262f 100644
--- a/changelog/2026-07-04-fix-react-no-bubble-rebuild.md
+++ b/changelog/2026-07-04-fix-react-no-bubble-rebuild.md
@@ -1 +1 @@
-Reacting to a message (or a reply landing on one) no longer disturbs the message itself: a photo stays put instead of flickering as it reloads, and an expanded YouTube video keeps playing instead of snapping back to its thumbnail. Only the little reactions and "N Replies" row underneath updates.
+๐Ÿค– Reacting to a message (or a reply landing on one) no longer disturbs the message itself: a photo stays put instead of flickering as it reloads, and an expanded YouTube video keeps playing instead of snapping back to its thumbnail. Only the little reactions and "N Replies" row underneath updates.
diff --git a/changelog/2026-07-04-fix-reaction-while-offline.md b/changelog/2026-07-04-fix-reaction-while-offline.md
index 6e6fcdf..9736ddd 100644
--- a/changelog/2026-07-04-fix-reaction-while-offline.md
+++ b/changelog/2026-07-04-fix-reaction-while-offline.md
@@ -1 +1 @@
-Tapping a reaction while you're offline or reconnecting no longer leaves your reaction stuck in the wrong state โ€” the tap now only counts once it actually reaches the server, so what you see matches everyone else after you're back online.
+๐Ÿค– Tapping a reaction while you're offline or reconnecting no longer leaves your reaction stuck in the wrong state โ€” the tap now only counts once it actually reaches the server, so what you see matches everyone else after you're back online.
diff --git a/changelog/2026-07-04-fix-remind-validation.md b/changelog/2026-07-04-fix-remind-validation.md
index 3f0a120..a8b4918 100644
--- a/changelog/2026-07-04-fix-remind-validation.md
+++ b/changelog/2026-07-04-fix-remind-validation.md
@@ -1,4 +1,4 @@
-Reminders now reject impossible dates and times. Typing something like
+๐Ÿค– Reminders now reject impossible dates and times. Typing something like
`/remind Renew passport | 2026-06-31` or `... 24:00` used to quietly slide to
the wrong day; now an out-of-range date or time is turned down so you can fix it.
And when a reminder fires offline, you'll only get one alert on the device that
diff --git a/changelog/2026-07-04-fix-reminder-cancel-error.md b/changelog/2026-07-04-fix-reminder-cancel-error.md
index e706186..4d27931 100644
--- a/changelog/2026-07-04-fix-reminder-cancel-error.md
+++ b/changelog/2026-07-04-fix-reminder-cancel-error.md
@@ -1 +1 @@
-Fixed cancelling a scheduled message so it can no longer look like it worked when it didn't: if the server hit a database problem while cancelling, it used to reply "cancelled" anyway, and the reminder would still fire later. Now a real failure is reported back, so your app knows the cancel didn't take rather than leaving a message quietly waiting to send.
+๐Ÿค– Fixed cancelling a scheduled message so it can no longer look like it worked when it didn't: if the server hit a database problem while cancelling, it used to reply "cancelled" anyway, and the reminder would still fire later. Now a real failure is reported back, so your app knows the cancel didn't take rather than leaving a message quietly waiting to send.
diff --git a/changelog/2026-07-04-fix-self-mention-styling.md b/changelog/2026-07-04-fix-self-mention-styling.md
index d895900..91f69d4 100644
--- a/changelog/2026-07-04-fix-self-mention-styling.md
+++ b/changelog/2026-07-04-fix-self-mention-styling.md
@@ -1 +1 @@
-When a message @-mentions your own name, it now shows as plain bold text instead of a tappable link โ€” matching the classic chat. Mentions of other people stay tappable (with the "Message them" menu); only your own name was ever a dead link.
+๐Ÿค– When a message @-mentions your own name, it now shows as plain bold text instead of a tappable link โ€” matching the classic chat. Mentions of other people stay tappable (with the "Message them" menu); only your own name was ever a dead link.
diff --git a/changelog/2026-07-04-fix-send-while-offline.md b/changelog/2026-07-04-fix-send-while-offline.md
index 1c7deb4..6936d0d 100644
--- a/changelog/2026-07-04-fix-send-while-offline.md
+++ b/changelog/2026-07-04-fix-send-while-offline.md
@@ -1 +1 @@
-Your typed message is no longer lost if you hit send while the connection is dropping โ€” the text (and any attachment or reply you had staged) now stays in the composer so you can send it the moment you reconnect. The send button also greys out while offline, just like it did before.
+๐Ÿค– Your typed message is no longer lost if you hit send while the connection is dropping โ€” the text (and any attachment or reply you had staged) now stays in the composer so you can send it the moment you reconnect. The send button also greys out while offline, just like it did before.
diff --git a/changelog/2026-07-04-fix-swipe-reply-parity.md b/changelog/2026-07-04-fix-swipe-reply-parity.md
index 67421f1..022ec20 100644
--- a/changelog/2026-07-04-fix-swipe-reply-parity.md
+++ b/changelog/2026-07-04-fix-swipe-reply-parity.md
@@ -1 +1 @@
-Swipe-to-reply on mini-app messages now behaves like the rest of the chat: a diagonal drag scrolls the conversation instead of accidentally starting a reply, and a swipe that gets interrupted (by an incoming call or notification) snaps the message back into place instead of leaving it stuck partway across.
+๐Ÿค– Swipe-to-reply on mini-app messages now behaves like the rest of the chat: a diagonal drag scrolls the conversation instead of accidentally starting a reply, and a swipe that gets interrupted (by an incoming call or notification) snaps the message back into place instead of leaving it stuck partway across.
diff --git a/changelog/2026-07-04-fix-touch-longpress-selection.md b/changelog/2026-07-04-fix-touch-longpress-selection.md
index 8908734..ee606f4 100644
--- a/changelog/2026-07-04-fix-touch-longpress-selection.md
+++ b/changelog/2026-07-04-fix-touch-longpress-selection.md
@@ -1 +1 @@
-Fixed long-pressing a message on touch in the newer chat engine โ€” the native text-selection and copy callout no longer fight the press, so the reaction and Reply/Copy/Edit/Delete menu opens cleanly.
+๐Ÿค– Fixed long-pressing a message on touch in the newer chat engine โ€” the native text-selection and copy callout no longer fight the press, so the reaction and Reply/Copy/Edit/Delete menu opens cleanly.
diff --git a/changelog/2026-07-04-fix-typing-indicator-layout.md b/changelog/2026-07-04-fix-typing-indicator-layout.md
index c91227b..cc46960 100644
--- a/changelog/2026-07-04-fix-typing-indicator-layout.md
+++ b/changelog/2026-07-04-fix-typing-indicator-layout.md
@@ -1 +1 @@
-Fixed two typing-indicator glitches: in group chats the "X is typingโ€ฆ" line now actually shows (it was there but collapsed to zero height, so you never saw it), and in one-to-one chats the typing bubble no longer gives the whole app a second scrollbar that let the screen scroll out of view.
+๐Ÿค– Fixed two typing-indicator glitches: in group chats the "X is typingโ€ฆ" line now actually shows (it was there but collapsed to zero height, so you never saw it), and in one-to-one chats the typing bubble no longer gives the whole app a second scrollbar that let the screen scroll out of view.
diff --git a/changelog/2026-07-04-fix-typing-rebeat.md b/changelog/2026-07-04-fix-typing-rebeat.md
index d225c97..800e082 100644
--- a/changelog/2026-07-04-fix-typing-rebeat.md
+++ b/changelog/2026-07-04-fix-typing-rebeat.md
@@ -1 +1 @@
-Fixed the typing indicator fading out too soon: if you paused mid-message with text still in the box, the other person would stop seeing that you were typing after a few seconds. Now it stays lit through those pauses and clears the moment you send, clear the box, or truly go idle.
+๐Ÿค– Fixed the typing indicator fading out too soon: if you paused mid-message with text still in the box, the other person would stop seeing that you were typing after a few seconds. Now it stays lit through those pauses and clears the moment you send, clear the box, or truly go idle.
diff --git a/changelog/2026-07-04-mac-native-menus.md b/changelog/2026-07-04-mac-native-menus.md
index 17aedb0..757bc81 100644
--- a/changelog/2026-07-04-mac-native-menus.md
+++ b/changelog/2026-07-04-mac-native-menus.md
@@ -1 +1 @@
-On the Mac app, the "โ‹ฎ" menus (next to New chat, and in a chat's header) now open as proper macOS menus โ€” the same options, doing the same things, but with native look, keyboard navigation, and placement.
+๐Ÿค– On the Mac app, the "โ‹ฎ" menus (next to New chat, and in a chat's header) now open as proper macOS menus โ€” the same options, doing the same things, but with native look, keyboard navigation, and placement.
diff --git a/changelog/2026-07-04-native-avatar-photos.md b/changelog/2026-07-04-native-avatar-photos.md
index 2756c28..e3da527 100644
--- a/changelog/2026-07-04-native-avatar-photos.md
+++ b/changelog/2026-07-04-native-avatar-photos.md
@@ -1,4 +1,4 @@
-Profile and group photos now show up in the app's chat list, chat headers, and
+๐Ÿค– Profile and group photos now show up in the app's chat list, chat headers, and
the new-chat picker โ€” not just inside an open conversation. Where someone has
set a photo you'll see it in their circle; everyone else keeps the coloured
initials. As always the photos are decrypted on your device, so the server only
diff --git a/changelog/2026-07-04-perf-skip-classic-append.md b/changelog/2026-07-04-perf-skip-classic-append.md
index 381c96f..f1c8e6c 100644
--- a/changelog/2026-07-04-perf-skip-classic-append.md
+++ b/changelog/2026-07-04-perf-skip-classic-append.md
@@ -1 +1 @@
-Trimmed a little wasted work when new messages arrive: the newer chat engine no longer quietly re-decrypts and redraws each incoming message a second time behind the scenes. You won't see a difference beyond things staying that bit smoother on busy threads.
+๐Ÿค– Trimmed a little wasted work when new messages arrive: the newer chat engine no longer quietly re-decrypts and redraws each incoming message a second time behind the scenes. You won't see a difference beyond things staying that bit smoother on busy threads.
diff --git a/changelog/2026-07-04-pin-and-close-chats-on-ios.md b/changelog/2026-07-04-pin-and-close-chats-on-ios.md
index 0061c00..20e8891 100644
--- a/changelog/2026-07-04-pin-and-close-chats-on-ios.md
+++ b/changelog/2026-07-04-pin-and-close-chats-on-ios.md
@@ -1 +1 @@
-Pin and close chats now work in the iPhone and iPad app, matching the web: swipe a chat in your list to close it, or use the new โ‹ฏ menu inside a chat to pin it to the top or close it. Closed chats aren't gone โ€” search for one by name to bring it back. Each chat also gets a tidier header now, with the person's (or group's) avatar and name centered up top.
+๐Ÿค– Pin and close chats now work in the iPhone and iPad app, matching the web: swipe a chat in your list to close it, or use the new โ‹ฏ menu inside a chat to pin it to the top or close it. Closed chats aren't gone โ€” search for one by name to bring it back. Each chat also gets a tidier header now, with the person's (or group's) avatar and name centered up top.
diff --git a/changelog/2026-07-04-server-avatar.md b/changelog/2026-07-04-server-avatar.md
index 9e2095c..87bb903 100644
--- a/changelog/2026-07-04-server-avatar.md
+++ b/changelog/2026-07-04-server-avatar.md
@@ -1,4 +1,4 @@
-Your chat can now have its own photo. An admin can set one from the admin console
+๐Ÿค– Your chat can now have its own photo. An admin can set one from the admin console
(under "Server photo"), and it shows up when someone's invited and picking their
screen name, and on the "Save securely" passkey-backup screen โ€” a warmer, more
recognisable welcome than a generic icon. Like the chat's name, the photo is
diff --git a/changelog/2026-07-04-touch-message-menu-parity.md b/changelog/2026-07-04-touch-message-menu-parity.md
index 03fd948..229a91d 100644
--- a/changelog/2026-07-04-touch-message-menu-parity.md
+++ b/changelog/2026-07-04-touch-message-menu-parity.md
@@ -1,4 +1,4 @@
-Long-pressing a message on your phone now opens the full menu again: the
+๐Ÿค– Long-pressing a message on your phone now opens the full menu again: the
message lifts above a dimmed background, the emoji reactions float just above
it, and a clearly labelled Reply, Copy, Edit, and Delete list sits below โ€” the
same familiar sheet you get everywhere else in the app. A quick double-tap
diff --git a/changelog/2026-07-05-bot-double-reply.md b/changelog/2026-07-05-bot-double-reply.md
index f11d09a..796d557 100644
--- a/changelog/2026-07-05-bot-double-reply.md
+++ b/changelog/2026-07-05-bot-double-reply.md
@@ -1 +1 @@
-Fixed a hiccup where an AI helper (like Claude) could occasionally answer the same message twice, or briefly go quiet on a reply. Helpers now give exactly one reply per message, even across a brief reconnect.
+๐Ÿค– Fixed a hiccup where an AI helper (like Claude) could occasionally answer the same message twice, or briefly go quiet on a reply. Helpers now give exactly one reply per message, even across a brief reconnect.
diff --git a/changelog/2026-07-05-bot-typing-indicator.md b/changelog/2026-07-05-bot-typing-indicator.md
index 1316118..8831fae 100644
--- a/changelog/2026-07-05-bot-typing-indicator.md
+++ b/changelog/2026-07-05-bot-typing-indicator.md
@@ -1,4 +1,4 @@
-The "โ€ฆis typing" indicator is back for bots. When Eleven (or any bot) is composing
+๐Ÿค– The "โ€ฆis typing" indicator is back for bots. When Eleven (or any bot) is composing
a reply, you'll again see the little typing dots while it thinks โ€” they'd quietly
stopped showing after the chat moved to its new engine. The dots appear as soon as
the bot starts and clear the moment its reply lands.
diff --git a/changelog/2026-07-05-bots-ignore-typing.md b/changelog/2026-07-05-bots-ignore-typing.md
index 3ad5548..a2c271e 100644
--- a/changelog/2026-07-05-bots-ignore-typing.md
+++ b/changelog/2026-07-05-bots-ignore-typing.md
@@ -1,4 +1,4 @@
-Bots now wait for you to actually send. In a one-on-one chat with Eleven (or any
+๐Ÿค– Bots now wait for you to actually send. In a one-on-one chat with Eleven (or any
bot), the little "โ€ฆis typing" indicator was being mistaken for a message, so the
bot would sometimes fire off a reply before you'd finished your thought. Fixed:
typing is presence, not a message, and bots ignore it โ€” they only respond once you
diff --git a/changelog/2026-07-05-chat-list-recency.md b/changelog/2026-07-05-chat-list-recency.md
index 5fe2792..95ce91d 100644
--- a/changelog/2026-07-05-chat-list-recency.md
+++ b/changelog/2026-07-05-chat-list-recency.md
@@ -1 +1 @@
-Your chat list now keeps the most recent conversations on top, the way you'd expect: any chat with new activity floats up โ€” including the one you're currently in, and ones you've just sent to. (Previously a chat only moved up when a message arrived while you were looking elsewhere.) Pinned chats still sit above the rest. A reminder firing floats its Reminders chat up too.
+๐Ÿค– Your chat list now keeps the most recent conversations on top, the way you'd expect: any chat with new activity floats up โ€” including the one you're currently in, and ones you've just sent to. (Previously a chat only moved up when a message arrived while you were looking elsewhere.) Pinned chats still sit above the rest. A reminder firing floats its Reminders chat up too.
diff --git a/changelog/2026-07-05-chat-scrolling-and-focus.md b/changelog/2026-07-05-chat-scrolling-and-focus.md
index 8e206ce..3d09a8e 100644
--- a/changelog/2026-07-05-chat-scrolling-and-focus.md
+++ b/changelog/2026-07-05-chat-scrolling-and-focus.md
@@ -1,4 +1,4 @@
-A few chat-window niggles are fixed. Coming back to Eleven now drops the cursor
+๐Ÿค– A few chat-window niggles are fixed. Coming back to Eleven now drops the cursor
straight into the message box, so you can start typing without a tap (on the
desktop and Mac apps โ€” your phone won't pop the keyboard up on you just for
switching back). And the conversation stays glued to the newest message when it
diff --git a/changelog/2026-07-05-composer-scroll.md b/changelog/2026-07-05-composer-scroll.md
index 855abf8..ba398b8 100644
--- a/changelog/2026-07-05-composer-scroll.md
+++ b/changelog/2026-07-05-composer-scroll.md
@@ -1 +1 @@
-The message box now scrolls once a long draft grows past its maximum height, instead of hiding the earlier lines โ€” and typing a multi-line message no longer nudges the conversation up a notch as the box grows.
+๐Ÿค– The message box now scrolls once a long draft grows past its maximum height, instead of hiding the earlier lines โ€” and typing a multi-line message no longer nudges the conversation up a notch as the box grows.
diff --git a/changelog/2026-07-05-connect-services.md b/changelog/2026-07-05-connect-services.md
index 0e5dc2a..8ef28c8 100644
--- a/changelog/2026-07-05-connect-services.md
+++ b/changelog/2026-07-05-connect-services.md
@@ -1,4 +1,4 @@
-You can now connect an outside service to a chat and let a bot act on it โ€” the
+๐Ÿค– You can now connect an outside service to a chat and let a bot act on it โ€” the
first, experimental step toward things like managing domains from a message.
Type `/connect dnsimple <your access token>` to link a DNSimple account: your
token is encrypted on your device before it's stored, so the server never sees
diff --git a/changelog/2026-07-05-dnsimple-app.md b/changelog/2026-07-05-dnsimple-app.md
index 884e9f6..458d922 100644
--- a/changelog/2026-07-05-dnsimple-app.md
+++ b/changelog/2026-07-05-dnsimple-app.md
@@ -1,4 +1,4 @@
-Once you connect DNSimple, it now installs as its own app โ€” open it like any
+๐Ÿค– Once you connect DNSimple, it now installs as its own app โ€” open it like any
chat and you'll find your domains listed in its Interface view, with a Refresh to
pull the latest. It's a companion app: a Chat view sits alongside the list, so
what it fetches reads back as a conversation. Nothing new runs behind the scenes
diff --git a/changelog/2026-07-05-eleven-knowledge.md b/changelog/2026-07-05-eleven-knowledge.md
index 89a8ac7..646d11b 100644
--- a/changelog/2026-07-05-eleven-knowledge.md
+++ b/changelog/2026-07-05-eleven-knowledge.md
@@ -1 +1 @@
-Eleven got a lot smarter about the app. Where conversational AI is switched on, Eleven now carries a deep, always-up-to-date reference โ€” how encryption keeps your chats private, how every feature and mini-app works, the native apps, even how the whole thing is built โ€” so it can answer almost anything you ask about how the app works. (It sticks to the open design; it doesn't know any private server secrets.)
+๐Ÿค– Eleven got a lot smarter about the app. Where conversational AI is switched on, Eleven now carries a deep, always-up-to-date reference โ€” how encryption keeps your chats private, how every feature and mini-app works, the native apps, even how the whole thing is built โ€” so it can answer almost anything you ask about how the app works. (It sticks to the open design; it doesn't know any private server secrets.)
diff --git a/changelog/2026-07-05-eleven-tutorial.md b/changelog/2026-07-05-eleven-tutorial.md
index 3358a32..e34d39a 100644
--- a/changelog/2026-07-05-eleven-tutorial.md
+++ b/changelog/2026-07-05-eleven-tutorial.md
@@ -1 +1 @@
-New: a guided tour from Eleven. Type /tutorial anytime โ€” or tap โ€œTake the tourโ€ when Eleven first welcomes you โ€” for a quick, tappable walkthrough: what this space is and who runs it, how To-dos and Reminders work (with a nudge to try each), and a gentle explainer of how everything stays private and encrypted. It ends with a little ๐ŸŽ‰.
+๐Ÿค– New: a guided tour from Eleven. Type /tutorial anytime โ€” or tap โ€œTake the tourโ€ when Eleven first welcomes you โ€” for a quick, tappable walkthrough: what this space is and who runs it, how To-dos and Reminders work (with a nudge to try each), and a gentle explainer of how everything stays private and encrypted. It ends with a little ๐ŸŽ‰.
diff --git a/changelog/2026-07-05-feed-dismiss-flash.md b/changelog/2026-07-05-feed-dismiss-flash.md
index de12c34..d605e17 100644
--- a/changelog/2026-07-05-feed-dismiss-flash.md
+++ b/changelog/2026-07-05-feed-dismiss-flash.md
@@ -1 +1 @@
-Fixed a flicker in the iOS app where the messages would jitter up and down as the keyboard was swiped away โ€” the feed now settles smoothly when the keyboard closes.
+๐Ÿค– Fixed a flicker in the iOS app where the messages would jitter up and down as the keyboard was swiped away โ€” the feed now settles smoothly when the keyboard closes.
diff --git a/changelog/2026-07-05-fix-pending-invite-load.md b/changelog/2026-07-05-fix-pending-invite-load.md
index a836df6..7a26452 100644
--- a/changelog/2026-07-05-fix-pending-invite-load.md
+++ b/changelog/2026-07-05-fix-pending-invite-load.md
@@ -1,4 +1,4 @@
-Fixed a bug that could stop your chats from loading. If you had a pending invite
+๐Ÿค– Fixed a bug that could stop your chats from loading. If you had a pending invite
out to someone who hadn't joined yet, the app could get stuck on "Something went
wrong โ€” couldn't load your chats." That's resolved: a not-yet-joined invitee no
longer blocks anything, and picks up everything they need the moment they join.
diff --git a/changelog/2026-07-05-help-and-in-feed-command-replies.md b/changelog/2026-07-05-help-and-in-feed-command-replies.md
index fc8542e..f0a6375 100644
--- a/changelog/2026-07-05-help-and-in-feed-command-replies.md
+++ b/changelog/2026-07-05-help-and-in-feed-command-replies.md
@@ -1,4 +1,4 @@
-Slash commands got friendlier. Type `/help` in any chat to see the commands
+๐Ÿค– Slash commands got friendlier. Type `/help` in any chat to see the commands
you can use โ€” it replies privately, just to you, so nobody else sees it. Mistype
a command like `/tood` and you'll get the same gentle, private nudge instead of
accidentally sending it to everyone.
diff --git a/changelog/2026-07-05-invite-link-preview.md b/changelog/2026-07-05-invite-link-preview.md
index abfcbbc..c4ac9ee 100644
--- a/changelog/2026-07-05-invite-link-preview.md
+++ b/changelog/2026-07-05-invite-link-preview.md
@@ -1,4 +1,4 @@
-Invite links now show a proper preview card when you paste them into Messages,
+๐Ÿค– Invite links now show a proper preview card when you paste them into Messages,
WhatsApp, Slack and the like. The card reads "You're invited to <your group's
name>" and shows your server's photo โ€” or the app logo if you haven't set one โ€”
instead of a bare link. Nothing private leaks: the preview only uses your group's
diff --git a/changelog/2026-07-05-ios-app-thread-titles.md b/changelog/2026-07-05-ios-app-thread-titles.md
index 13f1b08..70777a9 100644
--- a/changelog/2026-07-05-ios-app-thread-titles.md
+++ b/changelog/2026-07-05-ios-app-thread-titles.md
@@ -1 +1 @@
-Fixed mini-app chats (To-do, Reminders, and the like) showing up as "Notes" in the iOS app โ€” they now display their proper app name.
+๐Ÿค– Fixed mini-app chats (To-do, Reminders, and the like) showing up as "Notes" in the iOS app โ€” they now display their proper app name.
diff --git a/changelog/2026-07-05-mac-app.md b/changelog/2026-07-05-mac-app.md
index 85db8b6..3f04b46 100644
--- a/changelog/2026-07-05-mac-app.md
+++ b/changelog/2026-07-05-mac-app.md
@@ -1,4 +1,4 @@
-Eleven now has a proper Mac app. Download it, drag it into your Applications
+๐Ÿค– Eleven now has a proper Mac app. Download it, drag it into your Applications
folder, and it opens straight away โ€” no "unidentified developer" warnings,
because it's signed and notarized by Apple. From then on it keeps itself up to
date quietly in the background, so you're always on the latest version without
diff --git a/changelog/2026-07-05-mac-drag-drop-hover.md b/changelog/2026-07-05-mac-drag-drop-hover.md
index c8a7e0f..21c78bd 100644
--- a/changelog/2026-07-05-mac-drag-drop-hover.md
+++ b/changelog/2026-07-05-mac-drag-drop-hover.md
@@ -1,4 +1,4 @@
-On the Mac app, dragging a photo or file into a chat now highlights the window
+๐Ÿค– On the Mac app, dragging a photo or file into a chat now highlights the window
with a dashed "Drop a photo or file to send" overlay โ€” the same affordance the
web app shows โ€” so it's clear the drop will land here. Let go to attach it, then
add a caption before sending. (Previously the drop worked, but with no hover
diff --git a/changelog/2026-07-05-mac-file-download.md b/changelog/2026-07-05-mac-file-download.md
index 41b09bd..af68d27 100644
--- a/changelog/2026-07-05-mac-file-download.md
+++ b/changelog/2026-07-05-mac-file-download.md
@@ -1,4 +1,4 @@
-Downloading a file someone sent you now works in the Mac app. Clicking a file
+๐Ÿค– Downloading a file someone sent you now works in the Mac app. Clicking a file
attachment saves it straight to your Downloads folder and reveals it in Finder,
just like a browser โ€” previously the click did nothing. The same fix makes
right-click "Save Image" work on photos you open full-screen.
diff --git a/changelog/2026-07-05-reminders-previous-section.md b/changelog/2026-07-05-reminders-previous-section.md
index 8331aa3..a24ff09 100644
--- a/changelog/2026-07-05-reminders-previous-section.md
+++ b/changelog/2026-07-05-reminders-previous-section.md
@@ -1 +1 @@
-Reminders that have gone off no longer pile up in your list. When one fires it lingers briefly โ€” with a little ring counting down โ€” then tucks itself into a โ€œPrevious remindersโ€ section at the bottom, which you can expand any time to look back over what you've been reminded about (or clear items from it). Your upcoming reminders stay front and centre, soonest first.
+๐Ÿค– Reminders that have gone off no longer pile up in your list. When one fires it lingers briefly โ€” with a little ring counting down โ€” then tucks itself into a โ€œPrevious remindersโ€ section at the bottom, which you can expand any time to look back over what you've been reminded about (or clear items from it). Your upcoming reminders stay front and centre, soonest first.
diff --git a/changelog/2026-07-05-reminders-speak-via-dm.md b/changelog/2026-07-05-reminders-speak-via-dm.md
index 10b6e2c..3884e4f 100644
--- a/changelog/2026-07-05-reminders-speak-via-dm.md
+++ b/changelog/2026-07-05-reminders-speak-via-dm.md
@@ -1 +1 @@
-A reminder now arrives as a message from Reminders โ€” the chat floats to the top of your list with an unread dot โ€” instead of a pop-up that covered whatever you were reading. Setting one no longer asks you to "Enable reminder alerts": you'll simply hear from Reminders directly.
+๐Ÿค– A reminder now arrives as a message from Reminders โ€” the chat floats to the top of your list with an unread dot โ€” instead of a pop-up that covered whatever you were reading. Setting one no longer asks you to "Enable reminder alerts": you'll simply hear from Reminders directly.
diff --git a/changelog/2026-07-05-reply-card-calms-down.md b/changelog/2026-07-05-reply-card-calms-down.md
index 1979d9c..8ed8186 100644
--- a/changelog/2026-07-05-reply-card-calms-down.md
+++ b/changelog/2026-07-05-reply-card-calms-down.md
@@ -1 +1 @@
-Replies to a slash command now read like a proper chat reply โ€” the responder's name and the โ€œOnly visible to youโ€ note sit above the bubble, just like a message. And a quick confirmation (โ€œAdded โ€˜milkโ€™โ€, โ€œI'll remind youโ€ฆโ€) no longer lingers: after a moment it quietly shrinks to a compact one-liner โ€” like โ€œโฐ Reminders added โ€˜milkโ€™ ยท View remindersโ€ โ€” with its action still one tap away. Genuine replies that are real content, like the /help command list, stay put as normal messages.
+๐Ÿค– Replies to a slash command now read like a proper chat reply โ€” the responder's name and the โ€œOnly visible to youโ€ note sit above the bubble, just like a message. And a quick confirmation (โ€œAdded โ€˜milkโ€™โ€, โ€œI'll remind youโ€ฆโ€) no longer lingers: after a moment it quietly shrinks to a compact one-liner โ€” like โ€œโฐ Reminders added โ€˜milkโ€™ ยท View remindersโ€ โ€” with its action still one tap away. Genuine replies that are real content, like the /help command list, stay put as normal messages.
diff --git a/changelog/2026-07-05-send-scrolls-to-bottom.md b/changelog/2026-07-05-send-scrolls-to-bottom.md
index 8f39e4d..554466e 100644
--- a/changelog/2026-07-05-send-scrolls-to-bottom.md
+++ b/changelog/2026-07-05-send-scrolls-to-bottom.md
@@ -1 +1 @@
-Sending a message now always drops you to the bottom of the conversation, so your message is right there in view โ€” even if you'd scrolled up to read or reply to something older. Replies from up the thread land you back at the newest message instead of leaving you stranded where you were reading.
+๐Ÿค– Sending a message now always drops you to the bottom of the conversation, so your message is right there in view โ€” even if you'd scrolled up to read or reply to something older. Replies from up the thread land you back at the newest message instead of leaving you stranded where you were reading.
diff --git a/changelog/2026-07-05-server-rail-images.md b/changelog/2026-07-05-server-rail-images.md
index 4182248..87b943e 100644
--- a/changelog/2026-07-05-server-rail-images.md
+++ b/changelog/2026-07-05-server-rail-images.md
@@ -1 +1 @@
-The server switcher now shows each server's photo when one is set, instead of just its coloured initials โ€” in the Mac app's rail and in the iOS server drawer (and on the iOS server button).
+๐Ÿค– The server switcher now shows each server's photo when one is set, instead of just its coloured initials โ€” in the Mac app's rail and in the iOS server drawer (and on the iOS server button).
diff --git a/changelog/2026-07-05-todo-completed-section.md b/changelog/2026-07-05-todo-completed-section.md
index 1cc9421..afeb551 100644
--- a/changelog/2026-07-05-todo-completed-section.md
+++ b/changelog/2026-07-05-todo-completed-section.md
@@ -1 +1 @@
-Checked-off to-dos no longer clutter your list. When you complete one it lingers for a few seconds โ€” struck through, with a little countdown ring โ€” so you can tap to undo if it was a slip. Then it tucks itself away into a โ€œCompletedโ€ section at the bottom, which you can expand any time to review or reopen past to-dos.
+๐Ÿค– Checked-off to-dos no longer clutter your list. When you complete one it lingers for a few seconds โ€” struck through, with a little countdown ring โ€” so you can tap to undo if it was a slip. Then it tucks itself away into a โ€œCompletedโ€ section at the bottom, which you can expand any time to review or reopen past to-dos.
diff --git a/changelog/2026-07-05-todo-tap-and-newest.md b/changelog/2026-07-05-todo-tap-and-newest.md
index 1256a05..5409455 100644
--- a/changelog/2026-07-05-todo-tap-and-newest.md
+++ b/changelog/2026-07-05-todo-tap-and-newest.md
@@ -1 +1 @@
-To-do got quicker: tap anywhere on a to-do to check it off (or tap again to reopen) โ€” no more aiming for the little circle. New to-dos now land at the top of the list.
+๐Ÿค– To-do got quicker: tap anywhere on a to-do to check it off (or tap again to reopen) โ€” no more aiming for the little circle. New to-dos now land at the top of the list.
diff --git a/changelog/2026-07-05-video-attachments.md b/changelog/2026-07-05-video-attachments.md
index 8365bb2..e107895 100644
--- a/changelog/2026-07-05-video-attachments.md
+++ b/changelog/2026-07-05-video-attachments.md
@@ -1,4 +1,4 @@
-You can now share videos in a chat, just like photos. Pick or drop a clip and it
+๐Ÿค– You can now share videos in a chat, just like photos. Pick or drop a clip and it
sends with a still preview and a play button; tap it and it plays full-screen (a
ring shows the download as it loads). Like everything else here, videos are
encrypted end-to-end: the server only ever holds scrambled bytes, so nobody but
diff --git a/deploy/README.md b/deploy/README.md
index f3e19cd..d74a9fa 100644
--- a/deploy/README.md
+++ b/deploy/README.md
@@ -1,4 +1,4 @@
-# Single-machine bootstrap
+# ๐Ÿค– Single-machine bootstrap
Running the messenger behind the `lchat` router on one box (see
`docs/instance-router.md`). The Go side is a single static binary โ€” no runtime.
diff --git a/docs/bots.md b/docs/bots.md
index 1c4de6c..4c2a7f0 100644
--- a/docs/bots.md
+++ b/docs/bots.md
@@ -1,4 +1,4 @@
-# Bots (agents) โ€” design
+# ๐Ÿค– Bots (agents) โ€” design
Status: **the sidecar exists and runs** (`agent/`, deployed to the `test` instance);
everything past "What exists today" is proposed direction captured from design
diff --git a/docs/connected-services.md b/docs/connected-services.md
index 9363921..ea1d82a 100644
--- a/docs/connected-services.md
+++ b/docs/connected-services.md
@@ -1,4 +1,4 @@
-# Connecting third-party services (`/register`, and friends)
+# ๐Ÿค– Connecting third-party services (`/register`, and friends)
Status: **prototype shipping.** A connect broker is live at
`connect.elevenmessenger.com` and `test-bots.luan.chat` is wired to it (branch
diff --git a/docs/cross-instance-relay.md b/docs/cross-instance-relay.md
index 6dff11a..4283e25 100644
--- a/docs/cross-instance-relay.md
+++ b/docs/cross-instance-relay.md
@@ -1,4 +1,4 @@
-# Cross-instance relay โ€” chatting across the trust boundary
+# ๐Ÿค– Cross-instance relay โ€” chatting across the trust boundary
Status: **proposal / for discussion** (no code). This is a design sketch, not a
commitment. It builds on `docs/threads-and-dms.md` (user keypairs, per-thread
diff --git a/docs/instance-contexts.md b/docs/instance-contexts.md
index ee9622a..4c214ac 100644
--- a/docs/instance-contexts.md
+++ b/docs/instance-contexts.md
@@ -1,4 +1,4 @@
-# Instance contexts โ€” one engine, different social defaults
+# ๐Ÿค– Instance contexts โ€” one engine, different social defaults
Status: **design** (not built). Builds on `docs/threads-and-dms.md` and
`docs/invite-redesign.md`. Nothing here weakens the E2EE invariant: the server
diff --git a/docs/instance-migration.md b/docs/instance-migration.md
index 394afc1..f922f1e 100644
--- a/docs/instance-migration.md
+++ b/docs/instance-migration.md
@@ -1,4 +1,4 @@
-# Migrating an instance from one server to another
+# ๐Ÿค– Migrating an instance from one server to another
Status: **procedure** (validated once in practice). Moving a running messenger
instance to a new box is **data movement + a DNS flip**, done so it's reversible:
diff --git a/docs/instance-router.md b/docs/instance-router.md
index f02f84a..62dface 100644
--- a/docs/instance-router.md
+++ b/docs/instance-router.md
@@ -1,4 +1,4 @@
-# The instance router โ€” a single-machine bootstrap
+# ๐Ÿค– The instance router โ€” a single-machine bootstrap
Status: **proposal for discussion** (no code yet). This is the design note; when
it ships the code becomes the source of truth.
diff --git a/docs/invite-redesign.md b/docs/invite-redesign.md
index 583fc51..4a8689c 100644
--- a/docs/invite-redesign.md
+++ b/docs/invite-redesign.md
@@ -1,4 +1,4 @@
-# Invite redesign โ€” short links, server-blind key delivery
+# ๐Ÿค– Invite redesign โ€” short links, server-blind key delivery
Status: Phase 1 (link + QR). Phase 2 (spoken word-code via PAKE) is parked.
diff --git a/docs/onboarding-and-home-server.md b/docs/onboarding-and-home-server.md
index a958cea..f2aee9e 100644
--- a/docs/onboarding-and-home-server.md
+++ b/docs/onboarding-and-home-server.md
@@ -1,4 +1,4 @@
-# Onboarding & the home server โ€” design
+# ๐Ÿค– Onboarding & the home server โ€” design
Status: **proposed** โ€” captured from design discussion 2026-07-03, nothing built.
This doc is the single place for where we landed. Builds on
diff --git a/docs/push-relay.md b/docs/push-relay.md
index 37c0f6b..6c1785b 100644
--- a/docs/push-relay.md
+++ b/docs/push-relay.md
@@ -1,4 +1,4 @@
-# The push relay โ€” sharing APNs without sharing the signing key
+# ๐Ÿค– The push relay โ€” sharing APNs without sharing the signing key
Status: **shipped** (`push/`, deployed as `push.elevenmessenger.com`). This is
the design note; the code is the source of truth.
diff --git a/docs/threads-and-dms.md b/docs/threads-and-dms.md
index ffe7130..cca0880 100644
--- a/docs/threads-and-dms.md
+++ b/docs/threads-and-dms.md
@@ -1,4 +1,4 @@
-# Threads & DMs โ€” multiple conversations per instance
+# ๐Ÿค– Threads & DMs โ€” multiple conversations per instance
Status: **in progress** (branch `threads-and-dms`, testing on `test`). This builds
on `docs/invite-redesign.md` (users, device tokens, server-blind key delivery).
diff --git a/home/README.md b/home/README.md
index fac2ba8..ec21eb2 100644
--- a/home/README.md
+++ b/home/README.md
@@ -1,4 +1,4 @@
-# The home server
+# ๐Ÿค– The home server
A tiny, anonymous, content-blind, passkey-gated blob store โ€” the optional
backup half of the onboarding design
diff --git a/ios/README.md b/ios/README.md
index 4c062b1..47589c8 100644
--- a/ios/README.md
+++ b/ios/README.md
@@ -1,4 +1,4 @@
-# lchat โ€” iOS & macOS client
+# ๐Ÿค– lchat โ€” iOS & macOS client
A native SwiftUI client for [lchat](../README.md), running on **iPhone/iPad** and
on **macOS via Mac Catalyst** (same target, same code). Same end-to-end
diff --git a/web/static/apps/README.md b/web/static/apps/README.md
index 892e068..908aaff 100644
--- a/web/static/apps/README.md
+++ b/web/static/apps/README.md
@@ -1,4 +1,4 @@
-# Building a mini-app
+# ๐Ÿค– Building a mini-app
A **mini-app** is a small client-side program that lives alongside chats โ€” a
to-do list, a poll, reminders. This guide is written for both humans and LLMs: