Polish repeat-campaign rule: post-time window, attribution, logs (#87) #38
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/jev_antispam_bot!38
Loading…
Reference in a new issue
No description provided.
Delete branch "ticket-87-campaign-polish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up polish for the #81 repeat-campaign rule (agentboard #87). Laya model, the 0.80 gate and option-B semantics are unchanged.
ctx.msg.date), not processing time. An edit keeps the copy's original time and its handled state, so an edit of an already-attempted copy is never retried. Memory eviction still uses when a copy was seen, so a delayed backlog can't evict copies early or revive old ones.source: "cache"only for the current copy when it was a cache hit. Earlier campaign copies arejev. Thespam_deleted.rulefield is nowrepeat_campaignwhen the campaign widened the deletion, otherwisecacheormodel.repeat_campaign_detected.copyCountlogs the campaign size (all copies in the window), not just the copies deleted now.spamCache.seednow runs outside the classifier try block. A failure logsspam_cache_seed_failedand never becomesclassification_failed.chat_id, the post-time window, never retrying an edited handled copy, and seed failure isolation.bun run checkpasses locally (typecheck + 492 pass / 285 skipped DB/live tests / 0 fail). Three of the new bot tests fail onmain. The chat-separation test is regression coverage.Review follow-ups (Astra, all rounds CLEAN)
repeat_campaign_detectedis logged only when something is pending.