【BugReport】Firefox 下 Web UI 无法加载历史会话/渲染回复 —— 原生函数 toString 格式差异导致"无损 JSON"校验误杀普通对象 #5709
npk0441-lang
started this conversation in
General
Replies: 1 comment
|
英文原帖#5677的分析更加详细,看看那边的情况应该就知道了。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
反馈一个 Firefox 专属的兼容性 bug(Chromium/Node 不受影响),已在本地定位并修复,供维护者参考。
现象
在 dsh-v0.1.3-alpha.1(master @ d347e70)下用 Firefox 打开 Web UI:历史对话全部无法显示、聊天区空白、新会话运行成功但回复渲染不出来。控制台持续报:
根因
报错链终点是 util-values 的
snapshotJsonValue(无损 JSON 校验)对对象原型的判定:ECMAScript 只要求原生函数 toString 包含
[native code]标记,具体空白/换行格式是实现定义。Chromium/Node 返回单行,恰好与硬编码字符串相等;Firefox 返回多行缩进格式:于是每个普通对象都被判为"非原生原型"→ 校验恒失败。诊断日志确认失败对象是完全合法的
{"type":"block-start","index":0,"blockType":"reasoning"}。修复(已本地验证)
改为空白不敏感比较(去空白后比对),全仓同类写法共 4 处:
packages/util/values/src/index.tspackages/core/tools/src/json-schema.tspackages/extensions/cordis-host-runner/src/guard.tspackages/code-runtime/code-runtime-worker-thread/src/worker-json.ts验证
修复重建后 Firefox 硬刷新,历史会话/新回复/翻页全部正常;Chrome 无回归。
建议
仓库 Issues 未开放,故发在讨论区。希望梁文锋严肃修复🫵😡
卧槽了,英文流那边发过bugreport了,梁文锋还我十万token😭
All reactions