feat: 添加视觉设计语言系统并重构认证页面UI

- 新增 visual_design_language.md 设计规范文档
- 新增 auth 设计 tokens (authBackground, authCard, authInput, feedback 系列等)
- 重构登录/注册/验证码/重置密码页面为新设计系统
- 新增 AuthHeroHeader, AuthSurfaceCard, AuthSection, AuthField, PasswordField 组件
- 重构 AppBanner 和 Toast 支持多类型配置 (info/success/warning/error)
- 后端 AgentScope: 重整 schemas/prompts/tools 作用域, 新增协议文档
- 更新 AGENTS.md 集成视觉设计语言约束
This commit is contained in:
qzl
2026-03-13 14:10:13 +08:00
parent fb3c649db7
commit a10a2db27a
100 changed files with 6333 additions and 4800 deletions
+7 -4
View File
@@ -11,6 +11,7 @@ from core.db.base_repository import BaseRepository
from core.logging import get_logger
from models.friendships import Friendship, FriendshipStatus
from models.inbox_messages import InboxMessage, InboxMessageStatus, InboxMessageType
from schemas.inbox.messages import FriendshipContent
if TYPE_CHECKING:
from sqlalchemy.ext.asyncio import AsyncSession
@@ -80,7 +81,7 @@ class SQLAlchemyFriendshipRepository(BaseRepository[Friendship]):
super().__init__(session, Friendship)
async def create_request(
self, initiator_id: UUID, recipient_id: UUID, content: str | None = None
self, initiator_id: UUID, recipient_id: UUID, message: str | None = None
) -> tuple[Friendship, InboxMessage]:
try:
user_low_id = min(initiator_id, recipient_id)
@@ -99,12 +100,13 @@ class SQLAlchemyFriendshipRepository(BaseRepository[Friendship]):
self._session.add(friendship)
await self._session.flush()
inbox_content = FriendshipContent(type="request", message=message)
inbox = InboxMessage(
recipient_id=recipient_id,
sender_id=initiator_id,
message_type=InboxMessageType.FRIEND_REQUEST,
friendship_id=friendship.id,
content=content,
content=inbox_content.model_dump(),
status=InboxMessageStatus.PENDING,
created_by=initiator_id,
)
@@ -124,7 +126,7 @@ class SQLAlchemyFriendshipRepository(BaseRepository[Friendship]):
self,
friendship: Friendship,
initiator_id: UUID,
content: str | None = None,
message: str | None = None,
) -> tuple[Friendship, InboxMessage]:
try:
now = datetime.now(timezone.utc)
@@ -133,6 +135,7 @@ class SQLAlchemyFriendshipRepository(BaseRepository[Friendship]):
friendship.initiator_id = initiator_id
friendship.updated_by = initiator_id
inbox_content = FriendshipContent(type="request", message=message)
inbox = InboxMessage(
recipient_id=(
friendship.user_low_id
@@ -142,7 +145,7 @@ class SQLAlchemyFriendshipRepository(BaseRepository[Friendship]):
sender_id=initiator_id,
message_type=InboxMessageType.FRIEND_REQUEST,
friendship_id=friendship.id,
content=content,
content=inbox_content.model_dump(),
status=InboxMessageStatus.PENDING,
created_by=initiator_id,
)
+1 -1
View File
@@ -20,7 +20,7 @@ class FriendRequestResponse(BaseModel):
id: UUID
sender: UserContext
recipient: UserContext
content: str | None
content: dict | None
status: Literal["pending", "accepted", "rejected", "canceled"]
created_at: datetime