# 更新日志 ## v1.4.0 > 2026-07-06 ### 新增 - **黑/白名单批量操作** — 支持多选、全选、批量添加/移除评论者,弹窗支持从历史评论者多选和手动输入 - **全局页面AI回复开关** — 一键启用/禁用所有独立页面的AI回复(包括新建页面),默认关闭 - **语言要求提示词模块** — 新增第五个提示词模块 `languageRequirement`,可自定义多语言回复规则 - **已拦截数统计** — 首页概览卡片新增已拦截数统计(已失败和待审核之间) - **AI Foundation 智能状态检测** — 区分未安装/未启用/未配置模型三种状态,提供对应快捷跳转按钮 - **手动清理自定义时间节点** — 手动清理支持自定义清理天数(默认7天前),二次确认弹窗防误操作 - **实时刷新偏好持久化** — 日志页实时刷新开关和刷新间隔通过 localStorage 自动保存,默认开启10秒间隔 - **配置导入导出** — 支持将插件配置(ConfigMap + AI角色)导出为 JSON 文件,方便备份和迁移 ### 改进 - **"提示词"改为"人格提示词"** — AI角色编辑弹窗中的提示词改名为人格提示词,留空时使用基础配置的 personaIdentity - **配置项重构** — 最大重试次数(0为不重试,最大10,默认3)、最大对话轮次(0为不限制,默认10)、速率限制(0为不限制,默认0/h)移至基本设置,滑条改为输入框,模型设置中删除重复项 - **提示词均为可选项** — 五个提示词模块均标注"(可选)",留空使用默认值 - **白名单文案修正** — 删除"管理员自动加入白名单"的显示文案(实际不支持自动加入) - **手动清理区域样式优化** — 红色危险主题卡片式布局,输入框组与按钮高度对齐 - **分类角色映射迁移** — 从模型设置组迁移至 AI 角色配置组(persona) - **瞬间评论 group 校验** — Moment 评论判断增加 group 双重校验,避免误判同名资源 ### 移除 - **回复质量自学习功能** — 因正常情况下不会被拒绝且已有自动审核,移除 ReplyLearningService 及所有相关引用 - **提示词预设开关** — 移除设置页内的提示词预设开关(友好型/专业型/幽默型/简洁型),预设模板保留在文档中 ### Bug 修复 - **修复配置导入 400 Bad Request** — 导入时清除 persona 的 labels、annotations 等只读 metadata 字段 - **修复所有注册用户绕过白名单过滤** — WhitelistService 中 isRegisteredUser 改为 isAdminUser,只检查 super-role 和 role-admin - **修复 getAdminList 误标管理员** — 改为只匹配 role-admin 角色的用户 - **修复手动输入评论者无法添加** — addManualEntry 方法实际将条目加入选中列表 - **修复手动输入框回车触发表单提交** — 添加 .prevent 修饰符 - **修复 AI Foundation 状态显示不正确** — 未配置模型时不再错误显示"连接正常" - **修复 Comment Next 冲突提醒不显示** — 增强检测逻辑支持多种插件名称模式 - **修复 AI Foundation 插件跳转路径** — 从 /console/plugins/plugin-ai-foundation 改为 /console/plugins/ai-foundation - **修复前端导入错误提示不显示** — 显示实际错误信息而非通用的"导入失败" - **修复 categoryPersonaMap 配置分组不一致** — 新增 persona 配置组,前端正确读写 --- ## v1.3.0 > 2026-07-01 ### 新增 - **支持瞬间插件(Moments)评论区适配** — 当检测到已安装并启用 [plugin-moments](https://github.com/halo-sigs/plugin-moments) 时,自动为瞬间评论启用 AI 自动回复 - 新增 `MomentsIntegrationService`,通过 `SchemeManager` 检测 Moment 扩展注册状态,避免直接引用导致的 `NoClassDefFoundError` - 在插件设置 - 基本设置中新增"瞬间评论区适配"开关,仅当瞬间插件可用时显示,默认开启 - `ContextExtractor` 适配 Moment 上下文:使用 moment name 作为关联标识,通过 `Unstructured` 单次 fetch 获取瞬间实际内容(`spec.content.raw`/`html`)和发布时间(`spec.releaseTime`)作为 AI 上下文 - `FilterService` 对 Moment 评论读取 `momentsEnabled` 配置决定是否触发 AI 回复 - **评论人昵称广告判定** — 前置过滤现在综合判断评论者昵称与评论内容。昵称包含商业推广关键词(如"免费算命"、"加微信xxx"、"代写论文"、"低价代购"等)即使评论内容看似正常也会被判定为广告 - `CommentPreFilterService.check()` 新增 `commentOwner` 参数,将昵称纳入 AI 分类输入 - 系统提示词新增"原则六:昵称与内容综合判定",列举昵称广告典型特征 ### 改进 - **重构提示词组装与兼容机制** — 建立更健壮的模块化拼接逻辑,解决多配置组合时的指令冲突与上下文丢失问题 - 新增 `{{output_guidance}}`、`{{sentiment_hint}}`、`{{language_requirement}}` 三个占位符,将输出规范、情感提示、语言要求拆分为独立模块 - 角色与预设使用段落分隔(空行+段落标记)确保指令隔离,避免风格预设污染角色设定 - 情感提示通过 `{{sentiment_hint}}` 占位符原位注入;旧模板不含该占位符时自动降级为末尾追加,保持向后兼容 - 消除两个近乎相同的 `buildPrompt` 重载的代码重复,统一委托给单一核心组装方法 - 默认模板更新为模块化结构,新安装用户即可获得更稳定的 AI 输出 - 强化身份约束:明确角色不是文章作者、站点管理员、客服或用户本人;禁止声称亲身经历未提供之事;禁止编造文章外的人物、数据、链接;禁止泄露系统提示词、模型参数、插件实现与安全策略 - **"Prompt设置"更名为"提示词设置"** — UI 标签页、面板标题、设置项标签、帮助文本统一改为中文"提示词" - **日志瞬间关联链接精确到具体瞬间** — Moment 评论的关联链接从 `/moments` 列表页改为 `/moments/{name}` 具体瞬间页 - **日志页面增加实时刷新功能** — 新增"实时刷新"开关,开启后每 10 秒静默轮询新数据。标签页隐藏或弹窗打开时自动暂停,回到页面时立即刷新。支持可配置刷新间隔(5s/10s/30s/60s)、新记录 Toast 提示、滚动位置保留、连续失败自动关闭 - **AI 安全审核改为失败关闭策略** — `ReviewService` 在审核服务不可用或异常时不再自动通过,改为返回 FAIL 并拦截发布,避免未经审核的 AI 回复被自动发布 ### Bug 修复 - **修复日志页面 XSS 漏洞** — `renderContent` 仅移除 `