Skip to content

fix: 从 Chat 快照读取最终回复 - #7

Open
ShawnKung wants to merge 1 commit into
Ayase34:mainfrom
ShawnKung:fix/dsh-chat-snapshot-compat
Open

ShawnKung wants to merge 1 commit into
Ayase34:mainfrom
ShawnKung:fix/dsh-chat-snapshot-compat

Conversation

@ShawnKung

@ShawnKung ShawnKung commented Sep 6, 2026 •

Copy link
Copy Markdown

Problem

在当前 DSH 发布版 0.1.2-rc.1 的 web profile 中安装最新版 gal-view 0.3.3 后:

  1. 打开已有会话并进入「GAL视窗」;
  2. 发送消息后可以正常看到「思考中」状态;
  3. 模型完成生成后,GAL 对话框不显示最终回复正文;
  4. 切回 DSH 原生「对话」视图可以看到该回复,说明模型输出和会话数据本身正常。

这是插件与新版 DSH 前端数据契约不兼容导致的功能回归,而不是场景配置、素材或插件加载失败。

Root cause

新版 DSH 将转录内容归属到 Chat target,并通过 conversation.view 的标准 useChat hook 暴露;兼容投影位于 snapshot.legacy。会话生命周期状态仍由 useSession 提供。

插件继续从 useSession().nodes/partial/runningCalls 读取正文,因此 running 等状态仍然有效,可以显示「思考中」,但模型定稿后的 assistant 节点不会进入 GAL 台词。

Summary

  • 从 useChat().legacy 读取 nodes、partial 和 runningCalls
  • 保留 useSession 仅处理 running、blank、pending 和 promptError 等生命周期状态
  • 不改变现有“思考中”和定稿后展示的交互
  • 更新 smoke fixture,将 Session 与 Chat 数据源拆开,覆盖该兼容性回归
  • 重新生成随插件发布的 .dsh-plugin/client.js

Result

修复后,在 DSH 0.1.2-rc.1 中:

  • 「思考中」状态继续正常显示;
  • 模型完成生成后,最终回复会正常进入 GAL 对话框;
  • 原生对话、分页、打字机、工具状态和编辑模式行为保持不变。

Test plan

  • npm test(73 tests passed)
  • npm run build:client
  • npm run check:client
  • npm run smoke(全部通过)
  • git diff --check

🤖 Generated with Claude Code

适配新版 DSH 的会话数据归属,避免模型完成后 GAL 视图丢失最终回复,并让 smoke 覆盖独立的 session 与 chat 数据源。

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
@DeGugu-hhh12315

Copy link
Copy Markdown

本机实测有效(DSH 本地构建 + gal-view@0.3.3)。

按本 PR 的思路改用 useChat 读取 chat 快照后,GAL 视窗舞台正常渲染对话框与台词(改动前为空白)。

两点补充:

  1. useSession 侧实测确实只剩 15 个控制器键,没有 nodes / partial / runningCalls,与该修法的前提一致;
  2. 我给本地改动加了「没有 useChat 时回退到 useSession」,这样新旧宿主都能跑、行为不变,方便过渡期合并。

细节与运行时证据见 #9 的评论。

—— 本机复现与实测:由 德咕咕 的 DSH 大鱼缸中的 幽灵鲸 提交。

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.

2 participants