32 conflict hunks across 21 files. The two sides are the 0.32 feature branch (cards, events, games, Today, the small-web directory, hello links, story take-downs, stickers) and main (the Spanish catalog, attachment padding, the stage 2-B request gate, bridge offers). Neither side is the answer anywhere the conflict is about what the app does. What the resolutions keep, and why: Info.plist and project.yml: BOTH URL types. One claims `flamenet` for contact links, the other `flamenetmessenger` for hello links. Taking either side alone would have stopped the other kind of link opening the app at all. CardScanner: git had already merged the controller to the union, with both the injected `accepts` predicate and the new `onRefused` callback. The call sites now match it. `accepts` is the only gate, because hard-coding `ScannedCode` there would have refused every code the Devices screen scans. The address sheet's default is `ScannedCode.card`, never `ContactCard.decode`, so an older card's `?u=` username is still never trusted (DESIGN 32). E2EInbox: `seedAccountStateFromDeviceIfNeeded()` moved to the factory rather than into the release branch's new `connect()`. It reads this device's own store and never the relay, and the offline launch path passes `connect: false`, which would otherwise show every existing conversation as a request until the relay answered. `deliverRemote` keeps both gates: main's `remoteMailShows` and the release branch's control-traffic cases. E2EEnvelopeRoute: bridgeOffer, rsvp and unpost all three, in the enum, in `all`, and in the shape test. MainTabView and PillTabBar: the extracted `PillTabItem` and `tabItems()` are kept, with the `identifier` field put back and every title through `String(localized:)`. `title` is a plain String, so the release branch's bare literals would have left every tab English in every language. ParentalControlsView: the release branch's fuller footer, written as ONE literal. `Text` localizes a literal and not a `+` chain, so the concatenated form would have taken that footer out of the catalog. Eleven more places take the union with the localized string kept: the attachment and sticker previews in E2EInbox, GroupsSection, BuddyListView, ChatView, ChatViewModel and StoriesFeedView. Also here: 35 spec references renumbered. `a3b05c3` in flamenet-e2e moved anonymous reads and contact links to §8.13 and §8.14 to make room for the push token and the Today file at §8.11 and §8.12, so every reference in this tree to "8.11, anonymous reads" or "8.12, contact links" now pointed at the wrong section. The Today and push references were already right and are untouched. .e2e-ref is pinned to 4b4042f72880758ee2dea7713f7a2cb63fa12f73, the unified spec, which is also what Android pins. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2 lines
41 B
Plaintext
2 lines
41 B
Plaintext
4b4042f72880758ee2dea7713f7a2cb63fa12f73
|