ChatSpamRadar 1.0.10
What's new
ChatSpamRadar (CSR) Version 1.0.10 Changelog
New Features & Enhancements
New "Hide Message" Rule Action: Rules can now hide a single message without judging the person who sent it. Previously every action that removed a line from chat also condemned the sender: Block put them on your Blocklist permanently and Quarantine put them in the Monitor list, while Ignore only suppressed the alert and still showed the message. There was nothing in between. Hide fills that gap, it removes that one line and does nothing else: no alert, no toast, no sound, no Alerts lead, no Blocklist or Monitor entry, and nothing written to your saved data. Use it for chat you simply don't want to read, "LF Crafter", boost adverts, item-link chatter, from people who aren't spamming and don't deserve a permanent block.
Hide Never Touches Your Whispers, and Never Silences a Friend Privately: Hide is deliberately the narrowest action in the addon, so it is limited by channel. It never applies to whispers at all, a whisper is addressed to you personally, and no keyword rule is worth silently eating a real conversation. For friends, Battle.net contacts and VIPs it applies only in the public community channels (Trade, Services, General, LookingForGroup and any custom channel), so a protected contact's /say and /yell always reach you. This mirrors the channel-type carve-out introduced in 1.0.08, so it behaves identically in every game language. Where a Hide rule is out of scope the message is simply shown, it is never converted into an alert, which would invert the point of the action.
Hidden Messages No Longer Build Smart Shield Strikes: A message caught by a Hide rule is now exempt from Smart Shield's duplicate-message tracking. Without this, someone reposting the same hidden line every few minutes, a crafter advertising in Trade, for example, would quietly accumulate strikes and end up Quarantined and Silenced as though they were a spammer, a permanent-feeling consequence you never chose and would never have seen happen, because the messages were hidden. The exemption is per message, not per player: any other line that same person posts is still scanned and tracked exactly as before, and an explicit Block or Quarantine rule matching the same message still wins and still records them.
Rule Precedence, Where Hide Sits: The ladder is now Block → Quarantine → Hide → Ignore → Alert. Block and Quarantine still outrank Hide, so genuine spam is still blocklisted or monitored even if a Hide rule also matches it. Hide outranks Ignore and Alert, so a Hide rule will suppress an alert you would otherwise have received on the same line.
"Hide" Added to the Guild, Community and Item Link Filters: The three link dropdowns in the Rules tab footer now read Enabled / Ignored / Hide / Quarantine / Blocked. You can make guild-recruitment or community-invite links disappear from chat without blocklisting every recruiter who posts one, which previously was the only way to stop seeing them. The same whisper and protected-contact scoping applies.
See Exactly What Hide Is Catching: Hide leaves no permanent record anywhere by design, so two non-persistent traces exist to stop an over-broad rule from silently eating your chat. A dim
[HIDE]entry appears in the Live Feed each time a rule fires, and the new/csr hiddencommand prints the last 50 messages hidden this session with the time, the sender's class-coloured name, and which keyword was responsible. Neither is saved to disk; both clear on reload. If a rule like a barelfis quietly removing half of Trade chat, this is how you find it.Hide Rules Import, Export and Share Like Any Other Rule: Hide is a first-class action in the rules string format, so it survives Import/Export and the per-rule Share button. Rule strings from older versions are unaffected.
Sound Column Locked on Hide Rules: Selecting Hide greys out the Sound dropdown and its preview button and forces the sound to None. An action whose entire purpose is to suppress something you never want to see should not be able to play an alert noise at you. The engine also plays no sound on a Hide verdict regardless of what a rule stores, so a Hide rule imported with a stale sound attached stays silent.
Bug Fixes & Technical Stability
Rule Actions Now Display in Your Language in the "Why Is This Here?" Panel: The Explain panel's rule breakdown, its "Landed in" line, and its protected-sender downgrade notice were printing action names as raw English, "Block", "Quarantine", regardless of client language. They now resolve through the same translated labels the Rules list and the Action dropdown use, so all three surfaces can no longer disagree about what an action is called.
One Shared Rule Matcher Instead of Three Copies: The keyword-matching logic (word-boundary, contains, symbol and CJK handling) existed as three separate, hand-maintained copies across the live evaluator and the pre-checks, which is a standing risk that one path silently starts judging a rule differently from another. They are now a single shared function. Behaviour was verified unchanged against the previous version across 100,864 comparisons covering every keyword type, match type, action, link state and protected/silenced combination.
Known Behaviour, Hidden Lines and Chat History Replay: At login and
/reload, some chat addons repaint saved chat history directly into the frame. Blocked lines are swept out of that replay; hidden lines are not, so a Hide-matched message can briefly reappear in replayed history. This is intentional: the sweep only sees rendered text with no sender, channel or contact status attached, so extending it to Hide could delete a friend's replayed whisper, exactly the outcome the whisper exemption exists to prevent. Live chat is unaffected.
This mod has no additional files

