记在这里的债都是有意欠的,不是忘了。每条写清:是什么、为什么先欠着、 什么条件下该还。
question="1",API 由序号映射到原候选",
而当前前端提交的是选项全部内容拼接的文本(公司名 + 信用代码 + 状态 + 负责人)。status: found)的流程,
选中一家,确认返回的是选定公司后的结果而不是又弹候选列表。
若循环,两条路:①改回提交序号(序号取自当前显示顺序);②后端扩语义识别全字段文本。provider_failure,status: found 一次都没出现过,因此从未验证。answer.text 与 summary.text 首句重复answer.text(渲染在消息正文)又放进 summary.text 的开头,
实测两者首句逐字相同,用户会看到同一段话出现两次。{thread_id, question} 两个字段,多一个返回 422,
旧协议的 transmission.files / file_pos 发不出去。harness/docs/reference/legacy/API.md(旧协议快照,仅供理解原实现)Question.message 字段未被渲染QuestionCard 的 Question 接口里定义了 message 字段,
但模板从未渲染它 —— 适配层写的提示文案一直不可见。wss://qingpu-data-api.metamaker.cn/common/asr_hub
(引擎 aliyun_dashscope),且鉴权 token 与 appKey 都硬编码在源码里
(src/three-libs/asr/index.ts 的 token:iss: human-large-screen,exp 2034-12-29,入库可见)。../reference/current-api-call-sites.md 的「ASR 协议契约」,
实现方照着就能写自建网关,前端一行都不用改(只把 VITE_ASR 指向新地址)。index.html 里写死的 globalThis.isXF = false
改成环境变量开关 —— 这样万一厂商出问题,改配置就能切到讯飞分支,不必改代码重新发版。height: 100dvh 没有 100vh 兜底(BusinessAssistantMobile.vue)——
dvh 是较新的单位(Chrome 108+ / Safari 15.4+),国产浏览器内核多基于更老的版本
→ 该声明被整条丢弃 → 容器高度塌陷,而外层是 overflow: hidden → 内容被裁掉text-size-adjust: 100% —— 移动端浏览器会按各自策略自动放大文字,
各家不同 → 同一份文案在不同手机上长度不同(也是"不同浏览器不一样"的直接来源)width: max-content 决定「单行省略 vs 换行」:
updateMaxWidthReached() 用 getBoundingClientRect() 比卡片与父容器宽度。
而字体首选 "HarmonyOS Sans SC"(手机多无此字体 → 回退到系统字体)→ 字宽不同
→ 测量结果不同 → 该换行时判成"没撑满" → 单行 nowrap 撑出屏幕chrome://inspect
最省事)—— 没有这个只能猜dvh 加 vh 兜底、全局 text-size-adjust: 100%、
给 flex 链补 min-width: 0is-max-width-reached
与 width: max-content。现在这套先天不稳定(字体/时机/内核都会影响测量)browserslist;
项目当前没有任何 browserslist / postcss 降级配置,而代码里用了
dvh(4) / gap(151) / inset(22) / backdrop-filter(24) 等较新特性(还清后从上面移到此处,保留一行说明怎么还的,便于追溯)