From e6839b4aad616eec2e3d98f9b10e0938a2975602 Mon Sep 17 00:00:00 2001 From: sunny-335 Date: Wed, 17 Jun 2026 23:13:45 +0800 Subject: [PATCH] fix: auto-publish log showing unpublished, merge changelog, version to 1.0.0-beta.2 --- build.gradle | 2 +- docs/CHANGELOG.md | 67 ++++--------------- .../service/AiReplyOrchestrator.java | 11 +-- src/main/resources/plugin.yaml | 2 +- 4 files changed, 21 insertions(+), 61 deletions(-) diff --git a/build.gradle b/build.gradle index 45ead7f..5fbbe66 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'top.nxxy335.commentaiautopilot' -version '1.0.0-beta.2-r8k4n2' +version '1.0.0-beta.2' repositories { mavenCentral() diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 268aeb9..5be4415 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -22,6 +22,7 @@ ### Bug 修复 +- **修复自动发布后日志显示未发布**:`generateAndPublish` 中 `Mono` 的 empty 信号触发 `switchIfEmpty` 导致 `publishReply` 被调用两次,第二次覆盖 `published=false` - **修复 RateLimitService 线程泄漏**:清理线程未在插件停止时关闭,实现 `DisposableBean` 正确释放资源 - **修复 ReviewService 提示词不匹配**:审核提示词要求"重新生成"但代码未使用重新生成的内容,移除误导性指令 - **修复设置页面按钮图标文字对齐**:通过 `:deep(.btn-content)` 设置 inline-flex 布局,图标和文字并排显示 @@ -33,15 +34,24 @@ ## v1.0.0-beta.1 -> 2026-06-16 +> 2026-06-05 ### 新功能 -- **AI Foundation 反射集成**:通过运行时反射调用 AI Foundation 插件的 `AiModelService`,无需 `pluginDependencies`,彻底解决跨 ClassLoader 类加载问题 +- **自动回复**:监听新评论,自动调用 AI 生成回复 +- **多语言适配**:根据评论语言自动用对应语言回复 +- **情感分析**:分析评论情感倾向,根据情感调整回复语气 - **草稿模式**:关闭"自动发布"后,AI 回复将保存为草稿,需站长审核后才发布 - **多 AI 角色支持**:支持配置多个 AI 虚拟角色,每个角色有独立的提示词、头像和模型 - **提示词预设**:内置多种回复风格预设(专业型、幽默型、简洁型等),可自由组合 -- **每日回复趋势图**:首页新增每日回复数量柱状图,支持 7 天/30 天/全部切换 +- **文章/页面级开关**:在文章编辑器中直接控制是否启用 AI 回复 +- **评论者黑名单**:屏蔽指定评论者,不触发 AI 回复 +- **安全审核**:AI 生成的内容经过安全审核,不合规内容自动拒绝 +- **Prompt 模板**:支持自定义 Prompt 模板,提供多种模板变量 +- **仪表盘统计**:显示回复数等统计信息 +- **日志筛选搜索**:按状态、情感筛选,关键词搜索 +- **数据清理**:自动清理超过指定天数的旧记录 +- **AI Foundation 集成**:使用 AI Foundation 插件提供的 AI 模型能力 - **对话历史查看**:支持查看 AI 回复的完整对话上下文 ### Bug 修复 @@ -57,54 +67,3 @@ - 审批逻辑优化:先查找已有 Reply 扩展再决定创建或更新 - 移除不必要的 `AiFoundationConfiguration` 配置类 - 前端 UI 优化:移除编辑功能、简化角色排序逻辑、清理无用代码 - ---- - -## v0.0.3 - -> 2026-06-15 - -### 新功能 - -- 多 AI 角色支持:支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词和 Gravatar 头像 -- 草稿模式初步实现:AI 回复可先存为草稿,管理员审核后再发布 -- 提示词预设:内置友好型、专业型、幽默型、简洁型预设风格 - -### 改进 - -- 增强插件可靠性与可用性 -- 文档全面更新 -- 前端 UI 优化 - ---- - -## v0.0.2 - -> 2026-06-10 - -### 新功能 - -- 自动回复:监听新评论,自动调用 AI 生成回复 -- 多语言适配:根据评论语言自动用对应语言回复 -- 情感分析:分析评论情感倾向,根据情感调整回复语气 -- 文章/页面级开关:在文章编辑器中直接控制是否启用 AI 回复 -- 评论者黑名单:屏蔽指定评论者,不触发 AI 回复 -- 手动触发:在评论管理页面对历史评论手动触发 AI 回复 -- 安全审核:AI 生成的内容经过安全审核,不合规内容自动拒绝 -- Prompt 模板:支持自定义 Prompt 模板,提供多种模板变量 -- 仪表盘统计:显示回复数、情感分布等图表 -- 日志筛选搜索:按状态、情感筛选,关键词搜索 -- 数据清理:自动清理超过指定天数的旧记录 -- AI Foundation 集成:使用 AI Foundation 插件提供的 AI 模型能力 - ---- - -## v0.0.1 - -> 2026-06-05 - -### 初始版本 - -- 基础插件框架搭建 -- 基本评论监听功能 -- AI 回复生成核心逻辑 diff --git a/src/main/java/top/nxxy335/commentaiautopilot/service/AiReplyOrchestrator.java b/src/main/java/top/nxxy335/commentaiautopilot/service/AiReplyOrchestrator.java index 7d6e3fe..93d3b57 100644 --- a/src/main/java/top/nxxy335/commentaiautopilot/service/AiReplyOrchestrator.java +++ b/src/main/java/top/nxxy335/commentaiautopilot/service/AiReplyOrchestrator.java @@ -231,12 +231,13 @@ public class AiReplyOrchestrator { } return publishReply(context, aiReply, replyRecord, reviewResult.score(), personaName); }) - .switchIfEmpty( - publishReply(context, aiReply, replyRecord, 100, personaName) - ) .onErrorResume(e -> { - log.warn("[Orchestrator] Review error, auto-passing: {}", e.getMessage()); - return publishReply(context, aiReply, replyRecord, 100, personaName); + // review() already handles errors internally (returns PASS), + // so this only fires for errors from publishReply/updateRecord. + // Do NOT re-call publishReply to avoid double-publish / overwriting published=false. + log.error("[Orchestrator] Error during review/publish for {}: {}", + context.commentId(), e.getMessage(), e); + return Mono.empty(); }); }); } diff --git a/src/main/resources/plugin.yaml b/src/main/resources/plugin.yaml index b37e7ab..e2b96f1 100644 --- a/src/main/resources/plugin.yaml +++ b/src/main/resources/plugin.yaml @@ -30,4 +30,4 @@ spec: url: "https://github.com/sunny-335/plugin-comment-ai-autopilot/blob/main/LICENSE" settingName: "comment-ai-autopilot-settings" configMapName: "comment-ai-autopilot-configmap" - version: "1.0.0-beta.2-r8k4n2" + version: "1.0.0-beta.2"