0.6.0 - Winter is Coming
新功能
- Case Relationships:Case 详情新增 Related Cases 标签页,支持 Related、Duplicate of、Parent of 三种弱关联类型和 500 字以内备注,并提供关联候选建议;关联为弱关联,不影响 Dashboard 统计、案件数量、路由或 Case 生命周期。关联的创建、修改和删除写入审计日志,Agent API 同步开放关系读写接口。
- Custom Variables:Custom Definitions 新增 Variables 标签页,支持 string、integer、float、boolean、list、dictionary 六种类型的受管变量,可启用或停用。敏感变量仅限 String 类型,API 不回显取值,取消敏感标记需要二次确认;自定义 Module 和 Playbook 通过
self.get_variable("KEY")读取已启用变量。list 和 dictionary 值提供 CodeMirror JSON 编辑器。 - Worker Health:五类后台 Worker(Agentic Module、Case Analysis、Playbook、ELK Action、Dashboard Cache)每 10 秒向 Redis 写入心跳,30 秒未更新判定为失联。Settings → Workers 页面(Admin)展示各 Worker 状态,Redis 不可用时接口返回 503。
- Playbook 执行可观测性:Playbook 记录
started_at、finished_at并在列表中展示运行时长;运行详情新增消息流,展示执行过程中的结构化消息;Worker 中途退出时自动写入中断备注。
优化
- Playbook 运行消息在落库前做脱敏处理,
Authorization头和 password、token、api_key、secret 赋值会以***替换,单条消息截断到 1000 字符。 - Case 关系体验细化:修正关系列表交互、候选建议和关系约束校验,禁止自关联,同一对案件只保留一条关系。
- 前端数据表格在容器内填满可用高度,消除多余空白和滚动。
- 后端依赖更新(
uv.lock)。 - 前端新增
@uiw/react-codemirror、@codemirror/lang-json依赖,用于自定义变量的 JSON 编辑。
修复
- 修复宽表格在页面中未填满可用高度的问题。
部署和发布工程
- Compose 生命周期脚本重整:
init.sh初始化、doctor.sh健康自检、backup.sh备份、restore.sh恢复、upgrade.sh受管升级,中英文 README 重写。 - 受管升级:在已解压的新发布包目录执行
./scripts/upgrade.sh,自动从.env.example读取目标镜像标签更新.env、拉取镜像、执行数据库迁移、启动服务并自检。 .env.example补全所有配置项注释,新增ASP_DOCTOR_WAIT_SECONDS(doctor.sh等待服务就绪的最长时间)和DJANGO_LOG_LEVEL_DJANGO(Django 框架日志级别)。- 发布一致性检查覆盖 CLI 版本、Compose 镜像标签、快速开始文档生成块、发布说明页面和 VitePress 导航;CI 校验发布包内容,禁止开发样例进入 custom 模板;发布包保留脚本可执行权限。
- Compose 发布包和快速开始文档默认使用 0.6.0 镜像标签。
升级说明
支持从 0.5.2 直接升级到 0.6.0,不支持从更早版本直接升级,也不提供数据库降级;回滚依赖升级前的备份。
先备份:
bash
./scripts/backup.sh解压 0.6.0 发布包覆盖现有部署目录后执行升级:
bash
cd asp-compose
./scripts/upgrade.shupgrade.sh 会更新 .env 镜像标签、拉取镜像、执行迁移、启动服务并自检。本版本包含 4 个数据库迁移:Case Relationship 表、Playbook 开始/结束时间字段、Custom Variable 表和变量类型字段,均为新增结构,可在已有数据上直接执行。
如果维护了自定义 Compose 文件,需要同步合并 .env.example 的新增配置项。
如果需要使用 CLI,可以通过 pipx 安装:
bash
pipx install asp-cli==0.6.0如果本机已经安装过 asp-cli,可以升级到最新版本:
bash
pipx upgrade asp-cli也可以强制安装指定版本:
bash
pipx install asp-cli==0.6.0 --force部署边界保持不变:唯一正式支持的拓扑是单主机 Docker Compose,每种后台 Worker 正式支持一个实例;重复实例会互相覆盖 Worker Health 状态。
开发者笔记
- Case Relationship 使用排序后的 case id 对生成
pair_key唯一约束,禁止自关联,同一对案件只允许一条关系;关系方向仍由 source/target 表达。 - Playbook 运行状态更新使用
suppress_audit避免高频审计噪音;Worker 心跳等高频健康遥测不写 AuditLog。 - 自定义变量统一经
apps.settings.custom_variables.get_custom_variable读取,只返回 enabled 的变量;敏感变量的取值不会出现在 API 响应中。 - Worker Health 心跳写入 Redis 的
worker-health:v1:{worker_type}哈希,健康状态聚合在apps.common.worker_health中实现,不依赖数据库。