Files
memory-manager-concurrent/CHANGELOG.md
user 6078f85d06 feat: v0.5.0 - 总结世界书拆分优化、Part调试面板、Amily表格并发等
主要更新:
- 总结世界书并发拆分功能(自动检测约5万字拆分为Part)
- Part调试面板
- Amily表格并发填充模块(src/table-filler/)
- 合并去重开关
- 内置默认独立模板
- 多主题支持优化
- 添加.gitignore排除不必要文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 01:46:18 +08:00

345 lines
14 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.
# Changelog
本文档记录所有重要的版本变更。
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
---
## [Unreleased]
---
## [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 中原有指令与用户模板重复的问题
- 替换前先清理原有的 `<Instructions for filling out the form>``<需要更新的旧表格>` 标签
- **修复**:独立模式模板注入位置错误
- 修复用户模板被插入到错误位置的问题
- 改用 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}}` 占位符
- **新增**:标签精准替换功能(`<Instructions for filling out the form>`
### 代码优化
- **优化**:表格拆分算法改进,支持多种格式解析
- 完整格式:`* 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**
- 配置存储改<E582A8><E694B9>使用 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