fix: type User.username as str via Mapped-style column

mypy 2.4 (native parser by default) flags _jwt_username_var.set(user.username)
in agent/mcp/__init__.py: with the legacy `username = Column(String)`
declaration, instance access is typed Column[str], not str. Migrate the
column to the Mapped/mapped_column style already used by token_version and
last_login in the same table, with an explicit nullable=True so the schema
stays identical to the former Column(String) declaration.
This commit is contained in:
YueGuobin 2026-10-17 14:00:23 +08:00
parent 344a342924
commit 9887e3d5d7
No known key found for this signature in database

View File

@ -42,7 +42,9 @@ class User(BaseTable):
__tablename__ = "users"
user_id = Column(GUID, primary_key=True, default=generate_uuid)
username = Column(String, unique=True, index=True)
# Mapped style so type checkers see `str` instead of `Column[str]`; the explicit
# nullable=True keeps the schema identical to the former Column(String) declaration.
username: Mapped[str] = mapped_column(String, unique=True, index=True, nullable=True)
email = Column(String, unique=True, index=True)
full_name = Column(String)
hashed_password = Column(String)