Files
ST-Amily2-Chat-Optimisation/TODO.md

103 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TODO List
该文件用于记录开发项目及未修改bug以及修改内容清单。
## 待开发
以下为示例(预计三个版本后移除)
- 示例:未完成功能——负责人
- 示例向量化优先检索池功能开发——49
---
以下为待开发内容
- **项目框架重构 (Project Refactoring)**:
- 现状:大量功能模块(如 `NccsApi.js`)存在手动组装参数、逻辑耦合度高、代码风格不统一("能跑就行"遗留债)等问题。
- 目标:系统性重构项目架构,统一使用 Builder 模式(如 `Options.builder`),解耦业务逻辑与配置管理,提升代码可维护性和优雅度。
## 未修复
以下为示例(预计三个版本后移除)
- 示例未完成bug——负责人
- 示例TavernHelper异常undefined导致角色世界书读取异常——Silence_Lurker潜默
- ~~示例已完成修复bug——负责人~~
---
以下为记录内容
## 版本修复/开发日志
### 1.5.7
- 添加了**TODO.md**,现在可以记录任务清单并更清楚的记录开发完成状态了。
- 无实际功能更新
### 中间版本未维护该文件
### 1.8.3
以下为修复内容
以下为更新内容:
- 添加记忆管理并发调用
### 最新更新 (待发布)
以下为修复内容:
- **自动写卡系统 Diff 视图修复**
- 修复了 `core/auto-char-card/ui-bindings.js``parseDiff` 函数的解析逻辑,使其能正确处理换行符和缩进,确保 Diff 视图能正确显示红绿对比。
- 修复了流式输出时产生多余 Diff 标签页的问题,增加了清理逻辑。
- 修复了 `edit_character_text` 在流式输出时的异步请求问题,确保能正确获取原始内容进行 Diff 解析。
- 彻底清理了流式输出时产生的多余 `Diff: WI undefined` 标签页。
- 修复了局部修改时,由于参数未完全生成导致的 `Diff: WI undefined` 标签页堆积问题,增加了友好的 `(Generating...)` 提示和自动清理机制。
- **自动写卡系统死循环修复**:修复了 `core/auto-char-card/agent-manager.js` 中因截断检测逻辑不支持中文标点,导致 AI 回复以中文结尾时被误判为截断,从而陷入无限发送 "Continue" 的死循环 Bug。
- **自动写卡系统任务完成机制**:在 `core/auto-char-card/tools.js` 中新增了 `task_complete` 工具,并在系统提示词中强制要求 AI 在完成任务时调用此工具,解决了 AI 无法明确结束任务导致状态挂起的问题。
- **自动写卡系统世界书创建修复**:修复了在自动写卡界面创建新世界书时,因占位符 `'new'` 未被正确处理导致创建失败的 Bug。
- 修复了“Amily2 提示词链编辑器”中四个全局按钮(全部保存、导入配置、导出配置、恢复全部)点击无效的问题,补充了相应的事件绑定和处理逻辑。
- **表格系统解析器修复**:修复了 `core/table-system/executor.js``tryParseObject` 函数的正则解析 Bug。原正则在处理包含逗号和数字的字符串`"比分变成了 2, 1:0"`)时会错误截断字符串导致数据损坏。现已引入字符串占位符机制,确保解析的健壮性。
- **分步填表逻辑死结修复**:修复了 `core/table-system/secondary-filler.js` 中因倒序扫描导致的“遗留楼层被永久挤出”的 Bug。将扫描逻辑改为正向扫描确保最老的未处理消息被优先处理解决了填表失败后继续聊天导致的数据断层问题。
- **分步填表上下文丢失修复**:修复了 `core/table-system/secondary-filler.js``getHistoryContext` 函数的切片索引错误Off-by-one error确保紧挨着目标楼层的那条关键历史消息能够被正确提取并发送给 AI提供完整的上下文因果关系。
以下为更新内容:
- **硅基生图模块集成**
- 在“附加功能”面板中新增“硅基生图”入口,与“前端渲染”按钮平行排列。
- 支持在聊天消息中通过 `[sfigen: 提示词]` 标签一键生成图片,并支持多张图片切换、放大预览和保存到本地。
- 修复了编辑消息后生图 UI 重复渲染或消失的问题,确保 DOM 更新的稳定性。
- 修复了图片 URL 无法正确保存到聊天记录的问题。
- **自动构建器优化**
- **多会话管理**:支持创建、切换和删除多个独立的构建会话,方便用户同时进行多个角色的构建任务。
- **状态持久化**:动态规则、聊天记录和任务状态现在会保存在本地存储中,刷新页面或关闭窗口后不会丢失。
- **提示词优化**:将 `core/table-system/settings.js``PresetSettings/config.js` 中的“硬破限”提示词(如“酒馆国家协议”、“无上法则”等强制性越狱词汇)全面修改为温和的“软引导”提示词,引导 AI 作为客观中立的专业分析助手进行工作。
- **预设版本更新提示**:在 `PresetSettings/prese_state.js` 中添加了提示词版本检测逻辑。当用户首次更新到包含新版“软引导”提示词的版本时,会弹出友好的 UI 提示框,允许用户选择“一键更新”恢复默认最新提示词,或“保留自定义”维持原有设置。
- **填表失败自动重试机制**
- **批量填表**:修复了 `core/table-system/batch-filler.js` 中当 AI 返回空内容或未包含有效 `<Amily2Edit>` 指令块时,系统误判为“处理成功”并跳过该批次的 Bug。现在会正确抛出错误并触发自动重试。
- **分步填表**:在 `core/table-system/secondary-filler.js` 中新增了自定义重试逻辑。用户可以在 UI 面板中设置“最大重试次数”,当副 API 填表失败如网络错误、AI 偷懒等)时,系统会自动进行重试,提高了分步填表的容错率。
- **史官系统 (Historiographer) 优化**
- **Ngms API 强制参数**:在 `core/api/Ngms_api.js` 中,移除了旧版 UI 中的温度和最大 Token 设置,强制将默认温度设为 `1.0`,最大 Token 设为 `30000`,以确保总结任务的稳定性和完整性。
- **总结失败自动重试**:在 `core/historiographer.js` 中为“微言录”和“宏史卷”的生成过程添加了自定义重试逻辑。用户可在 UI 中设置重试次数,当 AI 返回空内容时,系统会自动等待并重试,降低了因 API 波动导致的总结失败率。
- **时间跨度标识优化**:修改了 `utils/settings.js` 中的”微言录”和”宏史卷”提示词,强制要求 AI 在提取时间时加入相对时间跨度标识 `(Xd)`(如 `2023-09-15(2d)-星期五-15:00`),以解决长篇剧情中因缺乏具体日期导致的时间线混乱问题。
### 2.1.0 (2026/04/18)
以下为更新内容:
- **提取规则配置通用化重构**
- `RuleProfileManager` 新增功能槽SLOTS+ 统一分配assignments机制参照 `ApiProfileManager` 的架构模式,将提取规则预设存储在 `extension_settings`settings.json中实现云同步。
- 定义四个功能槽:`table`(表格提取)、`historiography`(史官/总结提取)、`condensation`(翰林院·浓缩)、`queryPreprocessing`(翰林院·查询预处理)。
- 新增 `resolveSlotRuleConfig(slot)` 统一解析接口,优先读取 assignments 分配,回退兼容旧字段。
- 新增一次性迁移逻辑:自动将旧版分散的 `table_rule_profile_id``historiographyRuleProfileId``condensation.ruleProfileId``queryPreprocessing.ruleProfileId` 迁移到统一的 `ruleProfileAssignments`
- **消费方 UI 统一改为下拉选单**
- **表格系统**移除”启用独立提取规则”开关和”配置规则”弹窗替换为规则配置下拉选单onChange 即时生效。
- **史官系统**:移除标签提取开关、标签输入框和”内容排除”弹窗按钮,替换为规则配置下拉选单。
- **翰林院(浓缩 + 查询预处理)**:移除各自的规则配置弹窗按钮,分别替换为独立的规则配置下拉选单;修复了翰林院旧弹窗存在的 HTML 注入隐患。
- 新建/编辑规则统一通过「规则配置中心」面板完成。
- **遗留代码清理**
- 删除 `openTableRuleEditor`table-bindings.js`showHistoriographyExclusionRulesModal`historiography-bindings.js`showRulesModal` / `saveHanlinRuleProfile` / `syncHanlinLinkedRuleProfile`hanlinyuan-bindings.js等旧弹窗函数。
- 删除 `saveHistoriographyRuleProfile` / `syncHistoriographyLinkedRuleProfile` 等旧同步函数。
- 移除 `table_independent_rules_enabled` 开关判断,批量填表和分步填表改为检查 resolved config 是否有实际内容。
- 修复 `previewCondensation` 引用已移除 DOM 元素(`hly-tag-extraction-toggle` / `hly-tag-input`)的问题,改为从 resolved config 读取。