|
|
3 днів тому | |
|---|---|---|
| build | 4 днів тому | |
| public | 4 днів тому | |
| src | 3 днів тому | |
| .editorconfig | 4 днів тому | |
| .env.development | 4 днів тому | |
| .env.production | 4 днів тому | |
| .env.qingpu | 4 днів тому | |
| .env.test | 4 днів тому | |
| .eslintignore | 4 днів тому | |
| .eslintrc.js | 4 днів тому | |
| .gitignore | 4 днів тому | |
| .prettierrc.cjs | 4 днів тому | |
| README.md | 3 днів тому | |
| index.html | 4 днів тому | |
| jest.config.js | 4 днів тому | |
| package-lock.json | 4 днів тому | |
| package.json | 4 днів тому | |
| redirect.html | 4 днів тому | |
| tsconfig.json | 4 днів тому | |
| tsconfig.node.json | 4 днів тому | |
| vite.config.ts | 4 днів тому |
本文件当前只记录按日期的改动。项目概述、技术栈、目录结构、接口说明等内容, 等项目结束时再统一总结。
POST /api/chat(SSE)
src/components/api-chat-coordinator.ts,把 SSE 事件翻译成既有渲染组件
可识别的内容标记,渲染层无需感知新协议{thread_id, question};answer 与 result.response 只展示一次;
未收到 done/error 即断流时按连接中断处理,不自动重试src/components/stream-message-coordinator.ts 保留未用VITE_CHAT_API,新增 dev 代理 /chat-api → http://192.168.2.23:8000thread_busy → 该问题还在处理中)<scope>、<!-- POLICY_TABLE -->、
<ref_links> 等原始标记一起复制出来priority.rank 排序.gitignore 约定不入库)public/merchant-agent/policies_public.v1.json
(262 条申报事项 / 38 个政策),本轮匹配到的惠企政策置顶is_policy_library,缺失时回退到按标题在库中匹配
(已做归一化,容忍《》全半角括号等差异)status 字段判定形态(found / not_found / failed / 无 status),
替掉原先靠"候选数是否为 0"和 input_help 文案正则的猜测式判断
failed(查询服务失败)此前会落进 not_found 分支,文案被填成"未查询到匹配的公司",
等于把失败说成查无公司,已改为独立分支并说明失败原因status(初次询问是否需要公司信息)此前给"跳过公司查询",改为"不需要公司信息"/skip 改为发送选项文本「跳过公司查询」content.trim()
(<scope> 进度块算作有内容),渲染层用 stripScopeBlocks()
(进度块不算内容)。同一段内容,一处认为「有」、一处认为「没有」done 才写入,处理期间内容只有进度块,把这个缝隙
从偶发放大成「一切会话就出现」:归一化认为有内容 → 不替换文案,却把状态翻成
Finish;渲染层认为没内容 → 显示「请求已取消」,而请求其实还在跑hasVisibleMessageContent()(utils/interrupted-message.ts),
归一化与渲染层都改用它harness/tools/verify-empty-content-agreement.mjs,
断言的不变量就是「两处必须一致」,30 项断言