Skip to content

feat: 支持研迹助手长回答展开与收起 - #5

Merged
ydflow merged 1 commit into
mainfrom
codex/trail-answer-collapse
Oct 24, 2026
Merged

ydflow merged 1 commit into
mainfrom
codex/trail-answer-collapse

Conversation

@ydflow

@ydflow ydflow commented Oct 24, 2026

Copy link
Copy Markdown
Owner

改动说明

研迹助手的长回答此前会把正文完整铺开,连续阅读多个回答时需要反复滚动。本 PR 为每条助手回答增加独立的展开、收起入口:

  • 历史长回答默认保留约 9 行的开头预览,优先停在完整段落边界;短回答、用户消息不折叠。
  • 展开后,身份行与正文底部均可收起;表格、图表作为整体处理,超长单段落仍有预览上限。
  • 工具过程与来源入口保持独立,隐藏正文中的链接和按钮退出键盘导航与屏幕阅读器顺序。
  • 展开时保持阅读位置,收起时定位回该条回答开头;主动发送下一问时恢复跟随输出。
  • 按会话、消息记住当前应用进程内的展开状态;流式生成结束、保存记录替换临时消息 ID 后保持展开或用户手动选择的状态。
  • 补充中英文文案、回归测试与实际 Electron 截图。

关联 Issue

本次为已确认的产品交互改进,无关联 Issue。

测试报告

环境:Windows / Bun 1.4.2 / Node.js 24.19.0 / 仓库锁定的 Electron 39。

bun test --isolate packages/ui
→ 360 passed / 0 failed;59 files;1223 assertions

bun test --isolate packages/i18n
→ 25 passed / 0 failed;4 files;1022 assertions

bun run typecheck
→ core / i18n / shared / ui / electron 全部 exit 0

bun node_modules/typescript/bin/tsc --project scripts/bench/tsconfig.json
→ exit 0

bun run build:electron
→ renderer / preload / main 构建成功

bun run i18n:check
→ en-US 与 zh-CN 均为 1524 keys;0 issues

git diff --cached --check
→ exit 0

额外使用仓库 Playwright 驱动隔离、隐藏的实际 Electron 窗口,验证:长短回答边界、独立展开状态、整块表格、超长段落、来源弹窗、Enter/Space、展开与收起滚动位置、320px 面板和深色主题。固定流式事件样例覆盖了生成中完整展示、结束后保持展开、保存消息 ID 替换后的状态继承。没有调用真实模型进行质量或性能评估。

本地以上检查无失败。构建仍显示 Vite 插件弃用和大 bundle 警告;隔离开发窗口有 Electron CSP 提示,均未作为本 PR 扩展修改范围。全仓单元测试由 GitHub CI 执行,结果以对应提交的 checks 为准。

  • 已提供实际测试命令与结果
  • 已说明环境与验证边界
  • 核心改动已有 focused tests 和 Electron 交互验证

UI 截图

以下为实际 Electron 渲染截图。回答、引用与数值是固定交互验证样例,不代表实时行情或真实模型输出。

收起状态

长回答收起状态

展开状态

长回答展开状态

  • 有可见 UI 变化,已提供修改后的关键状态截图

范围

仅调整展示、交互与前端临时状态;不修改模型提示词、原始回答、引用编号、后端协议或持久化数据格式。应用重启后,历史长回答恢复默认预览。本 PR 不重新打包或发布安装程序。

@ydflow
ydflow merged commit b200782 into main Oct 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant