Works through TODO.md from the 2026-09-12 over-engineering audit. Drops the entries.read/flagged/position columns (migrate() removes them from older databases), migrate_opml_children, the legacy interval_mins key, the contrib/ systemd units, test-only Db wrappers, a duplicate token generator, redundant logbuf visitors, unused page state and CSS, and the infer, dirs and tokio-stream dependencies. The icon is served once as /icon.png instead of inlined four times, taking about 94 KB off the two pages. The adoption's subscription half was not dead: it gives a fresh install's first admin the config's feeds. It stays as adopt_catalogue, now tested. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TAC7sLVqfKmY6rsTLXzNgk
2.0 KiB
2.0 KiB
To do
Cut what is no longer needed
From a whole-repo audit for over-engineering on 2026-09-12. Biggest cut first.
- Pre-accounts adoption and the dead
entriescolumns. The copy of the old read state intoentry_stateand theentries.read,flaggedandpositioncolumns are gone. Its other half, subscribing the first admin to the catalogue, was not dead and stays asadopt_catalogue. (src/db.rs,src/main.rs) contrib/systemd units. From before the container; nothing points at them.migrate_opml_children. A one-time move of OPML children out ofconfig.tomlthat has run. Delete it and its call. (src/main.rs)- The legacy
interval_minskey. Production usesschedule. Delete the field, the fallback inGeneral::intervaland its test. (src/config.rs) Db::entriesandDb::count_entries. One-line wrappers only the tests call; the tests callentries_inandcount_ininstead. (src/db.rs)web::generate_token. Repeatsauth::new_session_token. Use that. (src/web.rs)- Page leftovers.
globalEvery,S.busy,S.limit,unitOptions'firstLabel,--r,.ep.open, the phone.ep .art, the duplicate phone.fhead.slim{flex-wrap}, the second#sidebar{z-index}, and theon()helper. (web/index.html) logbufvisitors.record_i64,record_u64andrecord_boolrepeat whatVisit's defaults already do throughrecord_debug. (src/logbuf.rs)- The
inferdependency. Its torrent check is thed8:announcetest on the next line. - The
dirsdependency.XDG_CONFIG_HOME,XDG_DATA_HOMEandHOMEfromstd::env. - The
tokio-streamdependency.futures_util::stream::unfoldover the broadcast receiver. - The icon inlined four times. About 94 KB of base64 across both pages; serve it once as
/icon.pngfrominclude_bytes!, open without signing in like/login.
After these: cargo test, node tests/page-smoke.js, npx playwright test.