POLLER_UPGRADE_PLAN.md 844 B

Poller Upgrade Plan

Status: Not yet implemented.

Goal

Remove the poller's direct dependency on SQLiteClusterStore._conn() and replace it with a public store method.

Current Problem

  • news_mcp/jobs/poller.py:173 clears legacy feed_state rows with with store._conn() as conn:.
  • That couples the refresh loop to a private SQLite implementation detail.
  • Test doubles need to expose _conn().

Proposed Refactor

  1. Add a public clear_legacy_feed_state() method to SQLiteClusterStore.
  2. Move the DELETE FROM feed_state WHERE feed_key LIKE 'newsfeeds:%' logic into that method.
  3. Update poller.py to call the public method.
  4. Adjust tests accordingly.

Rules

  • Keep the change narrow.
  • Do not alter feed-hash or clustering behavior in the same patch.
  • Preserve current legacy-row cleanup behavior exactly.