fix: restore polished account experience and align AI with Lark design

This commit is contained in:
yuxuanhui
2026-09-07 23:31:23 +08:00
parent 3f3d417296
commit 7dcf46836f
23 changed files with 1669 additions and 807 deletions
+13
View File
@@ -132,3 +132,16 @@ AI 工具只使用明确的业务接口,不接触 ORM、任意 SQL、任意 HT
- 失败、取消或中断的轮次使用服务端保存的用户消息与工具审计事实补足完整历史,不重放未配对的模型调用,也不增加摘要模型请求。
模型设置变更会使现有待确认轮次失效,需要停止该轮并重新预览。自动化仅验证固定模拟行为与协议;真实模型对自然语言指代和工具选择的效果,需要配置供应商后另行联调。
## 7. 界面基线与本次恢复
个人信息与登录体验以会话“打磨个人信息模块与登录体验”的最终快照 `f781203` 为基线,保留账户权限、会话有效期、提交/模拟用量、本地每日 10,000 次模拟额度和固定底部分页。AI 功能沿用此基线,不另建视觉主题。
- `scope_sketch`:紧凑研究工作空间,个人信息设置、全局聊天、查询结果、修改确认;主要流程为查询、预览、确认和查看业务结果。
- `lark_style_recipe`:白色主区域,侧栏直接使用 `#f9f9f9`、选中项 `#1f23290d`,主操作使用 `#1456f0`;4px 间距基准,按用户的紧凑偏好以 8/12/16px 排布。普通卡片无阴影,边框轻,控件圆角 4–6px、消息与结果容器 8px。
- `emphasis_budget`:页面标题 600,区域标题和选中导航 500,正文、指标、提示、按钮和链接 400。颜色用于操作、焦点和真实状态。
- `layout_signature_usage` / `top_nav_policy`:保留左侧主导航与 56px 工作区顶栏;业务页面独立滚动。页面挂载容器保持可收缩的 flex 高度链,列表仅表体滚动,分页保持底部。
- `right_rail_policy`:聊天默认 420px、可调整 360–640px;桌面端预留空间,按剩余业务宽度调整账户表单;窄屏显示遮罩并隔离背景焦点,640px 以下占满屏幕。收起保留会话、生成任务与草稿,Esc 关闭当前面板。
- `ud_control_coverage`:保留 Semi 的 Button、Input、Select、Tag、Banner、TextArea 与 Pagination 语义及交互状态,统一颜色、字重和间距;自定义部分限布局、业务结果和前后差异。
- `icon_plan` / `media_decision`:本次新增 AI 区域采用文字操作,无自绘图标或插画;侧栏与登录恢复原会话的简洁文字入口。辅助聊天空间优先用于结果和编辑,没有营销 Hero 或装饰媒体。
- `verification_plan`:账户能力与 AI 回归;390/850/1280/1440/1920px 布局,聊天最大宽度、表格滚动、底部分页、窄屏遮罩、键盘操作和跨页草稿。截图均使用合成数据。
+3
View File
@@ -6,6 +6,7 @@
- 首期:个人信息与会话、Alpha 列表与详情、本地研究记录、可靠同步、Docker 部署。
- 当前扩展:全局右侧 AI 研究助手,自定义模型服务,通过查询工具及用户确认操作业务;具体范围见 [AI Chatbot 开发计划](ai-chatbot-plan.md)。
- 界面统一遵循 Lark Design Prototype,保留紧凑个人信息与登录体验;白色工作区、浅色导航、蓝色主操作及 4px 间距基准同样适用于 AI 面板、设置、结果与确认。
- Python + React + TypeScript + Semi Design,前后端分别位于 backend/ 和 frontend/,独立依赖与测试。
- PostgreSQL 存储数据,FastAPI 提供 OpenAPI 契约,HTTPX 统一异步调用 WorldQuant。
- React 19 使用 @douyinfe/semi-ui-19。Caddy 提供静态资源、API 代理与公网 HTTPS。
@@ -21,12 +22,14 @@
在个人页配置平台邮箱及密码,连接、重新连接、人工验证、断开与刷新资料。
平台凭据加密存储,解密密钥独立配置,不在前端持久化,也不进入日志或响应。
展示平台 ID、昵称、邮箱、身份与权限(以返回字段为准)、连接状态、最后同步时间。
展示平台会话剩余时长、提交与模拟活动、Alpha 数量概览;模拟每日 10,000 次为本地展示额度,按美东日期计算,缺失当日活动时不估算余额。已配置的连接表单默认收起。
提供本地显示名称、主题、时区和分页偏好,默认中文、浅色、Asia/Shanghai、25 条/页。
缺失资料显示“未提供”,不得虚构数据。
### Alpha 管理
- 主界面为侧栏、筛选区、可排序分页表格、列显隐、多选、详情抽屉;任务进度在独立面板查看。
- 列表以完整 flex 高度链填充可用区域,仅表体滚动,分页固定在底部;聊天展开后按剩余空间布局,保留编辑草稿。
- 全量同步已提交/未提交、隐藏/可见 Alpha;指定 ID 导入及选中刷新;仅手动触发。
- 筛选 ID/名称/表达式、地区、Universe、类型、语言、平台状态、隐藏、日期、核心指标、本地标签/状态/收藏。
- 展示 REGULAR/SUPER、FASTEXPR/PYTHON、Selection/Combo、完整 settings、IS/OS、已有 checks。
+15 -1
View File
@@ -1,6 +1,6 @@
# 项目与 AI 助手验收记录
日期:2026-09-07。验证范围为本地实现、模拟 WorldQuant 上游、实际 PostgreSQL/Docker。未访问真实 WorldQuant 账户,没有调用平台回测、检查、属性修改或提交接口。
日期:2026-09-07。下列首版 AI 验收使用本地实现、模拟 WorldQuant 上游及实际 PostgreSQL/Docker,没有访问真实 WorldQuant 账户或调用平台回测、检查、属性修改、提交接口。本次账户与样式恢复的验证单列于文末。
## 自动化与运行实测
@@ -78,3 +78,17 @@ AI SDK UI `6.0.277` / `@ai-sdk/react 3.0.280`、Pydantic AI slim `1.97.0` 均锁
## 已知架构边界
首期只有一个任务执行进程。长 Retry-After 会让后续任务排队,任务面板显示下次尝试时间并支持取消;不会为了缩短等待而提前请求平台。offset 分页遇到平台记录移动时可能遗漏,后续全量同步校正,单次未见记录不自动删除。数据库保存原始业务快照,后续研究、回测和 MCP 能力尚未实现。
## 账户基线恢复与 Lark 统一验收
恢复来源为“打磨个人信息模块与登录体验”的最终工作区快照 `f781203`。该快照此前未进入 `main` 提交历史,AI 开发所用基线未包含它;合并检查遗漏了这组未提交改动。本次按共同基线合并账户代码及样式,保留现有 AI 业务模块、版本校验、确认、会话与执行能力。
- 恢复账户权限、认证会话有效期、提交/模拟活动、Alpha 数量概览;模拟每日本地额度为 10,000,当日活动未知时余额也保持未知。恢复连接设置默认收起、紧凑登录与底部分页。
- 聊天、模型配置、查询卡片和确认差异统一采用 Lark 的白色工作区、浅色导航、蓝色主操作及 4px 间距基准;确认差异明确标示“修改前/修改后”。模型配置草稿跨页保留。
- `uv run ruff check app tests`、`uv run pytest -q`:74 项通过;恢复的权限、认证元数据、用量及缺失活动契约测试包含在内。
- `pnpm build`:类型检查与生产构建通过。首次检查发现主检出目录尚未安装 AI 锁定依赖,经 `pnpm install --frozen-lockfile` 补齐,锁文件未变更。原有 lottie-web 构建提示仍存在。
- Playwright 原有 4 项完整回归通过,新增的多尺寸布局与草稿测试通过。新增测试首次使用了错误的 footer landmark 定位;修正定位后单独重跑通过,未因此改变页面行为。
- 实测 390/850/1280/1440/1920px:无页面横向溢出,表体滚动不移动分页;桌面聊天预留空间,窄屏遮罩与背景 inert 生效,手机聊天占满屏幕;640px 聊天宽度和跨页表单/聊天草稿通过。旧有确认后刷新、详情草稿冲突、收起后继续生成、恢复、停止和退出流程均通过。
- 已查看截图:`output/playwright/ai-approval.png`、`account.png`、`lark-chat-390.png`、`lark-chat-1440.png`。全部为合成账户与 Alpha,未读取真实凭据。
旧会话曾记录真实账户的只读认证、个人资料、10 项权限、14,400 秒会话和活动用量联调;这是旧快照的历史记录,并非本轮重新验证。本轮没有迁移或存储结构变更,没有重新运行 Docker/备份验收,也未重新部署正式实例、访问真实 WorldQuant 或收费模型服务。