diff --git a/TODO.md b/TODO.md index da9c165..2139787 100644 --- a/TODO.md +++ b/TODO.md @@ -1,27 +1 @@ # To do - -## Trim the state database - -From an audit of the database layer and a read-only copy of production on 2026-09-12. The data -itself was clean: no leftover tables or indexes, 47 free pages, one stray `entry_state` row. -Check each against the code before cutting it. - -- [x] **`migrate()`'s add list.** All eight columns arrived in 0.2.0, and 0.5.0 only supports - upgrades from 0.3.0 on. Drop the list and its loop; keep the `retired` drop loop, which a - database coming from 0.4.0 still needs. (`src/db.rs`) -- [x] **`Db::subscribed_feed_ids`.** No callers; its doc says the scanner walks it, and it does not. - (`src/db.rs`) -- [x] **`Db::subscriber_count`.** One caller, which only asks whether it is above zero: - `subscriber_counts()?.contains_key(&id)`. (`src/db.rs`, `src/web.rs`) -- [x] **The `created` columns** on `users`, `subscriptions` and `sessions`. Written on every insert, - never read. Add them to `retired` and drop them from the inserts. (`src/db.rs`) -- [x] **`Managed.orphaned`.** Selected by `managed_feeds()` on every call and never read; - `FeedSummary.orphaned` is what the UI uses. (`src/db.rs`) - -## Popular - -- [x] **Popular lists feeds the way Directory does**: the feeds inside an OPML or a Patreon - creator, never the collection itself. (`src/web.rs`, `web/index.html`) - -After these: `cargo test`, `node tests/page-smoke.js`, `npx playwright test`. Copy `state.db` -aside before deploying: `migrate()` drops columns on the first start.