Files
plugin-comment-ai-autopilot/docs/CHANGELOG.md
T
sunny-335 767efdccbb feat: v1.0.0-beta.2 - ExtensionGetter integration, UI revamp, bug fixes
- Replace cross-ClassLoader reflection with ExtensionGetter.getEnabledExtension(AiModelService.class)
- Declare optional pluginDependencies (ai-foundation?: "*") and recommended-apps annotation
- Use OutputSpec.choice for structured classification (sentiment, review safety/quality)
- Use GenerateTextRequest with maxRetries=2 for reliable chat generation
- Add multi-turn conversation context (conversation_history placeholder)
- Fix RateLimitService thread leak (implement DisposableBean)
- Two-stage AI review: safety check + 1-5 quality score mapped to 0-100
- Remove redundant dashboard cards (sentiment distribution, 7-day trend, avg score)
- Redesign settings page with tabbed navigation (basic/persona/model/prompt/cleanup)
- Fix settings layout (move tab bar out of grid container)
- Fix button icon+text alignment via :deep(.btn-content) inline-flex
- Add review score grade labels (excellent/good/fair/poor) in logs
2026-06-17 19:40:10 +08:00

105 lines
5.0 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.
# 更新日志
## v1.0.0-beta.2
> 2026-06-17
### 改进
- **改用 ExtensionGetter 集成 AI Foundation**:通过 Halo 官方推荐的 `ExtensionGetter.getEnabledExtension(AiModelService.class)` 获取 AI 服务,替换原先的跨 ClassLoader 反射调用方式([Issue #1](https://github.com/sunny-335/plugin-comment-ai-autopilot/issues/1)
- **声明插件依赖**:在 `plugin.yaml` 中声明可选插件依赖 `ai-foundation?: "*"`,建立正确的插件依赖关系,插件在未安装 AI Foundation 时仍可正常加载
- **应用市场推荐**:新增 `store.halo.run/recommended-apps` 注解,安装本插件后可在应用市场推荐安装 AI Foundation 插件
- **使用结构化输出**:情感分析和内容审核改用 AI Foundation 的 `OutputSpec.choice` 结构化输出,替换原先的字符串匹配解析,分类更可靠
- **使用 GenerateTextRequest**AI 调用改用 `GenerateTextRequest` 并设置 `maxRetries=2`,由 SDK 自动重试瞬时错误
- **简化 languageModel 调用**:直接传递 modelName 参数,由 SDK 处理空值(使用默认模型),无需手动判断
- **多轮对话上下文**:AI 对话续接时自动获取之前的回复历史并注入到 Prompt 中,AI 能更好地理解对话上下文
- **优化 AI 自审核评分机制**:审核改为两阶段评估(安全检查 + 质量评分 1-5 分),评分映射到 0-100 分(0/30/50/70/85/100),替代原先的二值评分(0/100),评分更有区分度
- **精简仪表盘**:移除情感分布、近7日回复趋势、平均审核评分三个卡片,保留核心的回复概览和快捷操作,界面更简洁
- **优化设置页面布局**:页面头部按钮使用 VSpace 统一排版并添加图标;侧边栏保存卡片高亮显示,新增"未保存"状态指示器;保存/重置按钮添加图标
- **优化日志页面评分显示**:评分增加等级标签(优秀/良好/一般/较差),更直观
### Bug 修复
- **修复 RateLimitService 线程泄漏**:清理线程未在插件停止时关闭,实现 `DisposableBean` 正确释放资源
- **修复 ReviewService 提示词不匹配**:审核提示词要求"重新生成"但代码未使用重新生成的内容,移除误导性指令
---
## v1.0.0-beta.1
> 2026-06-16
### 新功能
- **AI Foundation 反射集成**:通过运行时反射调用 AI Foundation 插件的 `AiModelService`,无需 `pluginDependencies`,彻底解决跨 ClassLoader 类加载问题
- **草稿模式**:关闭"自动发布"后,AI 回复将保存为草稿,需站长审核后才发布
- **多 AI 角色支持**:支持配置多个 AI 虚拟角色,每个角色有独立的提示词、头像和模型
- **提示词预设**:内置多种回复风格预设(专业型、幽默型、简洁型等),可自由组合
- **每日回复趋势图**:首页新增每日回复数量柱状图,支持 7 天/30 天/全部切换
- **对话历史查看**:支持查看 AI 回复的完整对话上下文
### Bug 修复
- 修复草稿模式下审批失败("AI回复已存在,无法重复发布")的问题
- 修复批量审批时同样的去重检查冲突问题
- 修复 AI Foundation 不可用的问题(`PluginManager` 无法通过 Spring 依赖注入获取)
- 修复 `DefaultSpringPlugin` 包级私有类反射访问权限问题
- 修复 CI 构建失败(`gradlew` 缺少执行权限)
### 改进
- 审批逻辑优化:先查找已有 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 回复生成核心逻辑