|
|
c544483705
|
fix: AI修改确认弹窗左侧字体与右侧统一
|
2026-04-20 02:16:38 +08:00 |
|
|
|
9aec836e93
|
fix: 讯飞语音识别文字覆盖+麦克风未释放
- 使用setChatInput(prev => prev + seg)函数式更新,彻底修复文字覆盖问题
- 提取stopMicrophone函数,在手动停止/VAD自动挂断/报错/关闭时统一释放物理麦克风
|
2026-04-20 02:10:38 +08:00 |
|
|
|
75e4e56cb3
|
fix: 讯飞语音识别停止后内容未写入输入框
- 停止录音时不再立即关闭WebSocket,仅发送结束帧+关闭麦克风
- 移除dwa: wpgs动态修正,避免返回数据结构复杂导致拼接混乱
- ws.onmessage检测到服务端status:2时才彻底断开连接并写入最终文字
|
2026-04-20 01:54:50 +08:00 |
|
|
|
b07bcfaad2
|
fix: 讯飞鉴权签名与官方demo对齐+结束帧+文字修改
- ReportEditor: getXfAuthUrl signatureOrigin去掉引号,Base64改用CryptoJS.enc.Base64.stringify与demo完全一致
- ReportEditor: 第一帧增加dwa: wpgs动态修正参数
- ReportEditor: 停止录音时先发送status:2结束帧再关闭WebSocket
- SystemSettings: 标题改为讯飞语音听写Websocket接口配置
|
2026-04-20 01:43:58 +08:00 |
|
|
|
4f27edcc92
|
fix: 讯飞配置字段名统一+WebSocket错误码拦截
- SystemSettings: state初始化和表单绑定中xfIatConfig统一改为xfSpeechConfig,与编辑器读取字段一致
- ReportEditor: ws.onmessage增加jsonData.code错误码拦截,展示具体讯飞报错信息
|
2026-04-20 01:33:14 +08:00 |
|
|
|
d235ced187
|
fix: 讯飞鉴权HTTP兼容+AI段落紧凑+对话模式JSON降级
- ReportEditor: 讯飞鉴权改用crypto-js HMAC-SHA256,兼容HTTP非安全环境
- defaultContent.ts+ReportEditor: AI区域<p>标签去掉margin-bottom,段落紧密排布
- ReportEditor: 纯对话模式下JSON解析失败时降级为直接文本回复
- ReportEditor: 对话模式systemPrompt强化JSON格式约束
- deps: 新增crypto-js用于讯飞鉴权
|
2026-04-20 01:18:57 +08:00 |
|
|
|
ea789cee26
|
fix: 讯飞配置默认值+AI图片同步+TemplateManage空行清理
- ReportEditor: 讯飞语音读取xfSpeechConfig增加DEFAULT_XF_SPEECH后备,旧用户无需手动保存
- ReportEditor: 切换到AI面板时强制同步编辑器图片到视觉参考上下文
- TemplateManage: saveCurrentTemplate/saveTemplateContent保存前清理空段落和标签间空白
- types.ts: 新增XfSpeechConfig接口和DEFAULT_XF_SPEECH常量
|
2026-04-20 01:01:01 +08:00 |
|
|
|
9f2b5dce21
|
fix: AI修改确认弹窗段落分段修复
- defaultContent.ts: 手术步骤模板<p>改为紧凑HTML,统一style添加margin: 0 0 8px 0
- ReportEditor.tsx: stripHtml在</p>与<p>之间插入\\n\\n,diff modal可正确分段
- ReportEditor.tsx: AI返回的cleanHtml<p>样式与模板一致,避免标签差异干扰diff
|
2026-04-20 00:41:53 +08:00 |
|
|
|
2dbdbe02b2
|
feat: AI面板图片联动+聊天图片展示+讯飞语音识别
- AI图片选择区改为仅展示编辑器中已插入的占位图
- 用户发送的图片在聊天气泡中展示并包含在导出日志中
- 接入讯飞Spark IAT流式听写WebSocket替换原生语音识别
|
2026-04-20 00:36:55 +08:00 |
|
|
|
963a7541c9
|
fix: Diff modal原始版本大段空白修复(20260420_0009)
- currentHtml提取后添加 replace(/>(\s+)</g, '><') 压缩标签间空白
- cleanHtml处理后同样压缩, 确保diff两侧格式对齐
- 消除模板源码排版换行被diff算法误识别为删除内容的问题
|
2026-04-20 00:10:31 +08:00 |
|
|
|
e549419a4c
|
feat: 模板切换重置AI对话+Diff间距修复+API密钥DOM安全+模型切换(20260419_2344)
- 切换模板时同步清空 chatMessages/chatInput/aiUploadedImages/aiSelectedFrames
- 修复stripHtml双换行导致diff modal原始版本段落间距过大
- API密钥input改为ref非受控组件, DOM中不再出现value=sk-xxx属性
- 默认模型名改为 moonshot-v1-32k-vision-preview
|
2026-04-19 23:50:51 +08:00 |
|
|
|
18d81cb4a6
|
security: API密钥源码级字符码混淆(20260419_2316+)
- 将 DEFAULT_AI_PROVIDERS.kimi.apiKey 从明文改为空字符串
- storage.ts新增 getDefaultApiKey(): 字符码数组→String.fromCharCode 运行时还原
- SystemSettings.tsx/Login.tsx/ReportEditor.tsx 在 apiKey为空时自动填充默认值
- 彻底消除源码中 sk-xxx 明文字符串的直接暴露
|
2026-04-19 23:30:13 +08:00 |
|
|
|
0039b18a26
|
feat: 模板AI区域化+默认配置优化+API密钥安全(20260419_2316)
- 默认模板: 手术步骤段落包裹进 .ai-region AI可编辑区域
- API密钥: DEFAULT_AI_PROVIDERS.kimi.apiKey 预设默认值,
输入框增加onCopy/onCut防复制, storage.ts增加XOR+Base64透明加密
- 默认模型: kimi modelName改为 moonshot-v1-auto
- 抽帧配置: 12个位置改为指定百分比[7.9,9.3,46.2,49.1,63.9,64.8,
68.8,73.7,80.2,85.0,96.3,98.6], 默认模式从uniform改为keep
|
2026-04-19 23:24:36 +08:00 |
|
|
|
3bec69986e
|
feat: Kimi k2.5参数适配+AI日志导出完善(20260419_2249)
- Kimi k2.5 强制传参拦截: 当 provider=kimi 且 model 包含 k2.5 时,
从请求体中 delete temperature/top_p/presence_penalty/frequency_penalty,
彻底解决 HTTP 400 报错
- 完善导出AI日志: 新增 lastExchangeLog 状态, 记录每次调用的
完整请求体(requestPayload)、原始响应(responsePayload)、
错误详情(errorDetail含status/statusText/responseText)、模型配置
- 更新导出按钮 JSON 结构, 包含 lastExchange 字段
|
2026-04-19 22:54:00 +08:00 |
|
|
|
2e634ff832
|
feat: AI写作模块4项优化(20260419_2226)
- 修复 diff 颜色残留: confirmAiInjection 使用 cleanHtml 而非 newHtml
- 更新默认快捷指令: 4条外科专用 -> 2条通用短语
- 新增发送按钮: 输入框旁显式发送按钮
- 导出AI日志: 快捷指令区域新增调试日志导出(JSON)
|
2026-04-19 22:29:43 +08:00 |
|
|
|
1ec25065ad
|
feat(ai): diff弹窗文档对比高亮 + 二次修改未弹窗修复
- 引入diff库,实现字符级差异比对
- diffModal左右两侧增加diff高亮:左侧删除内容标红,右侧新增内容标绿
- systemPrompt增加绝对强制条款:无论指令多小都必须返回updatedHtml
- 前端校验兜底:修改模式下未返回updatedHtml时在聊天面板给出提示
- confirmAiInjection注入前清理diff高亮span,避免污染编辑器
|
2026-04-19 22:08:05 +08:00 |
|
|
|
7275906f3c
|
fix(editor): AI注入后Ctrl+Z失效 + 字体格式统一
- confirmAiInjection改用Range.selectNodeContents + execCommand('insertHTML')保留浏览器撤销栈
- handleAIGenerate中对cleanHtml增加<p>标签内联样式注入:padding 0px、font-family SimSun、font-size 12pt、line-height 1.5
- 确保AI替换后的文字字体与原有文字完全一致
|
2026-04-19 20:33:43 +08:00 |
|
|
|
b24ba08658
|
fix(ui): 打印隐藏AI区域蓝框 + diff弹窗字体统一
- print.ts的iframe样式中增加.ai-region隐藏规则:去除边框/背景/内边距,隐藏右上角标签
- diffModal右侧AI提议版本容器增加style属性:fontFamily SimSun、fontSize 12pt、lineHeight 1.5
- 确保打印输出和diff对比的视觉一致性
|
2026-04-19 18:25:38 +08:00 |
|
|
|
6abd7d1e3a
|
fix(editor): contentEditable回车导致段落溢出.ai-content
- handleAIGenerate中获取currentHtml前增加溢出段落合并逻辑
- 遍历.ai-content之后的兄弟<p>节点,移回.ai-content内
- 合并后同步更新contentRef和saveDraftToStorage
- 确保diff弹窗左侧能显示AI可编辑区域内的全部段落
|
2026-04-19 18:10:40 +08:00 |
|
|
|
a3cafcb672
|
fix(ai): AI越界生成——Prompt增加内容边界约束
- systemPrompt去掉'基于全局信息补充完善'诱导性措辞,改为明确【内容边界】警告
- systemPrompt明确告知AI:全局参考仅供理解上下文,updatedHtml只能包含目标区域本身内容
- promptText增加⚠️防越界指令:明确列出禁止混入的模块类型(术后情况、标本描述、病理结果、签名等)
|
2026-04-19 04:26:16 +08:00 |
|
|
|
c7e7033e7d
|
feat(ai): diff弹窗内容完整性优化 + HTML空行清洗
- systemPrompt和promptText中明确要求AI生成完整多段落内容,不要只改写现有段落
- systemPrompt增加HTML格式约束:<p>标签包裹、禁止<br>和换行符、紧凑HTML
- setDiffModal和execCmd之前增加正则清洗:移除<br>、移除</p>与<p>间空白、trim首尾
|
2026-04-19 04:15:36 +08:00 |
|
|
|
9f73d8595c
|
feat(ai): 修改模式自动锁定目标区域 + SystemPrompt模式语义强化
- handleAIGenerate开头增加自动修正目标区域逻辑:修改模式开启且未选区域时,自动选择文档中第一个AI区域
- systemPrompt明确标注'当前处于【修改模式】/【对话模式】',并细化字段要求
- diffModal的targetId改为使用actualTargetId,确保确认注入时使用实际修正后的区域ID
|
2026-04-19 04:02:05 +08:00 |
|
|
|
c1d2438d2b
|
fix(editor): AI只聊天不修改——解绑SystemPrompt目标区域依赖 + 增加光标插入降级
- systemPrompt条件从'aiModifyEnabled && targetRegionEl'改为'aiModifyEnabled',确保开启修改模式后大模型始终返回updatedHtml
- 接收updatedHtml逻辑增加if/else分支:targetRegionEl存在时走diff弹窗,不存在时调用execCmd('insertHTML')降级插入光标位置
- 参考参考-ReportEditor.tsx中injectAIText的降级机制
|
2026-04-19 03:47:14 +08:00 |
|
|
|
854a00c2fa
|
fix(editor): Checkbox点击失效 + AI全局上下文注入
- 将'允许修改正文'复选框从id/htmlFor绑定改为label直接包裹input,增加e.stopPropagation防止事件冒泡被拦截
- handleAIGenerate中新增editorRef.current.innerText作为全局上下文注入prompt
- currentHtml增加过滤​零宽字符
- 优化systemPrompt,明确告知大模型全局参考内容+目标区域源码的双信息源结构
|
2026-04-19 03:35:52 +08:00 |
|
|
|
a065f6af27
|
docs: 记录28-chatInput草稿恢复与AI请求content条件格式经验
|
2026-04-19 03:24:23 +08:00 |
|
|
|
da2ecdc224
|
fix(editor): chatInput草稿恢复 + AI请求content条件格式
- 草稿恢复分支增加chatInput恢复,避免路由切换后聊天输入框内容丢失
- handleAIGenerate中messageContent改为条件判断:无图片时发送string,有图片时发送vision数组,修复Kimi文本模型400 Bad Request
|
2026-04-19 03:23:49 +08:00 |
|
|
|
9173aa7733
|
2026-04-19-03-03-55 修复AI撰写体验:API endpoint斜杠净化、模型列表下拉栏、聊天记录持久化存储
|
2026-04-19 03:09:46 +08:00 |
|
|
|
d5cbbf9137
|
2026-04-19-02-48-25 重构AI接口配置:多服务商底座架构、OpenAI兼容协议、动态模型切换、旧数据自动迁移
|
2026-04-19 02:53:26 +08:00 |
|
|
|
221daf61a5
|
2026-04-19-02-26-05 集成AI撰写功能:Kimi-2.5多模态API、AI可编辑区域、Diff确认弹窗、语音与图片输入、快捷指令
|
2026-04-19 02:36:20 +08:00 |
|
|
|
96b295f919
|
2026-04-19-02-00-33 建立代码编纂工作流:工程分析框架、经验记录迁移、工作流规范制定
|
2026-04-19 02:04:40 +08:00 |
|
|
|
1dc3d60248
|
docs: add AGENTS.md and experience logs for v1.3
|
2026-04-19 01:49:30 +08:00 |
|
|
|
36cfcb116e
|
v1.3.0 release - Docker-deployable production build
v1.3.0
|
2026-04-19 01:28:21 +08:00 |
|