TODO.md: cleared, the database trim and Popular are done

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TAC7sLVqfKmY6rsTLXzNgk
This commit is contained in:
2026-09-12 14:30:10 +00:00
parent 9aae3097e7
commit d4304869b6

26
TODO.md
View File

@@ -1,27 +1 @@
# To do # 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.