magpie/app/services
pyr0ball a2620570fa feat(dupe-guard): add max_posts per-sub cap to prevent one-shot intro campaigns from re-posting
Adds max_posts INTEGER to campaign_subs (NULL = unlimited/evergreen).
Adds successful_post_count() query counting lifetime success records.
poster.py checks max_posts before the 7-day rolling dupe guard.

Root cause: campaign 2 fired 8 days after the last post (just outside the
7-day window), allowing a duplicate r/opensource pitch. Fix: set max_posts=1
on intro campaigns so the lifetime cap fires regardless of window.
2026-05-06 08:52:21 -07:00
..
lemmy feat(#7,#10): signal crawler -- Reddit + Lemmy community monitoring 2026-04-22 11:00:14 -07:00
platforms fix: replace Playwright post() with httpx legacy API, fix session_file Path coercion and comment URL check 2026-04-27 14:25:38 -07:00
reddit fix: replace Playwright post() with httpx legacy API, fix session_file Path coercion and comment URL check 2026-04-27 14:25:38 -07:00
__init__.py feat: scaffold Magpie — campaign scheduler + social posting platform 2026-04-21 16:51:33 -07:00
directus.py feat: add Directus blog post publisher and MCP tool 2026-04-26 14:14:35 -07:00
poster.py feat(dupe-guard): add max_posts per-sub cap to prevent one-shot intro campaigns from re-posting 2026-05-06 08:52:21 -07:00
scheduler.py feat(#7,#10): signal crawler -- Reddit + Lemmy community monitoring 2026-04-22 11:00:14 -07:00
scraper.py feat(#7,#10): signal crawler -- Reddit + Lemmy community monitoring 2026-04-22 11:00:14 -07:00