Repository navigation
the app is called conch, and does not wear a shell - #309
Merged
Merged
Conversation
Tyler: "probably time to remove the emoji from the app names too." Both bundles were already plain — `CFBundleDisplayName` is `conch` on the Mac and the phone — and iOS had already swapped its 🐚 for the real icon, with the reason recorded in PairingView: the emoji was "a different shell from the one on the home screen they just tapped — the app introducing itself as something other than the thing they opened". The terminal was the last surface still wearing one, in six places: the dashboard header, the CLI banner, the setup banner, the version banner, the first-run DO THIS FIRST line, and the README title. Three existing guards pinned the old chrome and are repointed here. Their claims were never about the glyph: status.test and panel.test assert the dashboard names itself, and setup.test asserts the already-open-session fix comes FIRST. NOT touched, deliberately: several tests carry a 🐚 as fixture data because it is a four-byte character, and they exist to prove a frame split mid-character still decodes (records-store, control-framing, mcp, tts-worker). Deleting those would quietly remove the thing under test. A guard now asserts they keep it. Still inconsistent, and left for its own slice: the terminal says `⭐ needs review` (panel.ts, status.ts) where both apps now say a green check, since #302. One fleet, two vocabularies — but that is a status glyph, not a name. Verified: bun test 2341/0, tsc clean. Seven mutations, seven killed — including one that deletes the header's NAME rather than its glyph, which is the way a change like this actually goes wrong. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SfEX6bfwCGXtThk1JRNmsE
stupart
added a commit
that referenced
this pull request
Sep 17, 2026
) Tyler circled it on his phone: a shell still beside the word "conch" in the ledger header, after #309 had supposedly taken the emoji off every surface that names the app. #309 removed the literal 🐚. Both apps wrote it as `Text("\u{1F41A}")` — the Mac's title strip and the phone's toolbar. A grep for the character cannot see a code point, so the sweep passed and the emoji shipped. The guard written at the time had the same blind spot: `not.toContain("🐚")` is satisfied trivially by an escape. A sweep for one spelling of a thing is not a sweep for the thing. The guard now checks the CODE POINT across all four surfaces — no source writes it in prose, so that is safe everywhere — and the literal character everywhere except PairingView, whose comment ("The real icon, not the 🐚 emoji it replaced") records why that screen dropped the emoji. Deleting the comment to satisfy a sweep would delete the reason. Both comments arguing FOR the shell went with it. One claimed "Same wordmark, same mark, wherever you look at conch" — which is now the opposite of what the code does, and a comment left arguing against its own code is how the `--shRaised` note misled this session for an hour. Kept on purpose: `Image("ConchMark")` on the pairing screen and `ConchMark.statusImage` in the menu bar. Those are the drawn icon, not an emoji, and the menu bar has nothing else to draw. Both are guarded. Verified: bun test 2357/0, tsc clean, swift test 138/0, both apps build. Four mutations, four killed — the escaped shell returning to each header, the wordmark being deleted along with the glyph, and the pairing screen losing its real mark. Claude-Session: https://claude.ai/code/session_01SfEX6bfwCGXtThk1JRNmsE Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both bundles were already plain (
CFBundleDisplayName=conchon Mac and iOS), and iOS had already swapped its 🐚 for the real icon — with the reason recorded inPairingView: the emoji was "a different shell from the one on the home screen they just tapped — the app introducing itself as something other than the thing they opened."The terminal was the last surface wearing one, in six places:
panel.ts:869cli.ts:82install.ts:271install.ts:784conch doctor)install.ts:215README.md:1,:204Guards
Three existing guards pinned the old chrome and are repointed — none of their claims was ever about the glyph.
status.test/panel.testassert the dashboard names itself;setup.testasserts the already-open-session fix comes first.Deliberately kept
Several tests carry a 🐚 as fixture data, because it's a four-byte character and they exist to prove a frame split mid-character still decodes (
records-store,control-framing,mcp,tts-worker). Removing those would quietly delete the thing under test — so a new guard asserts they keep it.Still inconsistent, next slice
The terminal says
⭐ needs reviewwhere both apps now show a green check (since #302). One fleet, two vocabularies — but that's a status glyph, not a name, so it isn't bundled here.Verified:
bun test2341/0 ·tscclean · 7 mutations, 7 killed — including one that deletes the header's name rather than its glyph, which is how a change like this actually goes wrong.🤖 Generated with Claude Code
https://claude.ai/code/session_01SfEX6bfwCGXtThk1JRNmsE