Skip to content

feat(history): title boosted payments and link them to the boosted message - #1135

Merged
bmc08gt merged 3 commits into
mainfrom
feat/boosted-reaction-history
Oct 26, 2026
Merged

bmc08gt merged 3 commits into
mainfrom
feat/boosted-reaction-history

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Payments that boost a reaction read as plain "Sent to" / "Received from" rows in history once the app reloads from its local database, because the boosted reaction was only held in memory. This persists it and uses it for the row title and the detail screen.

Persistence

  • New side table boostedReaction (id PK -> activity.id, conversationID, messageID, emoji), one row per boosted payment, deleted with its activity.
  • getActivities / getRecentActivities LEFT JOIN it and makeActivity reads it into Activity.boostedReaction. A re-sync of an activity replaces its boost row, so a boost the server stops reporting is removed.
  • Database.schemaVersion 56 -> 57. The notification service extension reads the same constant, so one bump covers both.

Row titles

A boost wins over the tip/send wording.

Case Title
Sent, counterparty resolved Boosted 🔥 for Sally
Received, counterparty resolved Boost 🔥 from Sally
Sent, split boost (no counterparty), chat known locally Boosted 🔥 in Design Team
Sent, no name Boosted 🔥
Received, no name Boost 🔥 received

An unresolved name shows the no-name title rather than the server's. The split-boost chat name comes from the local conversation store by conversationID; nothing is fetched.

Detail screen

A View Message button shows whenever a boost is set, including split boosts that have no counterparty. It opens the message through DeepLinkAction.routeChat (now internal instead of private), so an unsynced chat is hydrated first and a private group the viewer is not in lands on its profile. A boost takes the button slot over "View in Chat" / "View Profile".

Header

The name stays the large heading. A boost puts one line under it that carries the emoji and, for a stored group, the chat; it wins over "You tipped". The line wraps to two lines, then truncates at the tail.

Case Heading Under it
Sent, in a stored group Grampa You boosted 🔥 in Grampa's Photo Community
Sent, in a DM or a chat not stored Sally You boosted 🔥
Received, in a stored group Sally Boost 🔥 received in Design Team
Received, in a DM or a chat not stored Sally Boost 🔥 received
Split boost, chat stored Design Team You boosted 🔥
Split boost, chat not stored You boosted 🔥 none
Counterparty unresolved You boosted 🔥, plus " in {chat}" for a stored group none

The chat's name and kind come from the local conversation store by conversation id; nothing is fetched. The receipt card is unchanged.

Out of scope: avatar badge, push text.

Stale target: a View Message tap whose chat cannot be found logs and does nothing; no new handling was added.

…ssage

Persist the boosted reaction in a side table (schemaVersion 57) so a boost
still reads as one after a cold load. Rows read 'Boosted 🔥 for Sally',
'Boost 🔥 from Sally', 'Boosted 🔥 in Chat' for a split boost, with no-name
fallbacks. The detail screen gets a View Message button that opens the
boosted message through the deep link's hydration path.
@bmc08gt bmc08gt self-assigned this Oct 26, 2026
A boost keeps the name as the large heading and puts 'You boosted' or
'Boost received' under it, winning over 'You tipped'. A split boost is
headed by the stored chat's name, or by the boost line alone when the chat
is not stored. The receipt card gains Reaction and Chat rows after Date,
read from the persisted boost and the local chat store, with no fetch.
The line under the heading now reads 'You boosted 🔥 in {chat}' or 'Boost 🔥
received in {chat}' for a stored group, and drops 'in {chat}' for a DM or a
chat not in the local store. A split boost keeps the chat as its heading with
no 'in'. The Reaction and Chat receipt rows are removed.
@bmc08gt
bmc08gt marked this pull request as ready for review October 26, 2026 18:48
@bmc08gt
bmc08gt merged commit 28622a8 into main Oct 26, 2026
5 checks passed
@bmc08gt
bmc08gt deleted the feat/boosted-reaction-history branch October 26, 2026 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant