Pending fades the whole row to 0.55 opacity (app.css:1352-1354). .message-row.pending .upload-meter { opacity: 1 } (app.css:1417-1419) cannot undo a parent's opacity, so the upload progress ring is dimmed too, contrary to its comment.
A failed message turns its body pink (app.css:1356-1358) and offers "Failed to send — retry" (MessageRow.tsx:1017-1026), but there is no way to delete/discard it - no such method in state/store.ts. It stays until the app restarts.
Discord greys only the text of a pending message and offers Retry / Delete on a failed one.
Fix: dim only the text/body of pending rows; add store.discardFailed(clientId) and a Delete action beside Retry.
Part of the v1.0 UI pass.
- Pending fades the whole row to 0.55 opacity (app.css:1352-1354). `.message-row.pending .upload-meter { opacity: 1 }` (app.css:1417-1419) cannot undo a parent's opacity, so the upload progress ring is dimmed too, contrary to its comment.
- A failed message turns its body pink (app.css:1356-1358) and offers "Failed to send — retry" (MessageRow.tsx:1017-1026), but there is no way to delete/discard it - no such method in `state/store.ts`. It stays until the app restarts.
Discord greys only the text of a pending message and offers Retry / Delete on a failed one.
**Fix:** dim only the text/body of pending rows; add `store.discardFailed(clientId)` and a Delete action beside Retry.
_Part of the v1.0 UI pass._
Salastil
added this to the v1.0 milestone 2026-10-07 20:42:54 -04:00
Salastil
added the bug label 2026-10-07 20:42:54 -04:00
A message that failed to send, after this change (before, there was only the retry link, and no way to get rid of the line):
Delete sits beside Failed to send - retry and removes the line locally; nothing is sent (store.discardFailed). Checked in the test copy by sending to a conversation that does not exist: the row failed, the button was there, and clicking it removed the row and its text.
A pending message dims only what was said (body, byline, media, reply quote), not the whole row, so the upload progress ring is no longer the faintest thing on it - its own opacity: 1 rule could never undo the parent's.
Finished: [6a82c32](https://git.salastil.com/Salastil/moho/commit/6a82c3261c4c925e17f4a1f57999c96e7ab91c3e).
A message that failed to send, after this change (before, there was only the retry link, and no way to get rid of the line):

- **Delete** sits beside *Failed to send - retry* and removes the line locally; nothing is sent (`store.discardFailed`). Checked in the test copy by sending to a conversation that does not exist: the row failed, the button was there, and clicking it removed the row and its text.
- **A pending message dims only what was said** (body, byline, media, reply quote), not the whole row, so the upload progress ring is no longer the faintest thing on it - its own `opacity: 1` rule could never undo the parent's.
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.
.message-row.pending .upload-meter { opacity: 1 }(app.css:1417-1419) cannot undo a parent's opacity, so the upload progress ring is dimmed too, contrary to its comment.state/store.ts. It stays until the app restarts.Discord greys only the text of a pending message and offers Retry / Delete on a failed one.
Fix: dim only the text/body of pending rows; add
store.discardFailed(clientId)and a Delete action beside Retry.Part of the v1.0 UI pass.
Finished: 6a82c32.
A message that failed to send, after this change (before, there was only the retry link, and no way to get rid of the line):
store.discardFailed). Checked in the test copy by sending to a conversation that does not exist: the row failed, the button was there, and clicking it removed the row and its text.opacity: 1rule could never undo the parent's.