ThreadPanel.tsx:24-25 reads ui.messageMode and ui.relativeTimestamps, but Settings writes display.messageMode / display.relativeTimestamps (settings/SettingsPanel.tsx:467, 478; MessageList.tsx:178-179). Threads therefore always render with the defaults.
Also in the same panel:
every row is passed grouped={false} (line 71), so each reply repeats its avatar and name
the count reads "1 replies" (line 60)
it does not scroll to the newest reply when opened or when one arrives
the service is worked out by splitting the buffer id (line 32) instead of from the account, as MessageList does
Slack and Element thread panes group by author and follow new replies.
Part of the v1.0 UI pass.
`ThreadPanel.tsx:24-25` reads `ui.messageMode` and `ui.relativeTimestamps`, but Settings writes `display.messageMode` / `display.relativeTimestamps` (`settings/SettingsPanel.tsx:467, 478`; `MessageList.tsx:178-179`). Threads therefore always render with the defaults.
Also in the same panel:
- every row is passed `grouped={false}` (line 71), so each reply repeats its avatar and name
- the count reads "1 replies" (line 60)
- it does not scroll to the newest reply when opened or when one arrives
- the service is worked out by splitting the buffer id (line 32) instead of from the account, as `MessageList` does
Slack and Element thread panes group by author and follow new replies.
_Part of the v1.0 UI pass._
Salastil
added this to the v1.0 milestone 2026-10-07 20:42:53 -04:00
Salastil
added the bug label 2026-10-07 20:42:53 -04:00
Before (left) and after (right), a staged thread in the Discord-shaped test guild:
Replies from one author group (the second line under Clarence is a continuation, no repeated face and name), as in the room; the thread's first message always stands alone. The repeated "in thread" quote above every reply is gone - the panel's title says it.
It reads the room's display settings. It asked for ui.messageMode / ui.relativeTimestamps, which nothing writes, so threads ignored Classic/Bubbles and relative times; they now read display.*, the same keys the room reads. (The test copy is on the default layout, so the two pictures match there - the fix shows when the setting is changed.)
"1 reply", not "1 replies".
Opens on, and follows, the newest reply (it scrolls to the end when opened and when one arrives).
The service comes from the account, as the room does, instead of splitting the buffer id.
Not done here: the thread's reply box is still the plain text area - using the full composer is #310.
Finished: [33129f9](https://git.salastil.com/Salastil/moho/commit/33129f905603b0230ca93aea0ecfab66cb921f17).
Before (left) and after (right), a staged thread in the Discord-shaped test guild:

- **Replies from one author group** (the second line under Clarence is a continuation, no repeated face and name), as in the room; the thread's first message always stands alone. The repeated "in thread" quote above every reply is gone - the panel's title says it.
- **It reads the room's display settings.** It asked for `ui.messageMode` / `ui.relativeTimestamps`, which nothing writes, so threads ignored Classic/Bubbles and relative times; they now read `display.*`, the same keys the room reads. (The test copy is on the default layout, so the two pictures match there - the fix shows when the setting is changed.)
- **"1 reply"**, not "1 replies".
- **Opens on, and follows, the newest reply** (it scrolls to the end when opened and when one arrives).
- The service comes from the account, as the room does, instead of splitting the buffer id.
Not done here: the thread's reply box is still the plain text area - using the full composer is #310.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
ThreadPanel.tsx:24-25readsui.messageModeandui.relativeTimestamps, but Settings writesdisplay.messageMode/display.relativeTimestamps(settings/SettingsPanel.tsx:467, 478;MessageList.tsx:178-179). Threads therefore always render with the defaults.Also in the same panel:
grouped={false}(line 71), so each reply repeats its avatar and nameMessageListdoesSlack and Element thread panes group by author and follow new replies.
Part of the v1.0 UI pass.
Finished: 33129f9.
Before (left) and after (right), a staged thread in the Discord-shaped test guild:
ui.messageMode/ui.relativeTimestamps, which nothing writes, so threads ignored Classic/Bubbles and relative times; they now readdisplay.*, the same keys the room reads. (The test copy is on the default layout, so the two pictures match there - the fix shows when the setting is changed.)Not done here: the thread's reply box is still the plain text area - using the full composer is #310.