Commit Graph
21 Commits
Author SHA1 Message Date
sunny-335 207a013239 chore: v1.4.1 重写README、清理死代码、更新文档
- 重写README.md,精简结构,添加AI辅助开发声明(GLM/Qwen/Doubao/MIMO)

- 清理6项死代码: WhitelistService.isSuperAdmin、PersonaResponse record、AiBadgeHeadProcessor空操作类、utils/api.ts、utils/gravatar.ts、canvas-confetti依赖

- 版本号更新为1.4.1

- 更新CHANGELOG.md添加v1.4.1条目
2026-07-12 10:01:11 +08:00
sunny-335 3da2929304 feat: v1.4.0 黑白名单批量操作、页面AI回复开关、配置导入修复及多项优化
- 黑/白名单支持批量选择、全选、批量添加/移除

- AI角色提示词改为人格提示词,留空时使用基础配置personaIdentity

- 最大重试次数/对话轮次/速率限制移至基本设置,滑条改为输入框

- 新增语言要求提示词模块,提示词均为可选项留空使用默认值

- 删除回复质量自学习功能

- 新增全局页面AI回复开关(默认关闭)

- 实时刷新偏好通过localStorage持久化(默认开启10s)

- AI Foundation状态检测增强:区分未安装/未启用/未配置模型

- 首页概览新增已拦截数统计

- 手动清理支持自定义时间节点(默认7天前),二次确认弹窗

- 修复配置导入400错误(清除只读metadata字段)

- 删除管理员自动加入白名单文案(实际不支持)

- Comment Next冲突提醒修复

- 版本号更新为1.4.0
2026-07-07 08:06:04 +08:00
sunny-335 9a2bab98e2 fix: 修复瞬间内容获取、锁竞态、NPE风险等问题,移除实时刷新冗余时间显示
- ContextExtractor: 合并瞬间内容和发布时间为单次fetch,避免重复查询

- ContextExtractor: 瞬间分支补齐onErrorResume和defaultIfEmpty容错

- ContextExtractor: getCommentCount/fetchConversationHistory添加spec null检查

- AiReplyOrchestrator: 修复processFalsePositive锁竞态条件,统一存储获取时间

- AiReplyOrchestrator: 修复cleanupStaleLocks无法清理FP锁的问题

- LogsView: 移除实时刷新时间显示(等待中/刚刚更新/N秒前)及相关定时器

- LogsView: 移除冗余的三元表达式
2026-07-02 13:17:32 +08:00
sunny-335 34e2927021 feat: v1.3.0 瞬间插件适配、提示词模块化重构、实时刷新、安全审核失败关闭及多项Bug修复
- 新增瞬间插件(Moments)评论区适配
- 重构提示词组装为模块化架构
- 强化身份约束:禁止编造事实、泄露系统信息
- 日志页面增加实时刷新功能
- AI安全审核改为失败关闭策略
- 评论人昵称广告判定
- 修复PromptBuilder安全提示词可被绕过
- 修复processFalsePositive无去重锁和失败卡在PENDING
- 修复AiReplyCleanupService删除处理中记录
- 修复hasExistingReply错误时静默放行
- 修复Endpoint参数校验/搜索大小写/批量并发限制
- 修复LogsView实时刷新漏检状态变化和竞态
- 修复ContextExtractor/ReplyReconciler空指针风险
- 优化实时刷新:间隔可配置/滚动保留/用户操作后重置计时
- UI标签Prompt设置改为提示词设置
2026-07-02 12:39:35 +08:00
sunny-335 615935d947 fix: 修复重试计数、误报反馈、响应式阻塞等问题,版本号更新为v1.2.1
修复 AiReplyOrchestrator.retryOrFail 使用 .then() 导致 retryCount 失效;修复误报反馈端点 .subscribe() 过早触发覆盖 AI 回复;修复 PersonaResolver 在响应式上下文使用 .block() 阻塞线程;修复 penalize/approveOriginalComment 缺少乐观锁重试;修复误报反馈端点无法重试 FAIL 状态;修复 tag-NEUTRAL 缺少样式、handleTriggerAiReply 缺少加载保护;修复 filterKeyword 未做防抖、performCleanup 逻辑错误;优化 extractChoice 优先匹配违规类别避免误判
2026-07-01 10:52:28 +08:00
sunny-335 2693f88982 chore: 版本号更新为v1.2.0 2026-06-25 08:33:33 +08:00
sunny-335 1cd273494d feat: 误报反馈、上下文优先判断、FALSE_POSITIVE状态 (v1.1.3) 2026-06-25 07:56:16 +08:00
sunny-335 122069e221 fix: ui/build.gradle cross-platform pnpm command for Linux CI 2026-06-23 19:59:25 +08:00
sunny-335 e5f973c13d feat: 评论前置过滤(合规检测)与 AI Foundation 隔离加载 (v1.1.0) 2026-06-23 19:54:55 +08:00
bbb-lsy07andbbb-lsy07 1a2732fe19 feat: 彻底重构后台 UI 与对话上下文引用模块,全面优化移动端适配 (v1.0.4) (#6)
* feat: 对话气泡增加引用摘要模块,解决多用户混杂交谈上下文不清晰问题

- 后端 ConversationMessage Record 新增 quoteOwner/quoteContent 字段
- 后端 getConversation 方法重写,构建 Reply 映射字典溯源引用关系
- 前端 ConversationMessage 类型定义新增 quoteOwner/quoteContent
- 前端新增 truncateQuote 截断方法(复用 stripHtml,限30字符)
- 前端对话气泡模板渲染灰色引用条(bg-black/5 + border-l-2)

* chore: 补充 .gitignore 规则(*.jar、ui/dist 等)

* feat: Markdown 引用注入法 - AI回复自动拼接引用块(主题无关通用方案)

- 后端 CommentReplyPublisher.doPublish 重写,发布前查询被回复对象并拼接 Markdown Blockquote
- 新增 buildQuoteMarkdown 辅助方法,Jsoup 清除 HTML 后截断 40 字符生成引用
- 前端 LogsView 恢复简洁气泡模板,移除 quoteOwner/quoteContent 前端引用逻辑
- renderContent 新增换行符处理,确保 Markdown 引用块正确渲染

* style: 重写 LogsView.vue - 纯 Tailwind 标签替代 Emoji,移除 300+ 行自定义 CSS

- 状态/情感标签改用纯色 Tailwind 背景标签,去除所有 Emoji
- 删除 300+ 行自定义 CSS,全部替换为 Tailwind 原子类
- 对话弹窗 Markdown 引用块正则提取,去除气泡和机器人 Emoji
- 优化移动端响应式布局,解决排版错位问题

* style: 重写 SettingsView.vue - 纯 Tailwind 栅格布局,移除自定义 CSS

- 标签导航改用 Tailwind flex + overflow-x-auto
- 所有设置面板(basic/persona/model/prompt/cleanup)改用 Tailwind 原子类
- 开关改用 peer-checked 伪类实现,移除自定义 toggle CSS
- 滑块刻度改用 flex justify-between 实现
- 侧边栏 lg:sticky lg:top-24,移动端自然折叠到底部
- 弹窗(评论者选择/角色编辑)改用 fixed inset-0 + backdrop-blur
- 删除 600+ 行自定义 CSS

* refactor: 返璞归真 - 剥离 Markdown 注入,利用 Halo 原生层级回复

- 后端 CommentReplyPublisher 删除 buildQuoteMarkdown 和 Markdown 拼接逻辑
- AI 回复直接存入纯净文本,由 Halo 原生 quoteReply 字段渲染前台层级关系
- 前端 ConversationMessage 恢复 quoteOwner/quoteContent 字段
- 前端对话弹窗添加原生 Tailwind 引用摘要框(灰色 border-l-[3px])
- 简化 renderContent,删除 Markdown 引用正则匹配

* chore: 版本号升级至 1.0.1,强制刷新 Halo 前端缓存

- plugin.yaml version: 1.0.0 -> 1.0.1
- build.gradle version: 1.0.0 -> 1.0.1
- LogsView truncateQuote/renderContent 增加历史 Markdown 引用文本清理正则
- 防止旧版测试数据 (💬 **@某人**:) 在界面套娃显示

* style: 彻底重写 LogsView & SettingsView - 原生 Scoped CSS 替代 Tailwind

- LogsView.vue: 移除所有 Tailwind 类,改用 <style scoped> 原生 CSS
- SettingsView.vue: 移除所有 Tailwind 类,改用 <style scoped> 原生 CSS
- 标签配色、气泡样式、引用框全部使用纯 CSS 实现,避免 Halo 主题冲突
- 版本号升级至 1.0.2 强制刷新前端缓存

* feat: SettingsView 完整功能版 - AI角色/数据清理/导入导出

- 5个设置面板:基本设置、AI角色、模型设置、Prompt、数据清理
- AI角色:CRUD、Gravatar头像、性别/唤醒词/默认角色
- 数据清理:自动清理开关、保留天数滑块、手动清理
- 导入导出:JSON配置导入导出
- 评论者黑名单弹窗选择
- 全部使用原生 Scoped CSS

* chore: 版本号升级至 1.0.3

* v1.0.4: 美化 LogsView 和 SettingsView UI,优化引用框样式与移动端适配

---------

Co-authored-by: bbb-lsy07 <bbb-lsy07@users.noreply.github.com>
2026-06-21 12:20:25 +08:00
sunny-335 2c88ad6fb9 feat: v1.0.0 - 唤醒词、性别配置、身份强化、移动端适配、Bug修复 2026-06-18 22:40:00 +08:00
sunny-335 a9dd1c14bc feat: 5级情感分析、日志UI优化、页面链接支持、v1.0.0-b26cea 2026-06-18 19:58:46 +08:00
sunny-335 77e3bd36c5 refactor: 全面优化完善 - ObjectMapper注入、索引优化、代码去重、Bug修复 2026-06-18 19:42:30 +08:00
sunny-335 c3e003a572 feat: streamline dashboard, fix docs, optimize UI width
- Remove AI角色 quick action, keep only 回复日志/插件设置/刷新数据
- Fix LogsView filter/batch bar width to match content area (mx-4 mt-2 -> m-4 mb-0)
- Fix docs: Halo version 2.23->2.25, GitHub link nxxy335->sunny-335, Cravatar link, variable name {{conversation}}->{{conversation_history}}
- Add missing settings docs (maxConversationRounds, rateLimitPerMinute, enabledPresets)
- Update README: remove version display, update changelog
- Update version to 1.0.0-beta.2-r8k4n2
2026-06-17 22:03:35 +08:00
sunny-335 be6a01a06e fix: logs filter dropdown text overlapping with caret
- Change select padding from px-3 to pl-3 pr-8 to reserve space for the native dropdown arrow
- Update version to 1.0.0-beta.2-q9x3m7
2026-06-17 21:10:06 +08:00
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
sunny-335 d737cbc8f1 feat: v1.0.0-beta.1 - AI Foundation reflection integration and draft mode fix 2026-06-16 23:20:51 +08:00
sunny-335 72726da9b8 feat: 草稿模式修复、回复编辑、预设扩展、多语言回复、文档全面更新
- 修复草稿模式下仍自动发布评论的Bug
- 新增草稿模式下编辑AI回复内容功能
- 新增3个Prompt预设(技术解答型/鼓励型/知识科普型)
- 新增多语言回复指令
- 新增日志页面时间范围筛选
- 新增AI角色排序功能
- 新增配置导入/导出功能
- 修复processingLocks内存泄漏
- 修复OptimisticLockingFailureException缺少重试
- 修复publishReply空Mono导致审核挂起
- 移除近7日回复趋势卡片
- 版本号更新至0.0.0-ygkszvd
- 全面更新插件文档
2026-06-16 18:52:42 +08:00
sunny-335 6f1cb4b037 feat: 多AI角色支持、Bug修复、文档更新 2026-06-15 12:05:46 +08:00
sunny-335 ef3cdf4bdc feat: 增强插件可靠性与可用性
- 修复 PromptBuilder ClassLoader 冲突,改为 ConfigMap 直读
- 实现失败重试机制,指数退避策略
- 评论者黑名单支持邮箱匹配,可从评论列表选择
- 日志页面支持按状态/情感筛选和关键词搜索
- AI角色邮箱配置增加 Gravatar 头像实时预览
- 插件依赖声明修正:ai-foundation 改为必须依赖
- 新增定时清理旧记录功能,可配置保留天数
- 更新 README 和 VitePress 文档
2026-06-14 23:07:22 +08:00
sunny-335 e03ba7a20d first commit 2026-06-14 22:28:19 +08:00