Repository navigation
mac, ios: the deliverable card is the work, not a card about it - #302
Merged
Merged
Conversation
Tyler: "just like an image or preview of the work with little or no text …
aspect ration can change to fit deliverable better. also remove the weird star
thing for deliverables and other unecessiary details that diverge from your
mockups".
The card had grown four labels around the picture — an uppercase "DELIVERABLE"
eyebrow in the review colour, the summary, the file path and an expand arrow —
inside a ring tinted with the review colour. The lab's `.dc` is none of that:
`box-shadow:inset 0 0 0 1px var(--hair2)`, a thumbnail, and one line of words.
What is left here is the preview, a plain hairline, and the summary — the one
line that stays, because without it a picture of a website is a picture of a
website and the card never says which one this session filed.
The preview now keeps the deliverable's OWN aspect ratio rather than a
letterboxed 260 pt slot, so a wide screenshot and a tall capture are different
shapes instead of one shape with half of it empty. Capped at 420 so a very tall
capture cannot run away with the conversation's scroller.
The star was never in the mockups. The lab draws this mark as `ic('check')` on
`--ready` (line 895), §5's state language calls it "`ready` green circle with
✓", and `star` appears in the lab exactly once — as the icon for the `none`
type, "No link". It was in five places on the Mac and two on the phone. All
seven are the check now, including the legend that explains the ledger's
glyphs and would otherwise describe a mark the app no longer draws.
Deliberately NOT here: the phone's review card itself. Only its mark moves —
that card is a different, simpler surface, and redesigning it was not what was
asked for.
Gated: bun test 2311/0, tsc clean, swift test 138/0, Mac and iOS both build
(CI builds neither). Nine mutations across the card's chrome, the aspect ratio
and all seven marks; nine killed.
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 16, 2026
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. Claude-Session: https://claude.ai/code/session_01SfEX6bfwCGXtThk1JRNmsE Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
stupart
added a commit
that referenced
this pull request
Sep 16, 2026
#302 moved seven sites in the Mac and iOS apps from a star to a green check, after Tyler: "review ready already has big green check i dont think we also need to bold it." The two terminal surfaces were not in that slice, so the same session showed a star in tmux and a check in both apps. Five sites: the compact header's glyph, `fullStatus`, the panel's REVIEW_GLYPH, the inline deliverable line above a reply, and the comment describing the order. Green because that is what the apps draw — `ConchColor.ready` is #30B35A, and the lab's `--ready` is the same. The star's `\x1b[33m` was yellow. Fifteen assertions pinned the star across status.test and panel.test. Every one of their claims is "a review-ready row is marked"; the glyph was incidental, so the literals moved and the claims did not. NOT changed, and reported instead: the terminal contradicts ITSELF about the waiting colour. `status.ts` paints it yellow in the compact header (guarded, with a comment: "waiting is now yellow — a finished turn is sitting on you") and green in `fullStatus`; `panel.ts` paints it green. That is three sites and a state- language decision, not a review fix, so it stays Tyler's call. Verified: bun test 2345/0, tsc clean, swift test 138/0. Seven mutations, seven killed — including two that matter more than the others. Deleting snippet.ts's stripping range killed the speech test, so that test measures behaviour rather than passing vacuously. Drifting the Mac app back to `star.fill` killed the cross-surface test, so the apps are held, not merely described. The audible failure mode was checked by running it, not by reading the regex: `speakable("✓ needs review")` returns "needs review". Nothing reads the glyph into your ear. 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.
The card
statusReview.opacity(0.35)hairlineStrong— the lab's--hair2raisedThe lab's
.dcisbox-shadow:inset 0 0 0 1px var(--hair2)holding a thumbnail and one line of words — no tint, no fill, no eyebrow. The app had drifted into being a card about a deliverable instead of a look at one.The star
Never in the mockups. The lab renders this mark as
ic('check')on--ready(line 895); §5's state language says "readygreen circle with ✓"; andstarappears in the lab exactly once, as the icon for thenonetype — "No link". So a star on every deliverable said "special" where the type should have said website, document or image.Seven sites, all now the check: the conversation's review row, the ledger mark, the Deliverable pane caption, the keyboard legend, the card's fallback symbol, and both phone sites (
StatusMark.symbolandReviewCard). The legend moves with them or it explains a glyph the app no longer draws.Not in this PR: the phone's review card layout. Only its mark changed — that surface is a different, simpler thing and wasn't what was pointed at.
Gate:
bun test2311/0 ·tscclean ·swift test138/0 · Mac + iOS both build (CI builds neither) · 9 mutations, 9 killed.🤖 Generated with Claude Code
https://claude.ai/code/session_01SfEX6bfwCGXtThk1JRNmsE