Repository navigation
[Due for payment 2025-12-19] [$250] chat-Thread header is not showing the exact message sent #71434
Description
Activity
- addedDailyKSv2KSv2BugSomething is broken. Auto assigns a BugZero manager.Something is broken. Auto assigns a BugZero manager.
on Sep 28, 2025 Triggered auto assignment to @trjExpensify (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.Proposal
Please re-state the problem that we are trying to solve in this issue.
Thread header is not showing the exact message sent.
What is the root cause of that problem?
We are parsing from html to text here
App/src/components/DisplayNames/index.tsx
Line 21 in 413fee6
const title = StringUtils.lineBreaksToSpaces(Parser.htmlToText(fullTitle)) || translate('common.hidden'); What changes do you think we should make in order to solve the problem?
We added
parse.htmlAsTestin this PR to remove markdown symbol in report header and report details page- We should create a new props like
shouldParseFullTitleand set the default value astrue
function DisplayNames({ ... shouldParseFullTitle = true, ... }: DisplayNamesProps)- Update
titleto use raw text
const title = StringUtils.lineBreaksToSpaces(shouldParseFullTitle ? Parser.htmlToText(fullTitle) : fullTitle) || translate('common.hidden');- Pass
shouldParseFullTitleas false when we don't need to show html to text
App/src/pages/home/HeaderView.tsx
Lines 289 to 293 in 3a10c20
<DisplayNames fullTitle={title} displayNamesWithTooltips={displayNamesWithTooltips} tooltipEnabled numberOfLines={1} App/src/pages/ReportDetailsPage.tsx
Lines 647 to 651 in 3a10c20
<DisplayNames fullTitle={reportName} displayNamesWithTooltips={displayNamesWithTooltips} tooltipEnabled numberOfLines={isChatRoom && !isChatThread ? 0 : 1} App/src/components/LHNOptionsList/OptionRowLHN.tsx
Lines 259 to 263 in 3a10c20
<DisplayNames accessibilityLabel={translate('accessibilityHints.chatUserDisplayNames')} fullTitle={optionItem.text ?? ''} displayNamesWithTooltips={optionItem.displayNamesWithTooltips ?? []} tooltipEnabled And in
MenuItemcomponent, we should pass it as!shouldRenderAsHTMLApp/src/components/MenuItem.tsx
Lines 597 to 600 in 3a10c20
<DisplayNames fullTitle={title} displayNamesWithTooltips={titleWithTooltips} tooltipEnabled We also need to check
DisplayNamesfile native as wellWhat specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
None
What alternative solutions did you explore? (Optional)
NA
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.
- We should create a new props like
This feels like it was on purpose to strip the HTML tags. Tagging a few people involved from PRs etc linked to help confirm:
#70777 - @bernhardoj @QichenZhu @pecanoro
#59328 - @daledah @s77rt @suneox @iwizniaThis is a bug. It's probably
External.Reacted by Qichen ZhuIf we're stripping HTML tags from report headers and LHN previews per those issues above, can you help me understand why this would be a bug? 🤔
@trjExpensify, the two issues focus on different aspects. #70777 deals with user-typed HTML (displaying as-is), while #59328 deals with HTML generated by the markdown engine (stripping them).
We only strip html tags to unstyle styles text. We still don't want html tags to be rendered though. The user typed
<div>test<div>and we should consider this either as:- Plaintext, in which case we pass it as is
<div>test<div> - Html: in which case we pass it encoded as
<div>test<div>
In both cases the user shall see same text in message, in header
- Plaintext, in which case we pass it as is
- addedExternalAdded to denote the issue can be worked on by a contributorAdded to denote the issue can be worked on by a contributor
on Oct 6, 2025 - changed the title
[-]chat-Thread header is not showing the exact message sent[/-][+][$250] chat-Thread header is not showing the exact message sent[/+]on Oct 6, 2025 40 remaining items
- addedWeeklyKSv2KSv2Awaiting PaymentAuto-added when associated PR is deployed to productionAuto-added when associated PR is deployed to productionand removedWeeklyKSv2KSv2
on Dec 12, 2025 - changed the title
[-][$250] chat-Thread header is not showing the exact message sent[/-][+][Due for payment 2025-12-19] [$250] chat-Thread header is not showing the exact message sent[/+]on Dec 12, 2025 Reviewinglabel has been removed, please complete the "BugZero Checklist".The solution for this issue has been 🚀 deployed to production 🚀 in version 9.2.77-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2025-12-19. 🎊
For reference, here are some details about the assignees on this issue:
- @ZhenjaHorbach requires payment through NewDot Manual Requests
- @nkdengineer requires payment automatic offer (Contributor)
@ZhenjaHorbach @trjExpensify The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]
BugZero Checklist:
-
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: https://github.com/Expensify/App/pull/59328/changes#r2629917805
-
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: NA
-
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal
Test:
- Open App
- Open a chat
- Send a message -
<div>test<div> - Long-press and open the reply thread
- Verify that the thread header must show the exact message sent.
Do we agree 👍 or 👎
-
Bit edge casey for a standalone test, going to forgo it.
Payment summary as follows:
- $250 to @ZhenjaHorbach for the C+ review paid via NewDot
- $250 to @nkdengineer for the PR paid via NewDot
Go ahead and request!
Requested in ND!
$250 approved for @ZhenjaHorbach
@nkdengineer has submitted payment for this report on ND here.
SO: https://stackoverflowteams.com/c/expensify/questions/7582
- Vendor found in VML: True. Status: Active
- Amount requested: $250.00 (Matches the payment summary here: [Due for payment 2025-12-19] [$250] chat-Thread header is not showing the exact message sent #71434 (comment).)
- I, @twisterdotcom am not already the BZ assignee. I have approved this payment.
Zapier Logs
Run ID: 00040eee-880a-aeac-84fc-5105b152fcf4
Metadata
Metadata
Labels
Type
Projects
- StatusShow more project fieldsDone
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: V9.2.19-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail: #70777
Email or phone of affected tester (no customers): slottwo1@gmail.com
Issue reported by: Applause Internal Team
Device used: Redminote 10s android 13 phone
App Component: Chat Report View
Action Performed:
<div>test<div>Expected Result:
Thread header must show the exact message sent.
Actual Result:
Thread header is not showing the exact message sent.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug6957298_1758951562559.Screenrecorder-2025-09-27-11-06-10-467.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @trjExpensify