• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / tg-spam / 25134669663
83%

Build:
DEFAULT BRANCH: master
Ran 29 Apr 2026 09:28PM UTC
Jobs 1
Files 41
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Apr 2026 09:24PM UTC coverage: 83.419% (+0.1%) from 83.275%
25134669663

push

github

web-flow
feat: short-message flood detection for unapproved users (#400)

* docs(claude): add wiring-layers checklist for new config parameters

Codifies the requirement that any new configurable parameter (CLI flag, env
var, or tunable knob) must be wired through CLI/env definition, DB-backed
config, web settings UI, e2e UI test, and README. Recurring source of
partially-broken features when one layer is missed.

* feat: add max-short-msg-count short-message flood detection

Adds an opt-in spam check that bans an unapproved user when their locator
message count minus approved count crosses --max-short-msg-count, and the
current message is short. Closes the gap left by content-based checks for
spammers probing the channel with innocuous one-word messages ("hi",
"hello", "yo") that individually evade similarity, classifier, LLM, and
duplicate detectors.

State is derived from the existing messages table via the
idx_messages_gid_user_id_time index — no new in-memory counter, no cache,
restart-resilient by construction. The check is implemented as an internal
method on Detector (isShortMsgFlood), gated by an outer guard so disabled
mode does no work, and bypasses LLM consensus by design (behavioral signal
not subject to content-based override).

Wired through all required layers per CLAUDE.md: CLI flag and env var
(--max-short-msg-count / MAX_SHORT_MSG_COUNT), DB-backed Settings with
zero-aware semantics, web settings UI form field plus read-only display,
e2e UI round-trip test, and README documentation. Respects training, dry,
and soft-ban modes via the existing pipeline. Disabled by default
(MaxShortMsgCount=0) and incompatible with paranoid mode (validated at
startup).

Related to #399

* docs(plans): max-short-msg-count implementation plan

Captures the design decisions, wiring layers, edge cases, and task
breakdown for the short-message flood detection feature. Filed under
completed/ since the implementation has landed.

Related to #399

* fix: trim README s... (continued)

95 of 97 new or added lines in 5 files covered. (97.94%)

8452 of 10132 relevant lines covered (83.42%)

227.44 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
78.7
1.5% app/storage/locator.go
Jobs
ID Job ID Ran Files Coverage
1 25134669663.1 29 Apr 2026 09:28PM UTC 41
83.42
GitHub Action Run
Source Files on build 25134669663
  • Tree
  • List 41
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 116d28fd on github
  • Prev Build on master (#25123809667)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc