Skip to content

Repository files navigation

DSH Release Notes Hub (dsh-java-release)

多产品发布中枢(Release Notes Hub)——一个运行在 DeepSeek Harness 之上的独立 AI 产品。统一管理多个产品的版本说明,一键生成公告/推送/邮件三渠道文案变体(草稿),发布前缺失检查与时间线回顾。

红线:只生成草稿,不直接对外发布任何渠道——公告页/推送平台/邮件系统都必须由负责人人工走官方后台操作。

架构

┌────────────────────────────┐        ┌──────────────────────────┐
│  dsh-java-release-app      │  SSE   │  DeepSeek Harness        │
│  Spring Boot 3 (:8121)     │──────▶│  127.0.0.1:8090          │
│  - 产品/版本 REST API      │        │  - LLM Agent 编排        │
│  - AI 对话(转发 harness)  │◀──────│  - Java Native Plugin    │
│  - 发布工作台 Web UI       │  tool  │    dsh-java-release-     │
└────────────────────────────┘ calls  │    plugin(5 个工具)     │
                                      └──────────────────────────┘
  • app(端口 8121):REST API + Web UI + SSE AI 对话(转发 harness /api/agent/stream)
  • plugin(Java Native):5 个工具,以 plugin__dsh-java-release-plugin__<tool> 暴露给 AI

5 个插件工具

工具 作用
rh_list_products() 产品清单:团队、发布次数、最新版本、渠道文案覆盖率
rh_add_release(product, version, date, highlights, fixes, breaking) 登记版本说明(版本号 x.y[.z]、highlights 必填、同版本不可重复)
rh_channel_variants(product, version) 渠道文案变体:公告(markdown)/推送(一句话)/邮件(主题+正文),均为草稿
rh_missing_check() 缺失检查:无版本记录的产品 / 未生成渠道文案的版本 / 含破坏性变更但缺迁移提示
rh_timeline() 发布时间线:按日期倒序,附亮点/修复数/破坏性变更/文案就绪标记

Web UI

  • 产品面板:产品清单(发布数/最新版本/文案覆盖率徽章)
  • 时间线面板:全部版本倒序时间线(文案就绪/缺失标记、破坏性变更高亮)
  • 缺失面板:待处理项统计 + 分类明细
  • AI 对话:让 AI 登记版本、生成渠道文案、巡检缺失
  • 登记版本弹窗:highlights/fixes/breaking 逐行录入

REST API

方法 路径 说明
GET /api/products 产品清单(含发布统计)
POST /api/products 新增产品 {name, team}
POST /api/releases 登记版本 {product, version, date, highlights, fixes, breaking}
POST /api/releases/variants 生成渠道文案 {product, version?}
GET /api/releases/missing 缺失检查
GET /api/releases/timeline 发布时间线
POST /api/assistant/stream SSE AI 对话 {agentId, message}

快速开始

# 1. 构建
mvn package -DskipTests

# 2. 启动 app(确保 harness 已在 127.0.0.1:8090 运行)
SERVER__PORT=8121 java -jar dsh-java-release-app/target/dsh-java-release-app-0.1.0-SNAPSHOT.jar --server.port=8121

# 3. 安装插件到 harness
curl -X POST http://127.0.0.1:8090/api/harness/plugins/install -H 'Content-Type: application/json' -d '{
  "pluginId": "dsh-java-release-plugin",
  "jarName": "dsh-java-release-plugin-0.1.0-SNAPSHOT.jar",
  "displayName": "Release Notes Hub",
  "pluginVersion": "0.1.0",
  "runtimeType": "JAVA_NATIVE",
  "sourcePath": "'$PWD'/dsh-java-release-plugin/target/dsh-java-release-plugin-0.1.0-SNAPSHOT.jar",
  "entrypoint": "cn.xiaofuge.dsh.cn.xiaofuge.dsh.com.dsh.release.plugin.DshReleaseNotesHubPlugin",
  "installMode": "REPLACE"
}'
curl -X POST http://127.0.0.1:8090/api/harness/plugins/activate -H 'Content-Type: application/json' -d '{"pluginId":"dsh-java-release-plugin"}'

# 4. 打开 UI
open http://127.0.0.1:8121

E2E 测试

NO_PROXY='*' python3 release_hub_e2e.py

33 项断言覆盖:种子数据、产品/版本登记校验(重名 409、坏版本号 400、未知产品 404、空 highlights 400、重复版本 409)、三渠道文案变体(公告 markdown/推送一句话/邮件主题+正文、草稿警示)、覆盖率更新、缺失检查(无版本产品/未生成文案)、时间线(倒序/就绪标记/breaking)、SSE AI 全链路(点名调用插件工具、拒绝 shell 绕路、拒绝直接对外发布并提供人工路径)。

截图

文件 内容
screenshots/01-home.png 发布工作台:4 个产品清单(发布数/最新版本/文案覆盖率)
screenshots/02-ai-drawer.png AI 真实调用 rh_channel_variants + rh_missing_check:三渠道草稿 + "不直接发布"警示 + 缺失项
screenshots/03-safety.png AI 拒绝直接发布到官网/群发邮件:"必须由负责人通过官方系统操作",给出人工复核路径

数据

发布数据持久化在 ~/.dsh-java-release/releases.json(首次启动自动写入 3 个种子产品与 3 条版本记录)。

About

DSH Release Notes Hub: 多产品发布中枢/渠道文案变体(草稿)/缺失检查/时间线 - Java Native Plugin 独立 AI 产品,不直接对外发布

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages