mirror of
https://github.com/Cola-Echo/memory-manager-concurrent.git
synced 2026-06-06 01:55:51 +00:00
Complete RMA system for tracking relationship dynamics in roleplay: - 10 new modules in src/rma/ (analyzer, memory-store, phase-manager, worldbook-sync, float-panel, confirmation-ui, timeline-view, etc.) - Three-layer model: phases → memories (4 types) → emotional texture - Post-processing AI analysis via CHARACTER_MESSAGE_RENDERED hook - Dynamic world book entry toggling/rewriting - Floating panel UI with 3 states (expanded/half/minimized) - User confirmation flow (every_turn/important_only/auto modes) - Settings panel integration with independent API config - chat_metadata.cola_rma persistence Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
15 KiB
15 KiB
Changelog
本文档记录所有重要的版本变更。
格式基于 Keep a Changelog, 版本号遵循 语义化版本。
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 名称显示
- 从
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
- 配置存储改<EFBFBD><EFBFBD>使用 SillyTavern 扩展设置 API
- 移除悬浮球,改为使用酒馆扩展菜单入口
- 新增世界书自动监听功能
- 发送消息前自动刷新世界书数据
v0.1.x
- 初始版本
- 基本的记忆检索和注入功能
- 进度条和任务管理
- 移动端适配