- Shipped
- September 7, 2026 at 3:29 AM UTC
- Author
- Kamo
- Commit
- d00dc9c
Two things, both found by writing the test for the actorName path rather than by reading it. messageType was being read off the body AFTER redaction. redactEventActor fails closed and answers null on a payload it cannot rewrite, and isSystemEvent(null) is false — so a status change whose JSON surprised us would have come back typed as an ordinary comment with no text, which the console draws as a blank row from a member who never said anything. It is now decided from the original body, before anything touches it. The javadoc also claimed an unparseable payload was returned untouched, which is the opposite of what the code does and the opposite of what it should do: a system-event body is exactly the shape that carries actorName, so handing one back unrewritten would print the name the method exists to withhold, on the one payload strange enough that nobody would look there. The test that found this asserted a case that turns out to be unreachable — a truncated body fails the isSystemEvent sniff first and is treated as a comment. It is replaced by the invariant that is real and worth holding: a member who pastes a JSON snippet into a bug thread, which is a completely ordinary thing to do on a bug report, gets their message back whole. Their identity is still withheld; it is the body that was left alone.