Fix review findings and remove Uncategorized from sidebar

Backend: cache Google access tokens (drop dead access_token_expires_at,
migration 0007), handle MeTube cleared/canceled events by URL, return
email from /auth/status only when authenticated, move Google base URLs
into settings, run container as non-root.

Frontend: include local feed filters in the query key, remove dead
Saved page and unused assets, drop stale CategoryNav props and classes,
send Content-Type only with a body, remove Uncategorized from sidebar.
This commit is contained in:
vrubelroman 2026-09-17 17:22:22 +00:00
parent 6c704cac97
commit fde9a439df
25 changed files with 420 additions and 174 deletions

View file

@ -0,0 +1,29 @@
"""drop access_token_expires_at
Revision ID: 0007_drop_access_expiry
Revises: 0006_channel_sub_id
Create Date: 2026-09-16
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
revision: str = "0007_drop_access_expiry"
down_revision: Union[str, None] = "0006_channel_sub_id"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Dead column: access tokens are now cached in-process (google_oauth.py)
# with their own expiry, so this was written but never read.
op.drop_column("oauth_credentials", "access_token_expires_at")
def downgrade() -> None:
op.add_column(
"oauth_credentials",
sa.Column("access_token_expires_at", sa.DateTime(timezone=True), nullable=True),
)