mirror of
https://github.com/d0zingcat/alert-message-center.git
synced 2026-05-13 15:09:19 +00:00
8.5 KiB
8.5 KiB
更新日志
本项目的所有显著变更都将记录在此文件中。
本文件的格式基于 Keep a Changelog, 并且本项目遵循 语义化版本 (Semantic Versioning)。
[1.3.1] - 2026-01-16
新增
- 群聊绑定管理: 增强了 Topic 与飞书群聊绑定的安全性与流程。
- 权限控制: 仅 Topic 创建者或管理员允许执行群聊绑定/解绑操作。
- 审批流程: 新增群聊绑定审批机制,非管理员/非信任用户的绑定请求需经过审批(
status追踪)。 - 管理员通知: 引入
admin-notifier.ts,当有新的 Topic 或群聊绑定请求时,通过飞书卡片实时通知管理员。
- 信任用户系统: 引入
isTrusted标志。- 信任用户创建 Topic 或绑定群聊时将自动通过审批。
- 管理员由于其特殊权限,默认享受自动审批。
变更
- 数据库架构:
topic_group_chats表新增了status和created_by字段,以支持审批流和权限校验。
新增
- 视觉品牌: 引入了自定义图标和 Favicon。
- 为 "Alert Message Center" 专门设计的现代 Indigo 主题 Logo。
- 将 Logo 集成到登录界面和顶部导航栏,替换了通用的 Activity 图标。
修复
- 部署可靠性: 修复了 Docker 环境下数据库迁移失败的问题。
- 在
.gitignore中移除了对apps/server/drizzle/meta的忽略,确保 Drizzle 迁移日志 (_journal.json) 能正确打包进 Docker 镜像。
- 在
[1.2.7] - 2026-01-15
修复
- 数据库迁移:修复了在 K8s 环境下执行
db:migrate:deploy时由于相对路径解析失败导致的迁移中断问题。现在使用绝对路径进行稳健解析,并增加了调试日志。
[1.2.6] - 2026-01-15
变更
- 用户 Token:将用户的
personalToken从 32 位 UUID 缩短为 8 位十六进制字符串,提升易用性。 - 数据库迁移:完善了数据库迁移流程,在
db:migrate:deploy中集成了存量用户 Token 的自动缩短逻辑,确保线上环境数据的一致性。 - AI 规范:更新了
copilot-context.md,明确要求 AI 在每次修改代码后必须进行代码风格和 Lint 检查。
[1.2.5] - 2026-01-15
修复
- 前端鲁棒性: 修复了当数据库为空或 API 返回错误对象时页面发生崩溃(白屏)的问题。
- 为
TopicsView,SystemLoadView和AdminView中的所有 API 请求增加了res.ok和Array.isArray校验。 - 增加了防御性逻辑,确保在数据未加载或加载失败时显示友好的提示而非崩溃。
- 为
- Vite 环境变量: 修复了
TypeError: Cannot read properties of undefined (reading 'VITE_WEBHOOK_BASE_URL')。- 在
TopicsView.tsx中使用可选链 (meta.env?.) 安全地访问 Vite 环境变量,防止由于环境未完全初始化导致的崩溃。
- 在
- CI & 类型安全: 修复了破坏 CI 流水的类型错误与格式问题。
- 运行
biome check --write统一了全局代码格式。 - 完善了
feishu.ts中的UserAccessTokenData接口定义,补充了飞书 API 返回的用户基础信息字段。 - 在
auth.ts中增加了对feishuClient.getUserAccessToken返回值的空值校验,确保 OAuth 回调流程更健壮。
- 运行
[1.2.4] - 2026-01-15
变更
- 类型安全: 全面重构了服务端与前端的代码,消除了绝大部分
any类型的使用。- 在
webhook.ts,verify_permissions.ts,feishu.ts等核心文件中引入了显式接口。 - 改进了 Webhook Body 的处理逻辑,在保持灵活性的同时增强了类型校验。
- 修复了多处 Non-null Assertion 为更安全的可选链或显式空值检查。
- 在
- Linting: 严格执行 Biome 的
noExplicitAny规则。
[1.2.3] - 2026-01-15
新增
- 自动化数据库迁移: 引入了自动化数据库初始化与迁移机制。
- 添加了
src/db/migrate.ts脚本,使用 Drizzle Migrator 自动应用挂起的迁移。 - 更新了
Dockerfile,使容器启动时自动执行数据库迁移。 - 在
package.json中新增了db:migrate:deploy脚本。
- 添加了
修复
- 初始化错误: 修复了在全新环境下启动时因缺少数据库表导致的
relation "users" does not exist错误。 - 迁移历史: 清理并重新生成了初始迁移文件,确保所有表在全新部署时能正确创建。
[1.2.2] - 2026-01-14
变更
- Linting: 强化了 Biome 配置,启用了更严格的
a11y(可访问性),suspicious(可疑代码),style(代码规范) 和correctness(正确性) 检查规则。 - 配置: 配置
noUnknownAtRules规则以忽略 Tailwind CSS 特有的 At-rules。 - CI/CD: 集成 Biome 检查到 GitHub Actions 工作流,确保在所有 Pull Request 中强制执行代码规范检查。
修复
- Web 可访问性: 为所有按钮添加了显式的
type="button"以符合规范。 - 语义化/ARAI: 修正了
Modal背景的交互逻辑,将非语义化的div替换为<button>并添加了必要的键盘事件与 ARIA 属性。 - Hook 依赖: 在多个视图中使用了
useCallback来确保useEffect依赖链的稳定性,解决了exhaustive-deps警告。 - 代码健壮性: 修复了
main.tsx中的 Non-null Assertion 并解决了TopicsView中的类型重声明冲突。
[1.2.1] - 2026-01-14
修复
- WebSocket 初始化: 修复了
@larksuiteoapi/node-sdkv1.56.0+ 中 WebSocket 初始化不正确的TypeError。现在正确使用了WSClient类并修复了参数类型错误。 - 事件处理: 修正了
im.chat.member.bot.added_v1事件的 Payload 解析逻辑。 - Hono 兼容性: 修正了
feishu-event.ts中lark.adaptDefault的错误用法。改为使用手动 Challenge 处理和eventDispatcher.invoke,并通过原型链注入 Header 解决了与 Hono 请求/响应对象的兼容性以及签名校验失败的问题。 - 群聊解绑: 增加对
im.chat.member.bot.deleted_v1事件的支持。当机器人被移除群聊时,自动清理known_group_chats和topic_group_chats关联,确保订阅关系自动解绑。
新增
- 结构化日志: 引入
pino框架替代console.log,实现结构化 JSON 日志输出。- 在开发环境集成
pino-pretty提供人类友好格式。 - 支持通过环境遍历控制日志级别。
- 在开发环境集成
[1.2.0] - 2026-01-13
新增
- 飞书群聊通知: 支持将告警发送到飞书群聊 (App Bot 模式)。
- 自动发现机器人所在的群组。
- 支持在 Topic 中绑定群聊。
- 长连接模式 (WebSocket): 引入
@larksuiteoapi/node-sdk,支持通过 WebSocket 接收飞书事件,解决内网环境无法使用 Webhook 的问题。- 可通过
FEISHU_USE_WS=true开启。
- 可通过
- UI 改进: 在 Topic 列表页新增了群聊管理入口。
变更
- 数据库: 新增
topic_group_chats和known_group_chats表。 - 底层架构: 重构了飞书客户端 (
FeishuClient) 和事件处理逻辑,统一了 Webhook 和 WebSocket 的事件分发。
[1.1.1] - 2026-01-13
修复
- CI/CD: 修复了由于 Dockerfile 路径重构导致的 GitHub Actions 构建失败问题。
[1.1.0] - 2026-01-13
新增
- Docker 集成: 将前端和后端合并为统一个 Docker 镜像,简化部署流程。
- CI/CD: 添加了 GitHub Actions 工作流,支持自动化 Docker 构建和镜像推送。
- 环境隔离: 改进了单体仓库中的
.env处理,使用 Bun 的--env-file参数。 - 根目录脚本: 在根目录添加了
start和dev脚本,提升开发体验。 - 代理配置: 使 Vite 的代理目标可通过
VITE_API_URL环境变量配置。
变更
- 更新了服务端,使其从
public目录提供前端静态文件。 - 将
docker-compose.yml整合为单一服务。
[1.0.0] - 2026-01-12
新增
- 个人信箱: 支持通过个人 Webhook Token 实现私聊推送。
- 话题管理: 为话题增加了
created_by(创建者) 和approved_by(审批人) 的追踪。 - 管理员看板: 新增了管理话题申请和权限的视图。
- 身份验证: 集成飞书 (Lark) OAuth2。
- 初始版本: 基于 Hono, Vite 和 PostgreSQL 的基础告警分发系统。
修复
- 优化了 README 文档和项目结构。
[0.1.0] - 2026-01-12
新增
- 初始项目结构和数据库模式定义。
- 基础的飞书消息发送功能。