# 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.