# Changelog 本文档记录所有重要的版本变更。 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 --- ## [Unreleased] --- ## [0.6.0] - 2026-03-31 ### RMA 关系记忆系统(全新模块) - **新增**:`src/rma/` 模块(10个文件),实现完整的关系记忆架构 - `config-loader.js` — 从角色卡 `extensions.cola_rma_config` 加载 RMA 配置 - `memory-store.js` — 基于 `chat_metadata.cola_rma` 的记忆存储管理 - `analyzer.js` — 后处理 AI 分析引擎,独立 API 调用提取关系变化 - `response-hook.js` — 监听 `CHARACTER_MESSAGE_RENDERED` / `MESSAGE_DELETED` 事件 - `phase-manager.js` — 六阶段关系管理(stranger→bond),支持回退 - `worldbook-sync.js` — 世界书条目同步(阶段互斥切换、质感改写、事件解锁) - `confirmation-ui.js` — 用户确认流程(每轮/仅重要/全自动三种模式) - `float-panel.js` — 悬浮面板 UI(展开/半折叠/最小化三态) - `timeline-view.js` — 记忆时间线视图 - **新增**:四种记忆类型 — breakthrough(⭐)、warmth(💛)、crack(⚡)、revelation(👁) - **新增**:RMA 设置面板 — 启用开关、确认模式选择、面板状态偏好、独立 API 配置 - **新增**:`ui/rma-panel.html` — RMA 悬浮面板 HTML 模板 - **新增**:RMA 面板 CSS 样式,兼容已有多主题系统 --- ## [0.5.0] - 2025-02-13 ### 总结世界书拆分功能优化 - **优化**:Part 1 复用原总结世界书的 API 配置 - 用户只需配置 Part 2、3、4... 的 API - 减少重复配置工作量 - **优化**:Part 配置界面统一 - 所有 Part 使用相同的完整配置弹窗 - 支持独立配置模型、API 地址、温度等参数 - **优化**:Part UI 样式统一 - Part 显示改为 `mm-chip` 样式,与记忆世界书分类一致 - 修复条目数和删除按钮挤在一起的布局问题 - **优化**:配置弹窗添加楼层+字符信息横幅 - 显示当前 Part 的楼层范围和字符数 - **修复**:发送前检查预览中 Part 名称显示 - 从 `Part floor_1_45` 改为 `Part 1 (1-45楼)` 格式 - 移除多余的 "(复用)" 标签 - **修复**:进度追踪器任务注册 - 启用拆分时正确注册每个 Part 为独立任务 - 修复进度条一直显示的问题 ### Part 调试与合并功能 - **新增**:Part 结果调试弹窗 - 在总结世界书标题栏添加调试开关(虫子图标) - 处理完成后显示各 Part 的原始返回内容 - 显示合并后的最终结果,方便排查问题 - **新增**:合并去重开关 - 在总结世界书标题栏添加去重开关(过滤器图标) - 开启时:同一楼层保留内容最长的事件 - 关闭时:相同楼层的内容放在一起,保持原始顺序 - 仅在拆分模式下可用,非拆分模式无去重逻辑 - **优化**:合并逻辑改进 - 移除按楼层排序,保持 AI 返回的原始顺序(按关联性排序) - 去重功能仅在拆分模式下生效,确保非拆分模式的多事件不被误删 ### 配置管理优化 - **优化**:清除旧数据功能保留拆分配置 - 清除旧数据时保留 `summaryPartConfigs`(Part API 配置) - 清除旧数据时保留 `summaryAutoSplit`(拆分功能设置) - 避免用户误操作丢失已配置的 Part API ### 记忆搜索助手优化 - **修复**:记忆搜索助手支持拆分模式 - 启用拆分时,记忆搜索助手也会并发处理多个 Part - 支持 Part 调试弹窗和去重开关 - 修复之前拆分模式下记忆搜索助手忽略拆分配置的问题 ### Amily 表格并发优化 - **新增**:内置默认独立模板 - 添加 `prompts/table-filler/default-independent-template.json` 内置模板 - 独立模式自动加载内置默认模板,无需手动配置即可使用 - 模板编辑界面显示"内置默认"状态标识 - 用户编辑后自动转为自定义模板保存 - **新增**:恢复默认模板按钮 - 自定义模板旁显示恢复按钮,可一键恢复内置默认 - 设置面板显示"使用默认 X 个"状态提示 - **修复**:独立模式提示词重复问题 - 修复 flowTemplate 中原有指令与用户模板重复的问题 - 替换前先清理原有的 `` 和 `<需要更新的旧表格>` 标签 - **修复**:独立模式模板注入位置错误 - 修复用户模板被插入到错误位置的问题 - 改用 indexOf 替代正则匹配,提高标签定位可靠性 - 移除导致提前注入的 fallback 逻辑 - **优化**:替换标签名提示文案 - 更新悬停提示,说明默认标签名和替换逻辑 ### UI 样式修复 - **修复**:图标切换按钮样式优化 - 拆分、去重、调试等开关按钮添加背景和边框 - 激活状态使用主题色填充,图标变白色 - 悬停效果更明显,与整体界面风格统一 - **修复**:输入框文字不可见问题 - 添加 `.mm-input` 通用样式类 - 修复"替换标签名"输入框白色文字在浅色背景不可见的问题 - 输入框颜色自动适配当前主题 - **优化**:标签过滤开关样式改进 - "提取模式"和"排除模式"改为按钮式开关 - 未启用时显示虚线边框和开关图标,更明显可点击 - 启用时显示实线边框和高亮背景 ### 代码修复 - **修复**:`request-collector.js` 文件编码损坏问题 - 重写文件修复 UTF-8 编码 --- ## [0.4.9] - 2025-02-12 ### 总结世界书并发拆分功能(新功能) - **新增**:自动检测与拆分 - 导入总结世界书时自动识别内容字数 - 约每 5 万字符自动拆分为一个 Part - 允许浮动范围 4~6 万字符,确保段落完整性 - 在段落边界(`---` 分隔符)处拆分,不切断任何段落 - **新增**:Part 列表 UI - 在主界面「总结世界书」区域下方显示拆分后的各个 Part - 每个 Part 显示楼层范围和字符数 - 配置状态指示:已配置(绿色)/ 未配置(黄色) - **新增**:Part 独立 API 配置 - 每个 Part 可点击配置独立的 API(复用现有配置弹窗) - 配置按 Part ID 保存,内容变化时自动匹配已有配置 - **新增**:功能开关 - 在总结世界书分组标题右侧添加开关 - 用户可选择是否启用拆分功能 - **新增**:并发触发与结果合并 - 触发时同时发送多个 Part 的 API 请求 - 合并所有 Part 的 AI 回复,按楼层排序去重 ### Amily表格并发增强 - **新增**:失败重试横幅通知(右下角 Win10 风格通知) - 支持用户选择"重试"或"放弃"失败的表格 - 重试成功后自动从失败列表移除 - **新增**:调试弹窗功能 - 发送前检查:显示每个表格的提示词内容 - 合并后检查:显示各表格原始响应和合并结果 - **新增**:多主题适配支持 - 暖灰棕、淡紫薰衣草、森林绿、玫瑰灰、静谧蓝灰 - 星空紫、星空蓝、星空黑(含星星点缀动画效果) ### UI 改进 - **优化**:提示词模式改为分段控制器(Segmented Control)样式 - **优化**:调试模式改为独立行的 iOS 风格开关 - **修复**:已配置表格支持点击行打开编辑弹窗 - **优化**:刷新表格列表按钮改为图标模式,悬停显示提示 ### 提示词处理优化 - **优化**:共享模式聚焦指令通用化(移除对预设阶段结构的依赖) - **新增**:独立模式 V2 - 按名称存储模板 - 表格重排序不再影响配置 - 支持 `{{tableData}}`、`{{tableName}}`、`{{tableIndex}}` 占位符 - **新增**:标签精准替换功能(``) ### 代码优化 - **优化**:表格拆分算法改进,支持多种格式解析 - 完整格式:`* 0:角色表\n【说明】...<角色表内容>...` - 内容标签格式:`<角色表内容>...` - 简化标签格式:`<角色表>...` - **优化**:移除填表模式检查,只检测请求特征 - **新增**:XHR 拦截支持(覆盖 `$.ajax` 调用) --- ## [0.4.8] - 2025-02-10 ### 新增功能 - **Amily表格并发**:为 Amily2 表格模块提供并发填表支持 - 拦截 Amily2 表格填充请求,将 7 个表格拆分后并发调用 API - 支持双模式架构:拦截模式(立即可用)+ Bus 联动模式(预留接口) - 支持两种提示词模式:共享模式(复用 Amily2 提示词)/ 独立模式(导入专用预设) - 每个表格可配置独立 API,未配置的使用默认 API - 自动检测 Amily2 填表模式兼容性(仅支持分步填表模式) - 通过 Amily2Bus 暴露 `TableFillerProxy` 接口供未来 Amily2 调用 ### 新增模块 - `src/table-filler/` - Amily表格并发核心模块 - `index.js` - 模块入口,双模式初始化 - `mode-manager.js` - 调用模式管理(auto/intercept_only/bus_only) - `bus-integration.js` - Amily2Bus 联动集成 - `interceptor.js` - API 拦截器 - `table-splitter.js` - 表格数据拆分与合并 - `prompt-handler.js` - 提示词处理器 - `parallel-executor.js` - 并发执行器 - `src/ui/components/table-filler.js` - Amily表格并发 UI 组件 ### 配置扩展 - `default-config.js` 新增 `tableFillerConfig` 配置结构 - `config-manager.js` 新增表格填表配置管理函数 ### UI 更新 - 设置面板新增「Amily表格并发」折叠卡片 - 支持启用开关、调用模式选择、提示词模式切换 - 支持默认 API 配置和表格独立 API 配置(弹窗式配置界面) - 支持并发预设 JSON 导入/导出 - 备注信息改为鼠标悬停提示,界面更简洁 --- ## [0.4.7] - 2025-02-04 ### 插件核心功能 - **修复**:插件拦截有几率失败导致插件无法启用的问题 - **新增**:主界面插件开关添加开启/关闭 toastr 通知提示 ### 剧情优化助手 - **修复**:API 界面选择多个世界书导致无法单独选择条目的问题 - **修复**:剧情优化助手界面无法额外选择世界书的问题 ### 发送前检查功能 - **修复**:未启用发送前检查功能导致插件无法正常生效的问题 - **改进**:默认显示流程配置按钮 ### 汇总检查功能 - **新增**:添加编辑功能,方便对最终发送内容进行修改 ### 多 AI 生成功能 - **新增**:预设提示词列表内容预览功能 - **修复**:单个提示词拖拽功能区域问题 - **修复**:提示词列表中聊天历史轮次设置显示问题 ### 标签过滤功能 - **新增**:用户消息与 AI 消息独立标签过滤 - **修复**:前文内容来源未应用标签过滤配置的问题 - `getRecentContext()` 现在正确使用 `filterContentByRole()` 处理新格式配置 - `processor.js` 中最近剧情截取也已修复 - `plot-optimize.js` 中剧情优化助手预览和面板的前文内容也已修复 - **改进**:在 `tag-filter.js` 添加调用位置汇总注释,方便后续维护 ### 世界书控制 - **新增**:世界书条目多选支持 - **改进**:统计卡片可折叠,优化界面空间 - **改进**:选中状态持久化保存 ### 配置管理 - **新增**:提示词/流程配置持久化缓存 - 加载优先级:持久化缓存 → 服务器 → 回退到缓存 - 解决网络不稳定时加载卡住或失败的问题 - 支持离线使用已缓存的配置 - **改进**:恢复默认功能从服务器强制刷新获取最新内置配置 - **改进**:提示词编辑器切换类型时不再卡顿 ### 技术细节 - `prompt-template.js`:使用 `BUILTIN_CACHE_PREFIX` 区分内置缓存和用户导入 - `flow-config.js`:使用 `FLOW_CONFIG_CACHE_KEY` 持久化默认流程配置 - `prompt-editor.js`:文件列表和内容加载均支持持久化优先 - `ui/panel.html`:添加作者栏区域注释,方便版本号定位 --- ## [0.4.1] - 2025-01-21 ### 重大变更 - **模块化重构**:将 18,000+ 行单文件拆分为模块化架构 - 使用 Webpack 打包,入口文件从 `index.js` 改为 `dist/index.js` - 打包后体积从 729KB 减少到 123KB ### 新增 - 完整的模块化源代码目录 `src/` - 模块参考手册 `docs/MODULE_REFERENCE.md` - 路径别名支持(@core, @config, @ui 等) ### 改进 - 提示词编辑器:修复另存为后切换类型文件消失的问题 - 提示词编辑器:优化文件类型识别(优先使用文件名前缀) - 移除 HEAD 请求探测(SillyTavern 不支持),改用 manifest.json - 修复 CSRF Token 缺失问题 ### 模块结构 ``` src/ ├── core/ # 核心模块(日志、常量、错误处理、ST API) ├── config/ # 配置管理(配置、默认值、世界书、提示词) ├── worldbook/ # 世界书处理(API、解析、刷新) ├── api/ # AI API 调用(适配器、各提供商) ├── memory/ # 记忆处理(处理器、合并、提示词构建) ├── hooks/ # 钩子拦截(发送按钮、拦截器) ├── ui/ # 用户界面(组件、弹窗、事件) └── utils/ # 工具函数(消息、标签过滤、模板) ``` --- ## [0.4.0] - 2025-01-20 ### 重大变更 - 切换到官方 Generate Interceptor API,替代不稳定的发送按钮 Hook 机制 - 修复浏览器刷新后消息拦截失败的问题 ### 新增 - 标准化数据持久化(使用 SillyTavern extensionSettings API) - 自动从 localStorage 迁移旧数据 - 事件监听器清理机制,防止内存泄漏 - 自定义错误类型和统一错误处理 ### 改进 - 移除约 200 行不稳定的发送按钮 Hook 代码 - 规范化 API 使用,添加详细注释说明 - 简化初始化流程 - 配置默认值递归合并,支持版本升级时自动补充新字段 - 插件开关移至主界面顶部,改为开关按钮样式 - AI 配置和配置管理改为折叠卡片样式 - 优化日志输出:Logger.warn 受 showLogs 控制 ### 修复 - 修复刷新后拦截器失效问题 - 修复数据持久化不一致问题 - 修复各折叠容器间距不一致问题 - 修复总结世界书内容读取问题 - 兼容 SillyTavern 的 disable 字段 - 修复总结世界书分类识别问题 ### 安全 - 修复 XSS 漏洞(使用 DOMPurify 清理 HTML) - 修复 CSRF 令牌问题 - 清理死代码和注释代码块 ### 文档 - 创建独立的 README.md 项目概览 - 创建 CHANGELOG.md 版本历史 - 完善 manifest.json 元数据 - 重组文档目录结构 --- ## 版本说明 v0.4.0 之前的版本为早期开发阶段,未维护详细更新日志。 从 v0.4.0 开始,所有变更将严格记录在此文档中。 ### 早期版本概要 **v0.3.0** - 插件开关移至主界面顶部 - 优化日志输出 - UI 样式改进 **v0.2.x** - 配置存储改��使用 SillyTavern 扩展设置 API - 移除悬浮球,改为使用酒馆扩展菜单入口 - 新增世界书自动监听功能 - 发送消息前自动刷新世界书数据 **v0.1.x** - 初始版本 - 基本的记忆检索和注入功能 - 进度条和任务管理 - 移动端适配 --- [Unreleased]: https://github.com/Cola-Echo/memory-manager-concurrent/compare/v0.4.0...HEAD [0.4.0]: https://github.com/Cola-Echo/memory-manager-concurrent/releases/tag/v0.4.0