peanut
|
760c1445fe
|
docs: 添加小说消息操作按钮恢复设计文档
|
2026-07-28 19:32:28 +08:00 |
|
peanut
|
9808e2eb93
|
docs: 详情页澄清选项卡显示不全修复实施计划
|
2026-07-26 23:10:25 +08:00 |
|
peanut
|
4e79e2150b
|
docs: 详情页澄清选项卡显示不全修复设计
|
2026-07-26 22:34:52 +08:00 |
|
peanut
|
502586b64a
|
fix(mini-program): 修复 ScriptLibraryView 章节数展示为 0 的问题
getChapterCount 优先从 plotJson.stages.outline.beats.length 获取真实章节数(新剧本),
fallback 根据 length 字段估算:short→1章, medium→2章, long→4章。
|
2026-07-26 18:21:58 +08:00 |
|
peanut
|
321246c96c
|
docs: 章节数展示修复设计文档
|
2026-07-26 18:18:14 +08:00 |
|
peanut
|
872cf63c7c
|
fix:调整用户心愿消息到聊天流首位
问题:DB 中 messageOrder 顺序导致用户心愿(order=8)显示在澄清卡片(order=2,4)之后,
但逻辑上用户心愿应该是第一条消息。
修复:
- 在 rebuildResultMessages 完成后,检测 user 类型的 chat 消息位置
- 如果不在首位(index > 0),移动到 resultMessages 数组开头
- ScriptView.vue 和 ScriptDetailView.vue 保持一致
显示顺序现在为:
1. 用户心愿(第一条)
2. 澄清卡片 1 + 答案
3. 澄清卡片 2 + 答案
4. 大纲
5. 正文
|
2026-07-26 17:15:22 +08:00 |
|
peanut
|
e373cb344f
|
fix:过滤未配对澄清答案(避免显示孤立 answer 如「love」)
问题:DB 中部分 clarification_answer 没有对应 question(如 messageOrder=1 的「love」),
原逻辑将其渲染为独立 user 文本消息,导致用户看到无法理解的孤立答案气泡。
修复:
- 未配对的 clarification_answer 不再展示为 user 文本消息,直接 return 跳过
- 原因:没有 question 上下文的 answer 无法正确渲染,只显示答案会造成用户困惑
- ScriptView.vue 和 ScriptDetailView.vue 保持一致
数据影响:
- 「十年后的来信」剧本 messageOrder=1 的「love」answer 将被过滤
- 正常配对的 answer(如「family」→「家人」「sibling」→「兄弟姐妹」)仍正常显示
|
2026-07-26 17:11:52 +08:00 |
|
peanut
|
ed67739a47
|
fix:澄清问答配对逻辑修复(按 messageOrder 升序匹配)
问题:DB 中 clarification_answer 可能先于 question 存入(messageOrder 更小),
导致原「找最后一张 card」的匹配逻辑把 answer 错误渲染成独立 user 文本消息
(如截图中的「love」紫色气泡)。
修复:
- rebuildResultMessages 改用 messageOrder 升序配对策略:
1. 先分别提取所有 clarification_question 和 clarification_answer,按 messageOrder 排序
2. 为每个 question 配对它之后第一个未分配的 answer
3. 遍历时 question 替换为含答案的 card 消息,已配对 answer 跳过,未配对 answer 作为独立 user 文本
影响:
- ScriptView.vue(chat-bubble 流程视图)
- ScriptDetailView.vue(详情页只读视图)
数据基础:后端 answer 仍只存 value(语义化),前端渲染时通过 options 映射 label。
|
2026-07-26 17:07:22 +08:00 |
|
peanut
|
7d19fa5898
|
fix:澄清卡片显示完整选项和中文答案
问题:详情页 chat-bubble 卡片视图显示「已回答:family」等英文 value,
而不是中文 label(如「家人」),且不展示所有可选选项。
修复:
- 新增 getAnswerLabel(msg) 函数,通过 card.options 查找 value 对应的中文 label
- rebuildResultMessages 增加 selectedValue 字段,与 answer 同时存原始 value
- 卡片已回答视图新增 card-options-list,渲染所有选项,已选加 .selected 样式并标 ✓
- submitClarification(实时模式)同步存 selectedValue,保持渲染逻辑一致
影响:
- ScriptView.vue(chat-bubble 流程视图)
- ScriptDetailView.vue(详情页只读视图)
数据基础未动,后端澄清问答 answers 仍存原始 value(语义化)。
全局约束:rpx 单位、代码注释中文、禁止 mock 数据。
|
2026-07-26 16:49:44 +08:00 |
|
peanut
|
50fb2404fd
|
fix:修复 ScriptView 详情面板重复展示及列表预览行数据路径
- ScriptView.openScriptChat 移除重复 push wishTheme/novelContent,改为从 messages 真实数据按 type 映射为 chat-bubble(与 ScriptDetailView.rebuildResultMessages 一致)
- ScriptLibraryView.getOutlinePreview 增加多路径探测(plotJson.stages.outline.beats / fullPayload.outline.beats / plotJson.outline.beats),兼容老剧本数据
|
2026-07-26 16:30:33 +08:00 |
|
peanut
|
d220b01ba4
|
feat:ScriptLibraryView 新增大纲预览行
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-26 15:39:49 +08:00 |
|
peanut
|
95a3864250
|
feat:ScriptDetailView 改造为 chat-bubble 流程视图复刻生成时展示
|
2026-07-26 15:31:01 +08:00 |
|
peanut
|
d2a051a938
|
feat:novel_done 读取累积 stages 并传入 saveNovelResult
|
2026-07-26 15:16:45 +08:00 |
|
peanut
|
8c2fe249e7
|
feat:saveNovelResult 创建 clarification/outline 中间步骤 message
|
2026-07-26 15:12:50 +08:00 |
|
peanut
|
87d668db1c
|
feat:followup 累积用户澄清回答到全局缓存
|
2026-07-26 15:06:49 +08:00 |
|
peanut
|
fcf4bcd9e4
|
feat:clarification_card 与 outline_created 事件累积到全局缓存
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-26 15:01:26 +08:00 |
|
peanut
|
7de91dbbb4
|
feat:新增 SESSION_STAGES_ACCUMULATOR 跨流中间步骤累积器
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-26 14:51:19 +08:00 |
|
peanut
|
fc0f5b88c5
|
fix:修复小说保存与列表刷新
- ShortNovelServiceImpl:累积 novel_delta 事件,novel_done 未携带 full_text 时用累积内容兜底
- ScriptLibraryView:onMounted 主动拉取最新剧本,解决生成后列表不刷新问题
|
2026-07-26 14:45:51 +08:00 |
|
peanut
|
88e3ec32ef
|
docs:小说列表/详情页展示改造实施计划
|
2026-07-26 14:43:29 +08:00 |
|
peanut
|
6f4d9ba0d8
|
docs:小说列表页/详情页展示改造设计文档
修复详情页重复展示问题,列表页增加大纲预览,后端保存澄清问答消息。
详情页复刻生成时 ScriptView 的 chat-bubble 展示结构。
|
2026-07-26 14:37:57 +08:00 |
|
peanut
|
b5af8b4ce8
|
feat: ScriptDetailView 增强展示用户心愿和大纲元数据
|
2026-07-26 11:54:12 +08:00 |
|
peanut
|
0f0ae08b7e
|
feat: 前端 store 增加 sessionMeta 状态 + ScriptView 增强 originalQuery 兜底和可靠刷新
|
2026-07-26 11:53:20 +08:00 |
|
peanut
|
c0df76566d
|
fix: 列表查询移除隐性写操作
|
2026-07-26 11:50:53 +08:00 |
|
peanut
|
06605bfd0d
|
fix: 修复小说生成保存链路(事务+originalQuery兜底+中间步骤累积)
|
2026-07-26 11:49:31 +08:00 |
|
peanut
|
4931005102
|
docs: 心愿实现小说保存与复现完整性修复实施计划
|
2026-07-26 11:37:26 +08:00 |
|
peanut
|
644b8b9d2d
|
docs: 心愿实现小说保存与复现完整性修复设计
|
2026-07-26 11:34:26 +08:00 |
|
peanut
|
1cf75a2b40
|
fix: 修复微信开发者工具 60 秒超时错误处理问题
- abort() 只清理资源,不再触发 onError(避免正常流程误报错误)
- 真正的错误(超时、网络错误)通过 Promise.race 的 catch 正确传递给用户
- 修复微信开发者工具强制终止 fetch 时 onError 不被调用的问题
- 使用 errorHandled 标志防止 onError 重复调用
|
2026-07-23 22:21:46 +08:00 |
|
peanut
|
6eadbce6f2
|
fix: 修复微信开发者工具 60 秒超时问题
- 将 AbortController 方案改为 Promise.race + setTimeout 外部超时控制
- 解决微信开发者工具底层 fetch 不兼容 AbortController signal 的问题
- 保持 300 秒超时时间不变
- 简化 abort 接口,统一使用 cleanup 函数
|
2026-07-23 22:12:42 +08:00 |
|
peanut
|
bd706e4a5b
|
fix: 修复 H5 模式 stream 请求 60 秒超时问题
- 在 H5 环境使用 fetch + ReadableStream + AbortController
- 支持自定义 300 秒超时
- 小程序环境保持原有 uni.request 逻辑不变
- 添加 CRLF 兼容性、主动中止与超时区分、资源清理
|
2026-07-22 22:57:29 +08:00 |
|
peanut
|
81786495a6
|
docs: H5 模式 stream 超时修复实施计划
|
2026-07-22 22:32:55 +08:00 |
|
peanut
|
c64bb4285a
|
docs: H5 模式 stream 超时修复设计文档
|
2026-07-22 22:31:52 +08:00 |
|
peanut
|
e0d9c4a84b
|
fix:修复 ClarificationCard 选项无法切换的 bug(增强 toggleOption 容错性)
|
2026-07-22 21:50:38 +08:00 |
|
peanut
|
235b08e01d
|
docs:ClarificationCard 选项切换修复设计
|
2026-07-22 21:49:21 +08:00 |
|
peanut
|
6bf726d6a0
|
小程序对话页面优化
|
2026-07-22 21:36:11 +08:00 |
|
peanut
|
ef23f3f51b
|
docs: 记录 SSE 流式传输修复的测试结果
|
2026-07-21 23:54:51 +08:00 |
|
peanut
|
bc2f9538f0
|
docs: 记录 SSE 流式传输修复的部署验证
|
2026-07-21 23:50:08 +08:00 |
|
peanut
|
82b138280b
|
fix: 移除 console.log 中的敏感信息(firstQuery 文本、payload 完整内容)
|
2026-07-21 23:47:17 +08:00 |
|
peanut
|
748fc18c84
|
feat: 前端添加 SSE 事件诊断日志,确认 originalQuery 传递
|
2026-07-21 23:43:48 +08:00 |
|
peanut
|
adeaa7a506
|
fix: 修复 nginx SSE 配置(添加 HTTP/1.1,移除冗余配置)
|
2026-07-21 23:40:38 +08:00 |
|
peanut
|
feaf8922c5
|
docs: 记录 nginx SSE 配置优化
|
2026-07-21 23:34:23 +08:00 |
|
peanut
|
406f9b77b4
|
feat: 优化 SSE 转发逻辑,使用严格行读取和显式 flush
|
2026-07-21 23:28:00 +08:00 |
|
peanut
|
2b6dc72744
|
docs:创建 SSE 流式传输与历史列表保存修复实施计划
|
2026-07-21 23:24:14 +08:00 |
|
peanut
|
0c9ab9b974
|
docs:补充前端代码完整示例,移除占位符
|
2026-07-21 23:19:40 +08:00 |
|
peanut
|
461f993ab1
|
docs:SSE 流式传输与历史列表保存修复设计
|
2026-07-21 23:18:18 +08:00 |
|
peanut
|
3d1cc24fc4
|
fix: SSE 流式转发从 RestTemplate 改用 OkHttp,支持真正的逐行流式读取,解决缓冲导致的一下子全出来问题
|
2026-07-21 22:48:52 +08:00 |
|
peanut
|
b24e176579
|
feat: 标签顺序改为全部/短篇/中篇/长篇/收藏夹;增加SSE事件诊断日志定位novel_done未触发问题
|
2026-07-21 21:56:22 +08:00 |
|
peanut
|
3813f91b8d
|
feat: 历史列表分类改为固定5标签(全部/中篇/短篇/长篇/收藏夹),移除状态筛选,后端保存length改为short
|
2026-07-21 21:15:31 +08:00 |
|
peanut
|
9b496bb42a
|
fix: 撤回 typewriter 改动,novel 改用直接累加 delta 保证流式输出
之前用 useTypewriterStream.writer.push + 同步读 visibleText 有时序问题:
writer 的 visibleText 由内部 setInterval 异步推进,push 后立即同步读得到空串,
气泡一直空白。
撤回 typewriter 改动,恢复 novel_delta 直接 lastNovel.content += delta,
SSE 本身就是流式推送,每次到达即显示。
保留 confirmOutline / modifyOutline 的 pendingNextResponse = true 修复(loading)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 20:43:11 +08:00 |
|
peanut
|
6afec090e4
|
fix: 大纲确认/修改时显示 loading + novel 消息使用 typewriter 逐字流式输出
- confirmOutline / modifyOutline 中设置 pendingNextResponse.value = true
解决大纲确认/修改后等待响应期间无 loading 的问题
- novel_start 时为 novel 消息创建独立 typewriter writer 实例(novelWriters Map)
- novel_delta 时通过 writer.push() 推送增量,逐字渲染 visibleText
- novel_done 时 finish writer 并同步最终文本,清理 writer 实例
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 20:33:52 +08:00 |
|
peanut
|
7b53821cec
|
fix: 澄清卡片 allow_custom 时允许纯自定义输入提交
- canSubmit 逻辑重构:纯文本卡片只需 customText 非空
- 有选项卡片:满足最小选择数,或(allow_custom 且 customText 非空)即可提交
- 修复其他,请简单描述输入自定义内容后提交按钮灰显的问题
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-21 20:25:24 +08:00 |
|