What's wrong
PDChat.razor.css (around line 1169) implements the unread-tab marker described in MS-25788/issue #112 like this:
/* The unread marker is what makes "ask, switch away, come back" work: a reply arriving for a tab the
user is not reading marks it rather than stealing focus. Rendered as a leading dot via ::before so
that it needs no extra element inside PDTabSet's own tab markup. */
.pdchat-conversation-main ::deep .pdtabset-tab.pdchat-conversation-tab-unread::before {
content: "CF";
margin-right: 4px;
font-size: 0.625rem;
line-height: 1;
color: var(--pd-chat-info-border, #0078d4);
}
The comment states this should render as "a leading dot", but content: "CF"; is a literal two-character string, not a Unicode escape for a dot/circle glyph. In the browser this renders as the visible text "CF" immediately before the tab title, rather than a small coloured dot.
Likely intent: \25CF is the CSS Unicode escape for ● (BLACK CIRCLE, U+25CF), or \2022 for • (BULLET, U+2022). The current value looks like the leading backslash-escape prefix was dropped, leaving the literal characters CF (or 2022's trailing digits) behind as plain text.
How it was found
Found live on the public demo (https://panoramicdata.github.io/PanoramicData.Blazor/pdchat) while testing MS-25788 (Jira) — a reply arriving on a background conversation tab correctly marks that tab unread (the underlying tracking logic in PDChat.razor.cs's OnConversationMessageReceived is correct and unaffected), but the visible marker is the literal text "CF" rather than a dot/icon.
Expected
content: should be a proper CSS content value for a dot/bullet glyph, e.g.:
content: "\25CF"; /* ● */
or similar, matching the "leading dot" description in the adjacent comment.
Repro
- Open the demo, maximise the chat to full-screen.
- Open a second conversation from the sidebar as its own tab.
- With that second tab selected, send a message, then switch to the first tab.
- Wait for the simulated reply — the second tab should show a dot marker but instead shows the literal text "CF" before its title.
Cosmetic only — the underlying unread-state tracking (mark without stealing focus, clears on selection) works correctly.
What's wrong
PDChat.razor.css(around line 1169) implements the unread-tab marker described in MS-25788/issue #112 like this:The comment states this should render as "a leading dot", but
content: "CF";is a literal two-character string, not a Unicode escape for a dot/circle glyph. In the browser this renders as the visible text "CF" immediately before the tab title, rather than a small coloured dot.Likely intent:
\25CFis the CSS Unicode escape for ● (BLACK CIRCLE, U+25CF), or\2022for • (BULLET, U+2022). The current value looks like the leading backslash-escape prefix was dropped, leaving the literal charactersCF(or2022's trailing digits) behind as plain text.How it was found
Found live on the public demo (https://panoramicdata.github.io/PanoramicData.Blazor/pdchat) while testing MS-25788 (Jira) — a reply arriving on a background conversation tab correctly marks that tab unread (the underlying tracking logic in
PDChat.razor.cs'sOnConversationMessageReceivedis correct and unaffected), but the visible marker is the literal text "CF" rather than a dot/icon.Expected
content:should be a proper CSS content value for a dot/bullet glyph, e.g.:or similar, matching the "leading dot" description in the adjacent comment.
Repro
Cosmetic only — the underlying unread-state tracking (mark without stealing focus, clears on selection) works correctly.