Changelog
按版本倒序记录 Zenith Admin 的功能更新与变更历史。
v0.86.0 - 2026-07-09
Infrastructure
- 接入 TypeScript 7 原生编译器:新增
@typescript/native(npm:typescript@^7.0.2)依赖,tscCLI 使用全新 Go 原生编译器构建;typescript-eslint仍解析到原有typescript@6.0.3(保留其依赖的 programmatic API),两者并存互不冲突,无需改动任何 tsconfig 严格性配置。实测 server/web 冷构建耗时提速约 4-5 倍(server 116.6s → 29.2s,web 65.6s → 13.4s)。 - 修复 Docker 构建失败(node-pty 原生编译缺工具链):
packages/server生产依赖node-pty不提供 Linux 预编译二进制,安装时需node-gyp从源码编译,缺 Python3/C++ 工具链导致builder/server两个镜像阶段构建失败。Dockerfile补充apk add python3 make g++;生产阶段(server)额外保留运行时依赖的libstdc++,构建工具装入可清理的 apk virtual 分组,npm ci完成后立即删除,避免镜像体积膨胀。经docker build全量验证及容器内node-pty运行时冒烟测试确认修复有效。
v0.85.0 - 2026-07-08
Added
偏好设置(对标 vben / soybean / pure-admin 全面增强)
- 面板分组导航:偏好面板 30+ 设置项重组为「布局 / 外观 / 导航与工具栏 / 侧边栏 / 通用 / 表格 / 标签页」7 个分区(带横线分区标题,搜索时自动隐藏保持扁平结果)
- 全局圆角调节:新增「圆角大小」偏好(直角 / 小 / 默认 / 大),通过覆盖 body 上的 Semi 圆角 token 生效,Portal 弹层与全站自绘元素同步跟随
- 深浅色切换圆形扩散动画:基于 View Transition API,从点击位置扩散切换主题;不支持的浏览器与
prefers-reduced-motion自动降级 - 复制 / 导入偏好:一键复制偏好 JSON 到剪贴板;导入侧带 key 白名单 + 类型 + 枚举合法值三重校验,未知字段自动忽略
- 登录默认页面:登录成功后跳转指定页面(可搜索的菜单选择器);仅登录落地生效,不影响日常点击「首页」菜单;覆盖账号 / MFA / 注册 / LDAP / OAuth / 企业 SAML 全部登录路径
- 页面加载进度条开关:路由切换顶部进度条可关闭
- 全局快捷键开关:统一管控 Alt+L 锁屏 / Alt+S 侧边栏 / Alt+C 内容全屏 / Ctrl+K 命令面板;Esc 关闭行为不受影响
- 无操作自动锁屏:5 / 10 / 30 分钟无操作自动锁定屏幕(需开启屏幕锁),切回标签页重置计时
- 减弱动效:一键禁用路由 / 标签页 / 主题切换等装饰性动画与过渡(加载指示保留),适合低配设备与动效敏感用户
- 退出登录二次确认开关:可关闭退出确认弹窗直接退出
- 谷歌(Chrome)标签页风格:标签页新增第 4 种风格——激活标签连体式圆弧造型 + 悬停浮动圆角矩形 + 相邻分隔线,还原现行 Chrome 浏览器形态
消息中心(Phase 3 富媒体)
- 视频消息、自定义表情、群邀请链接与入群审批
- 群聊治理:禁言 / 解除禁言 / 全员禁言开关 / 设置管理员角色
- 会话归档与定时消息:会话归档管理,支持创建定时发送消息
- 发送限流与成员缓存:聊天消息发送接入限流规则,会话成员内存缓存降低数据库访问
Changed
- 设计 token 治理(圆角 / 颜色 / 阴影全站统一):
- 圆角:478 处字面量(CSS 142 + TSX 内联 336)迁移为
var(--semi-border-radius-*),「圆角大小」偏好全站真正生效;Chrome 标签造型值、圆形 / 胶囊等形状值显式保留 - 颜色:26 处状态语义色(密码强度、进程监控、工作流状态等)迁移为
var(--semi-color-danger/warning/success/info)等语义变量,修复暗色模式下的刺眼异物;图表 canvas 色板、主题定义源头、品牌装饰经审计后保留 - 阴影:12 处自写黑色阴影迁移为
var(--semi-shadow-elevated)(暗色自动适配),方向性 / 强调性投影显式豁免
- 圆角:478 处字面量(CSS 142 + TSX 内联 336)迁移为
- 修复悬浮展开侧边栏刷新失效:开启「悬浮展开侧边栏」后刷新页面,侧边栏正确保持收起;开关切换即时联动收起 / 还原
- 工作流节点卡片阴影架构简化:移除永远无效的
--semi-shadow-elevated-hover变量包装与冗余暗色覆盖块
Fixed
- 进程页 SSE 状态光环失效:状态色变量化后 hex 透明度拼接产生非法 CSS,改用
color-mix()修复 - 偏好面板标签页风格选项换行:「Chrome」文案改为「谷歌」,与其余两字选项等宽
Infrastructure
- stylelint 接入(token 纪律防复发):新增 3 条守门规则(禁字面量圆角 2~14px / 禁非白界面色 hex / 禁纯黑自写阴影),设计特区(大屏 / 打印 / 登录页)整文件豁免,存量刻意保留处逐一显式注明理由;ESLint 同步新增 2 条 TSX 内联样式 AST 规则;
lint脚本与 CI 自动带上 stylelint
v0.84.0 - 2026-07-07
Added
会员中心(等级成长闭环 + 运营能力对标主流)
- 成长值闭环:签到 / 补签的经验奖励同事务累加
growthValue并按等级门槛自动升降级;新增后台「调整成长值」接口与入口(POST /api/members/{id}/growth,审计 + 幂等);手动指定等级时自动抬升成长值至门槛,防止后续自动定级回退 - 会员标签 / 分群:新表
member_tags+member_tag_bindings;标签 CRUD(会员管理页「标签管理」弹窗)、单会员设置标签、批量打标签,列表 / 详情 / 导出支持标签展示与tagId筛选,含 3 个示例种子标签 - 积分兑换优惠券:券模板新增「兑换积分」字段;前台「我的卡券 → 积分兑换」Tab(
GET /coupons/exchangeable+POST /coupons/exchange),事务内条件扣积分(防超扣)+ 发券(防超发 / 限领),双向流水标记,幂等保护 - 券码核销工具:领券记录页新增核销弹窗(按券码查询预览 → 确认核销),
GET /api/coupons/code/{code}+POST /api/coupons/redeem(审计 + 幂等 +manual_redeem来源标记,原子条件更新防双花) - 会员站内通知:新表
member_notifications;前台消息中心页(列表 / 未读数 / 单条已读 / 全部已读),侧边栏与移动端 TabBar 未读红点(60s 轮询);已接入生日礼到账、券到期提醒、管理员积分 / 余额调整、邀请奖励四类通知 - 邀请裂变:会员邀请码(懒生成、部分唯一索引)+ 邀请关系(
invited_by);注册支持邀请码(弹窗输入 + 链接#/?invite=CODE预填),邀请人按member_invite_reward_points配置自动得积分(流水幂等);前台邀请页(邀请码 / 链接复制、已邀人数、累计奖励、最近邀请) - 生日礼自动发放:生日当天自动发积分 / 优惠券(
member_birthday_points/member_birthday_coupon_id配置),按年幂等防重发 - 账户自助注销:
POST /api/member/auth/deactivate(密码或短信验证码验身 + 限流),软删除 + 强制下线;前台个人设置「危险区」入口 - 会员软删除:删除会员改为软删除(保留积分 / 钱包流水、券码、签到等审计数据),
phone/email/username改部分唯一索引,注销后标识符可再次注册;全链路(认证 / 列表 / 导出 / 统计 / 发券 / 补签)过滤已删除会员 - 等级折扣消费侧落地:
member-benefits.service提供getMemberDiscount()/applyDiscount()供订单链路调用;前台GET /api/member/benefits返回当前折扣与升级差距,等级权益页展示升级进度条 - 会员数据例行维护:系统周期任务
member-housekeeping(每日 02:10)——到期券批量置 expired、积分不活跃过期(member_point_expire_days,expire 流水可审计)、生日礼发放、券到期提醒通知、登录日志清理(member_login_log_retention_days) - 流水导出:导出中心新增 6 个会员实体(积分流水 / 钱包流水 / 领券记录 / 签到记录 / 充值记录 / 会员登录日志,
execution: auto大数据量自动转异步),对应列表页接入导出按钮 - 补签原因:管理端补签必填原因(记入签到备注与操作审计),签到记录新增备注列
- RFM 看板增强:会员看板新增「活跃分层」(7 天 / 30 天 / 90 天 / 沉睡 / 从未登录)与「充值能力分层」两张图表
- 会员画像增强:详情侧滑补充成长值 / 经验、标签、邀请码 / 邀请人 / 已邀人数、累计签到、绑定公众号粉丝
- 前台移动端 TabBar:会员中心 ≤768px 视口改用底部固定 TabBar(首页 / 卡券 / 签到 / 消息 / 我的),消息项带未读徽标
定时任务
- 执行统计增强:任务统计支持 P95 耗时、最近执行状态与连续失败次数
移动审批轻页
- 底部标签栏与发起入口:新增底部 TabBar 与发起申请按钮;连续审批与批量同意:审批完成自动跳转下一条待办,支持批量同意模式与页面切换动画;移动端自选审批人:新增审批人选择组件(单选 / 多选),整合审批链路预测
Changed
- 资金调整幂等加固:积分调整、余额调整、钱包退款、发券接口统一挂
idempotencyGuard,防双击 / 网络重试重复入账;调整类操作校验会员存在且未删除,并向会员发送变动通知 - 看板统计口径:会员总量 / 余额 / 积分等统计一律排除软删除会员
- 登录日志治理:
member_login_logs新增(member_id, created_at)复合索引 - 前端缓存策略:会员域全部 mutation 由全量失效改为按资源段精准失效,修复重置密码后缓存未回源问题
- 下拉刷新:支持鼠标拖拽操作
Fixed
- 等级折扣字段空转:
member_levels.discount此前无任何消费场景,本版接通查询与计价入口 - 券过期统计失真:到期未使用券此前不会被置为
expired,现由每日任务批量修正
v0.83.0 - 2026-07-06
Added
文件存储
- 对象读写权限(canned ACL):文件存储配置新增对象 ACL 选项(default / private / public-read / public-read-write,default 为继承 Bucket),上传链路(简单上传 + 分片初始化)按配置注入各云厂商 ACL 头(OSS / S3 / COS / OBS / BOS);shared 新增
FILE_OBJECT_ACL_SUPPORT支持矩阵,前端选项、Zod 校验、上传链路三处共用;配置表单含 S3 桶 ACL 禁用与公共读风险提示;云厂商拒绝设置 ACL 的已知错误统一映射为友好业务提示
站内信
- 批量操作:我的消息页面支持多选,新增「批量标记已读」「批量删除」(
POST /api/in-app-messages/batch-read、DELETE /api/in-app-messages/batch),仅作用于当前用户自己的消息,操作后顶栏未读角标经 WS 实时同步
Changed
- 审批结果通知类型:站内信「审批被驳回」由 错误(error) 调整为 警告(warning),「流程已撤回」由 警告(warning) 调整为 通知(info),避免正常业务结果被误读为系统故障
- 移除侧边栏待办角标:工作流「待我审批」菜单不再展示待办数量红点角标(WS 实时刷新与新待办弹窗提醒保留)
- 空状态插画统一:纯展示型空状态(顶栏公告 / 消息弹层、任务托盘、我的消息、公告中心、表单未选择)由带添加符号的 NoContent 插画更换为中性 Idle 插画,仅保留真正可添加数据场景使用 NoContent;业务表单组件缺失改用 Failure 插画
- 移动审批轻页样式:调整高度与滚动行为,改善页面滚动体验
Fixed
- Modal 底部间距:
footer={null}的弹窗底部间距缺失(Semi 默认由 footer margin 提供),全局补齐 body 为最后元素时的 20px 底部内边距 - MSW handler 顺序:站内信批量删除 mock 注册顺序在
/:id之后导致被吞掉,调整为优先匹配
v0.82.0 - 2026-07-05
Added
工作流引擎(体验对齐钉钉 / 飞书)
- 移动审批轻页:全新独立 SPA 入口
/approval.html(后台头像菜单 → 移动审批),与后台共享登录态;四 Tab(待办 / 已办 / 我的申请 / 抄送我)+ 待办数与抄送未读角标、关键词搜索、下拉刷新、触底自动加载;卡片式列表展示摘要字段 / SLA / 优先级 / 发起人头像,支持「极速同意」卡片直批(无签名、无下游选人时可用,服务端校验兜底);审批详情整页滚动分区(当前进度提示 → 表单 → 流转记录 → 沟通评论),支持节点字段权限过滤与可编辑字段提交、手写签名、审批意见快捷短语、底部操作抽屉(同意 / 驳回 / 转办);发起人可撤回 / 催办;发起申请支持流程搜索与最近使用置顶;业务表单与自选审批人场景自动引导回桌面端 - 表单字段权限运行态闭环:节点级字段权限(隐藏 / 只读 / 可编辑)在发起表单、审批详情、审批提交(
formUpdates白名单合并)三处全链路生效,前后端共用同一套纯函数 - 实时待办与通知:新增待我审批总数接口 + 侧边栏菜单待办角标,WebSocket 工作流事件前端消费(新待办 / 审批结果 / 抄送即时 Toast,可点击跳转)
- 列表摘要字段:流程「更多设置」可配置最多 3 个表单字段作为列表摘要(钉钉式卡片摘要),待办 / 申请列表与移动轻页统一展示
- 实例挂起 / 恢复:流程监控支持挂起(冻结审批超时与延迟唤醒作业,恢复按剩余时长重排)与恢复,挂起实例全端展示横幅并禁止审批
- 离职交接:交接预览(检出写死审批人的定义)+ 一键批量转移待办任务,新增权限码
workflow:task:handover与交接向导 - 评论增强:评论支持回复引用(父评论摘要)与附件;全部工作流站内信携带深链,消息中心 / WS 弹窗点击直达对应单据(待办 / 我的申请 / 抄送三页支持 URL 参数自动打开详情)
- 任务转办明细:新表
workflow_task_transfers记录转办 / 委派 / 改派 / 交接 / 超时转交全量明细,时间线逐条展示流转轨迹,防折返校验改查明细表
报表中心
- 报表公开分享:分享链接支持过期时间、访问日志(次数 / 最近访问)与访问频率限制
- 订阅 KPI 快照:报表订阅推送当前 KPI 值与环比趋势;报警通知新增 Webhook 通道;数据集参数定义与可视化建模(数据集引用弹窗)
Changed
- 工程加固:事件订阅密钥与远程数据源请求头改为 AES-256-GCM 加密存储(读取脱敏
******);工作流事件 payload 列 text → jsonb;补充 biz_key(含租户)、迁移记录 FK 等索引与约束 - 测试补齐:新增中间件(IP 访问控制 / 开放 API 网关 / 路由守卫)、查询构造辅助(escapeLike / mergeWhere / withPagination)、并发受限映射、请求辅助、会员认证、支付可靠性链路 DB 集成等 170+ 单测
Fixed
- 种子菜单 ID 冲突:审批代理菜单 id 与引擎运维按钮重复(478)导致被静默丢弃,调整为 898 并连续化排序
- WS 推送字段误用:工作流事件
instanceTitle误取节点名,修正为实例标题 - 工作流模拟数据:待办任务补齐
signatureRequired字段,与真实接口对齐
v0.81.0 - 2026-07-05
Added
支付中心(阶段一 ~ 五)
- 正确性与自动化闭环:下单业务幂等(活跃单复用 + 部分唯一索引兜底)、费率计提竞态修复(条件 UPDATE claim + 台账幂等索引)、结算批次幂等、风控日累计仅统计已支付订单、回调失败 ACK 触发渠道重发;分账自动化(接收方 autoShare + 失败重试 cron)、T+1 自动结算、对账差异处理流(调账自动记台账 + 新权限
payment:recon:handle) - 资金能力扩展:转账/代付新模块(
payment_transfers表 + 幂等键 + 重试上限防双付 + 主动查单 cron);微信真实分账、商家转账到零钱与交易账单下载;支付宝单笔转账;渠道账单自动拉取对账(每日 cron + 手动触发) - 体验与生态:聚合收银台一码多付(UA 识别环境智能推荐支付方式、支付链接 token 轮换);财务报表日切快照(cron 重建 + 历史走快照 + 环比对照);支付运维健康指标卡;云闪付(银联全渠道)新渠道;App 应用维度(
payment_apps+ appKey 下单路由)
数据分析
- 埋点 SDK 加固:采集文本脱敏与敏感元素跳过、卸载兜底 sendBeacon 分片、事件类型远程开关与配置就绪前缓冲、最大滚动深度、rage click 连击检测、白屏检测、客户端时间戳离线保真
- 查询与告警:趋势查询走每日预聚合(五维 rollup),漏斗/留存纯 SQL 化去内存截断;错误告警实时评估 + 触发历史表与「告警历史」Tab;自定义时间区间与环比对照、漏斗报表保存、零配置全页热力图、会话时间轴回放、维度交叉堆叠分析、实时看板 WS 推送
- 治理与安全:字典 blocked 事件入口拒收、IP 匿名化存储、SourceMap 上传大小限制、会话/影响用户数原子回写修正
系统管理
- 页面缓存 keepAlive:基于 React 19
<Activity>的路由级页面缓存,菜单管理按页配置,多页签切换保留搜索条件/滚动位置等状态,关闭页签即释放(LRU 上限 10 页) - 外链菜单内嵌打开:外链支持 iframe 内嵌模式,保留侧边栏与页签
- 用户组绑定角色:用户组可绑定角色并向组内成员继承权限
- 租户自动化:租户创建自动初始化与到期巡检自动化
- 安全加固:系统管理 P0 安全加固三项
其它
- 数据网格:表尾常驻快速输入草稿行,点击即新增
- CI:新增持续集成工作流(lint / test / build)
Changed
- 工作流巨石拆分:
workflow-instances.service.ts按业务域拆为 17 个子模块(无环 DAG)、路由拆为 12 个分组文件(OpenAPI 61 操作零 diff)、表单设计器 FieldConfigPanel 1965 行拆为 13 个文件 - 会话续期:Redis GETEX 原子化续期 + lastActiveAt 节流,减少往返
- 前端查询规范:接入
@tanstack/eslint-plugin-query静态检查
Fixed
- 菜单编辑回显错误(数据级):Semi Form field 级
initValue覆盖编辑回显值,导致「页面缓存/排序/是否外链/打开方式」四字段永远显示默认值且保存时覆盖数据库真实值 - keepAlive 页签切回状态丢失:用户管理部门树、字典项、AI 服务商分组、Docker 分组的「数据加载→重置展开状态」effect 在页签切回时重放覆盖用户操作,统一加初始化守卫(init-once / seen-ref / per-dict)
- 全局分页页码越界:
usePagination内置页码钳制,删除(单条/批量)后停留空页的问题在 110+ 列表页统一修复 - 系统管理安全加固:菜单父级存在性 + BFS 环引用校验、地区多层环引用校验、用户自我删除/禁用四入口拦截、岗位更新补审计 after 数据、批量删除返回实际删除行数
Docs
- 清理各模块文档中装饰性的代码文件路径引用
v0.80.0 - 2026-07-04
Changed
数据库 Schema 按业务域拆分
- schema 多文件化:5500+ 行单体
db/schema.ts按业务域拆分为db/schema/下 29 个文件(core/payment/workflow/member/mp/report等),143 个xxxRelations统一收敛至relations.ts;schema.ts改为纯 re-export barrel,全仓 230+ 处导入方式与 drizzle 配置零改动。拆分经导出清单快照对比(482 项完全一致)与drizzle-kit generate零 diff 双重验证 - 迁移基线化:201 条历史迁移压缩为单条基线迁移,全新环境初始化更快、迁移目录更易维护
首屏性能优化(首屏 JS gzip 2.20MB → 0.58MB,−74%)
- 入口静态图治理:VChart 主题初始化从入口下沉至图表收口模块;PDF 预览面板(@embedpdf ~1MB)、快捷聊天、音视频通话宿主、聊天通知、锁屏(lunar 农历)全部改为懒加载;拼音搜索词典(pinyin-pro ~290KB)改为空闲预热的异步单例,未就绪时自动回退子串匹配
- 分包策略迁移至 rolldown 原生
codeSplitting.groups:修复 manualChunks 兼容层静默改写分组导致 react 运行时被并入重型 vendor 包、__vitePreloadhelper 被打进 PDF 引擎包等问题;react 运行时与 Vite 虚拟模块设最高优先级独立分组;关闭组递归捕获避免公共内件被巨型组吞并;semi-foundation 按模块拆分 - Semi barrel 摇树修复:官方 barrel 因内联 base.css 被声明为 sideEffect,导致 AIChatDialogue(tiptap/prosemirror)、MarkdownRender(acorn)等重组件无条件进入首屏;通过本地无副作用影子 barrel + 精确别名接管裸导入恢复摇树,base.css 改由入口显式引入
- lucide 图标双实例隔离:全量图标注册表(~600KB)改为从独立模块实例异步加载(
useLucideIconsReady/useAllIconNames钩子),静态按需图标走自动分包,各页面仅携带自己使用的图标 - @zenith/shared 声明
sideEffects: false:修复入口因引用常量被迫携带 zod schema 与 demo 种子数据的问题(种子数据不再进入生产包) - member 前台入口:移除多余的 VChart 主题静态初始化(前台无图表页面)
前端数据获取规范统一
- TanStack Query 重构:工作流(待审批 / 模板 / 触发器执行 / 保存视图)、用户数据权限与菜单权限、会员管理等模块改用 react-query 域 hooks 管理服务端状态,移除手写 loading / fetch / useEffect 拉取模式,统一缓存失效策略
- 文档:新增前端数据获取与服务端状态规范文档
Fixed
- 代码质量:清零全仓 eslint error(移除工作流实例服务中已由
workflow_jobs账本取代的死代码wakeAt/timeoutAt/isPending、身份提供者服务未使用变量、工作流版本比较冗余常量等 7 处) - 错误监控文档:补充 Promise 拒绝与 ApiError 处理说明
Docs
- 文档瘦身:移除各模块文档中的「相关文件 / 实现位置 / 相关目录」类源码路径清单段落(易过时且用户可自行检索),IAM 前端页面表保留路由与交互说明、去除文件路径列
v0.79.0 - 2026-07-03
Added
数据库管理(自研 DataGrid 数据网格)
- 通用虚拟滚动数据网格:新增
data-grid通用组件(TanStack Virtual 行虚拟化、滚动分页加载、键盘导航、区域/离散/整行选区、TSV/CSV/JSON/Markdown 复制、类型化单元格渲染、列宽采样自适应与持久化、主键固定列、单元格详情抽屉转置视图、明暗主题自动适配),数据库管理「数据」页替换旧即时保存表格 - 内联编辑(暂存-预览-事务保存):借鉴 dbx 编辑模型——字符串态编辑+提交时类型 coercion(NULL 关键字/大整数防精度/智能弯引号),类型化编辑器(枚举下拉/日期时间/布尔/JSON/文本),单行编辑器像素级贴合单元格;暂存按主键定位跨刷新稳定,脏格角标高亮,保存条 Monaco SQL 预览,新增
batch-mutate单事务接口(整体成功或回滚+审计);显式展示五种只读原因(权限/视图/物化视图/系统表/无主键) - 编辑闭环:新增行(表尾绿色草稿行)、删除标记(红色删除线)、100 快照撤销/重做(Ctrl+Z / Ctrl+Shift+Z)、Ctrl+V 粘贴 TSV 逐格类型转换、SQL 预览含 INSERT/UPDATE/DELETE
- 排序:表头下拉五项排序菜单(数据库升/降序、当前页本地升/降序、清除),本地排序 NULL 恒尾+类型感知+稳定排序;stale-while-revalidate 实现排序/筛选切换零闪烁
- M5 浏览增强:WHERE 快捷条(原生 SQL 片段过滤,后端 sanitize+只读事务+权限校验)、Ctrl+P 快速打开(多级模糊打分搜表)、行状态筛选(全部/已修改/新增/删除)、右键克隆为新行(自动清空主键)、右键导出 XLSX/CSV/Markdown(选区或已加载行,jszip 手写最小 XLSX)、图片 URL 单元格预览角标
- SQL 控制台换装:查询结果集改用只读 DataGrid(虚拟滚动、区域复制、详情抽屉),保留服务端分页
- Excel 粘贴导入:导入弹窗新增「从 Excel 粘贴」页签,内嵌懒加载 Univer 可编辑表格,粘贴后列映射+事务导入
Fixed
- 数据库管理:双击左侧表名导致结构/数据显示为空(同表重复选中改为忽略,顺带避免同表点击丢弃暂存修改);新增行被滚动加载推入已有行区间;固定列 sticky 失效导致表头与数据列错位
v0.78.0 - 2026-07-02
Added
任务中心(通用异步任务框架)
- 任务中心框架:新增
async_tasks表与lib/task-center/通用异步任务框架(迁移 0199/0200)——业务模块通过registerTaskHandler注册任务类型、submitAsyncTask提交任务,pg-boss 队列执行;ctx.progress()一次调用完成进度上报、断点(checkpoint)持久化、心跳刷新与 WS 推送(task:progress,300ms 节流);协作式取消、断点恢复(保留进度续跑)、重新开始(清空进度重跑);每分钟兜底扫描回收心跳超时的卡死任务并从断点重投(崩溃/重启恢复),每日自动清理超过保留期的已结束任务 - 自动重试:任务类型可声明
maxAttempts+retryDelayMs,失败自动按指数退避重试(上限 15 分钟),断点保留、从中断处续跑;退避中的任务显示「等待重试」并可随时取消 - 任务项明细:新增
async_task_items表与ctx.reportItems()API,行级处理状态(成功/失败/跳过 + 错误信息)按taskId+key幂等 upsert,重试自动覆盖;详情抽屉支持按状态筛选分页查看,适配导入类场景的逐行错误报告 - 幂等提交:
submitAsyncTask({ idempotencyKey })相同 key 重复提交直接返回已存在任务(唯一索引兜底),防止重复点击 - 类型级运行时策略:新增
async_task_type_configs表,任务中心「任务类型」页可覆盖注册默认值——暂停提交、允许并发、最大执行次数、重试退避、记录保留天数(权限system:async-task:config) - 任务中心管理页:系统设置 → 任务中心(权限
system:async-task:list/manage/cleanup/config),统计卡(状态计数 / 近 24h 平均耗时 / 近 7 天提交趋势)+ 全局任务列表(类型/状态/关键词/提交人筛选、批量取消、批量删除、清理过期记录)+ 详情抽屉(参数/结果/错误/行级明细) - 全局任务托盘:顶栏「我的任务」入口跨页面展示当前用户进行中与最近完成的任务,Badge 实时计数、Popover 内进度条与快捷取消
- 业务示例页:业务示例 → 异步任务示例(
/biz/task-demo),可交互演示提交/实时进度/取消/断点恢复/重新开始/自动重试/行级明细/重复提交拦截;MSW Mock 完整支持 Demo 演示模式 - 文档:新增
docs/backend/task-center.md(架构 / 接入三步 / TaskRunContext API / 自动重试 / 生命周期 / API 一览),WebSocket 事件清单补充task:progress
工作流
- 业务编号生成:流程定义支持业务编号生成配置与预览(结构化 / 自定义模板两种模式)
- 运维动作预览:工作流引擎运维动作支持执行前预览(按实例 ID / 入库时长筛选,返回将被处理的作业统计与样本)
系统调度
- 执行节点分页:节点列表接口与页面改为分页展示,适配长期运行积累的大量节点记录
Changed
- 工作流监控:组件健康状态统计与样式优化(ComponentRow 重构、Tooltip 描述)
- 任务中心列表:操作列/时间列宽度优化,避免换行
Fixed
- 流程发起表单:标题生成时间格式补全至
YYYY-MM-DD HH:mm
v0.77.0 - 2026-07-01
Added
工作流补偿 / Saga
- 补偿 / Saga 能力:节点级统一失败策略(重试 / 补偿 / 兜底 / 通知 / 终止 / 继续);新增反向动作作业
compensation_action(http / 连接器 / 短信 / 邮件 / 回填);补偿工单支持处理历史、附件、恢复续跑与重试;Saga 反序回滚;subProcess 接入统一失败策略;设计器新增失败策略编辑器与工单详情抽屉(迁移 0198) - 撤回申请:工作流实例支持发起人撤回申请(DTO 新增
allowWithdraw)
工作流监控
- 监控指标与操作:扩展监控指标类型,支持死信聚类与条件重放
Changed
- 导出中心原生化:移除 legacy 兼容层,将地区 / 部门 / 岗位 / 角色 / 字典 / 租户 / 系统配置 / 文件配置 / 定时任务 / 进程 / 公告 / 登录 · 操作日志 / 邮件 · 短信发送记录 / 会员 / 频道订阅者 / 埋点 / 支付订单 · 退款 / 流程实例共 21 个导出重写为原生
defineExport(真实countRows+streamRows+ 结构化列),删除约 788 行死代码;列渲染声明式化(datetime / enumMap / money / boolean) - 重放过滤器界面:使用 Form 组件重构并增加表单字段,提升筛选体验
Fixed
- 导出进度显示 0 条:修复地区等导出完成后「进度」列恒显示 0 条的问题——流式导出(Excel / CSV)新增行数统计,任务完成后回写真实行数
- 数据库迁移:修复全新(未 seed)数据库上执行数据迁移时的外键安全问题 (#6)
v0.76.0 - 2026-06-30
Added
工作流发起 / 审批体验重构
- 两栏布局:发起与详情/审批页改为左右两栏(左表单 + 右审批流程),以分割线替代卡片,流程图改为按钮触发的 SideSheet 查看
- 发起人自选审批人:支持「发起人自选 / 发起人自选(范围)」节点,在审批链路时间线内内联选择,提交前校验必选
- 下一节点审批人自选:支持「审批人自选」节点——上一审批人在通过时为紧邻的下一节点指定审批人,候选人按节点范围(成员/角色/部门/用户组)服务端解析收窄;新增
/api/workflows/tasks/:id/selectable-next-approvers接口,selectedNextApprovers支持按节点分组 - 一键快速同意:无必填意见/签名/附件且下一节点无需自选时,「同意」分裂按钮可一步通过,下拉提供「填写意见后同意」
- 审批链路摘要与自动刷新:链路顶部显示「共 N 步 · 约 M 人审批」,发起表单变更时防抖自动刷新预测链路,并提供手动刷新与预测失败重试
- 当前节点高亮:运行态时间线高亮「轮到你处理」的待办节点
- 批量审批预标注:待办列表对「需单独审批」(紧邻下一节点为自选)的任务加标签并禁用批量勾选
Changed
- 审批操作分层:审批操作按钮主次分层,次要操作(转办/委派/加签/减签/退回)收纳到「更多」菜单
- 节点配置抽屉:加宽配置抽屉与「操作按钮」表格列宽,修正附件下拉选项显示截断
- 移动端体验:抽屉底部操作条在窄屏改为全宽吸底、加大点击区
- 加载与视觉:流程详情加载改为骨架屏;优先级在发起下拉与详情头部统一为彩色标签
- 统一模态框:找回密码、强制改密、批量改密、镜像/网络/存储卷、SQL 控制台收藏等多处弹窗统一为
AppModal,统一表单校验与布局 - 发起防重:发起接口增加幂等保护,前端提交携带幂等 key,避免双击/重试导致重复发起
Fixed
- 附件预览:修复文件预览地址重复
/api/files导致表格(xlsx)预览失败的问题——从下载地址正确解析文件 ID - 批量审批:批量通过遇「下一节点自选审批人」任务时跳过并给出清晰提示,避免表单式报错语义不清
v0.75.0 - 2026-06-29
Added
规则中心与决策表
- 决策表管理:新增决策表创建、编辑、删除、发布、求值、测试和版本管理能力,并补充 MSW Mock 与数据库种子数据
- 决策表治理:新增版本对比、版本回滚、发布门禁、网关治理、测试矩阵、执行 trace 和审计能力
- 业务接入:优惠券发放支持接入决策表资格判定,工作流审批人来源支持从已发布决策表中选择
工作流运维与运行时
- 异常补偿闭环:新增异常补偿与人工修复工单闭环,补偿工单工作台 Tab 和积压趋势分析
- 死信与迁移:新增作业死信中心,支持一键重放死信和失败原因聚类;运行中实例支持迁移到最新版本
- 连接器运行时:工作流连接器 email/sms 运行时接入,数据分析新增自动化失败率、Webhook 成功率和子流程失败率等运维指标
- 操作按钮配置:审批操作按钮支持附件上传策略,设计器保存节点时会持久化当前按钮状态到
actionButtons
Changed
- 流程体检体验:增强流程体检,发布前阻断严重问题,并在节点配置中内联展示严重问题和修复建议
- 规则中心体验:优化决策表录入、编辑、测试交互,调整操作列高频按钮、弹窗布局、表头和编辑器对齐
- 界面细节:优化侧边栏品牌区、标题、溢出处理和工作流组件健康矩阵卡片样式
Fixed
- 审批退回:退回目标限制为当前节点之前且已审批通过的节点,同时保持退回按钮按配置显示
- 审批附件:修复工作流附件处理逻辑,避免将空附件写为
null - 工作流接口:统一补偿接口路径为
/api/workflows/compensation - 埋点上报:重试队列按批次上报,避免超过后端限制后持续堆积
- 调度清理:清理已迁移的旧工作流 Cron 任务,补充对应数据库变更脚本
v0.74.0 - 2026-06-28
Added
工作流引擎与诊断
- 显式执行 Token 引擎:新增显式执行 Token 模型与纯函数推进逻辑,替代隐式节点状态推导,并补充活动 Token 统计、视图展示和数据库集成测试
- Token 运维能力:新增跳过卡死 Token、从 Token 节点重放流程、批量推进卡死实例和实例诊断包导出能力
- 链路追踪诊断:新增请求链路追踪中间件、traceId 作业链路查询、traceId 诊断包导出和按筛选条件批量重放投递能力
- 流程健康检查:增强流程定义健康检查,支持表单字段解析、表达式与条件字段引用校验,以及版本结构差异对比
工作流连接器
- 连接器管理:新增工作流连接器创建、编辑、删除、测试和凭据管理能力,并接入触发器节点配置
- 连接器调用治理:新增连接器熔断、限流开关、时间窗、最大调用次数、调用统计和最近调用记录能力
流程设计器与仿真
- 审批人预览:新增审批人预览抽屉,支持基于表单数据和发起人实时预览审批链路并展示体检结果
- 仿真用例管理:新增仿真用例保存、列表和删除能力,支持按流程定义归档、重名覆盖和数据库持久化
Changed
- 流程设计器体验:移除草稿审批链路预览功能,统一到新的审批人预览能力,并优化节点配置抽屉建议文本间距
- 待审批列表:调整待审批页面操作列宽度,改善操作按钮展示空间
- 依赖升级:升级
mssql至12.6.0,升级nodemailer至9.0.1
Fixed
- 工作流引擎:修复节点缺少执行 Token 时的异常处理,并移除引擎诊断图表中不适用的堆叠配置
v0.73.0 - 2026-06-28
Added
企业身份源与身份安全
- 企业身份源管理:新增 OIDC、SAML、LDAP/AD 身份源管理能力,支持身份源创建、更新、删除、连接测试、用户搜索与同步
- 企业登录:新增企业身份源登录入口、回调页面、SAML ACS 回调处理与票据交换接口,支持企业身份源选择登录
- 身份安全:新增多因素认证、TOTP 绑定、登录风险策略与风险事件管理能力
工作流引擎与监控
- 统一作业账本:新增
workflow_jobs与workflow_job_executions作业账本表,整合延时唤醒、事件派发、外部审批、子流程、任务超时、触发器调度与 Webhook 投递等异步任务处理 - 作业监控:新增工作流作业列表、详情、重试、跳过、批量重试/跳过、作业摘要与按类型聚合的状态统计
- 引擎诊断:新增工作流引擎健康快照、健康历史、队列积压、事件吞吐、实例生命周期、队列饱和度与实例运行轨迹视图
- 定义健康检查:流程定义新增发布前健康体检,展示健康评分、分支覆盖分析与修复建议
- 版本对比:流程定义新增版本差异对比,支持展示节点和连线的新增、删除与修改
- 仿真增强:流程仿真新增耗时预估、阻塞点展示、当前步骤详情和节点可见性优化
- SLA 展示:待办任务新增 SLA 标签,展示任务时限状态与剩余时间
系统调度
- 系统调度任务:新增系统调度任务管理页面、运行日志查询、任务配置与手动执行能力
- 队列 Worker 描述:增强工作流定时任务与队列 Worker 的标题、模块、描述、手动运行权限和运行状态展示
报表与测试
- 报表设计器:新增多屏轮播配置、页签栏、自动/手动切换控制与钻取面包屑
- 报表 Mock 与测试:补充报表数据源、数据集、仪表盘 Mock 处理和冒烟测试,新增文件解析、格式化、AI 安全、预警、计算字段、数据集与数据源单元测试
Changed
- 工作流调度架构:移除旧的延迟恢复、事件交付、触发执行与子流程恢复逻辑,迁移到统一作业引擎和作业账本
- 工作流监控体验:优化引擎诊断视图、作业类型面板、表格列宽、状态标签与监控页面批量操作体验
- 流程设计器体验:优化仿真抽屉、节点卡片、发起人节点、调试模式、分支处理和画布节点可见性
- 页面布局规范:补充页面级多 Tab 布局规范,并调整相关页面容器样式
- 报表数据处理:优化数据集取数复用、CSV 解析、数据源类型、组件类型定义与敏感信息处理
Fixed
- 工作流引擎:修复时间条件查询、运维动作失败日志格式,以及事件派发错误信息和状态描述
- 公告管理:修复公告页面分页逻辑,优化公告标签页、搜索工具栏、内容渲染和空状态展示
v0.72.0 - 2026-06-27
Added
报表中心
- 报表设计器:新增仪表盘设计页面、大屏画布模式、全局筛选器、组件配置面板与公开看板视图,支持拖拽缩放、主题背景和筛选联动
- 打印报表:新增打印报表模板管理、打印设计器、数据渲染引擎与打印视图,支持模板 CRUD、数据填充和页面打印样式
- 数据源与数据集:新增 MySQL、PostgreSQL、SQL Server 和静态数据源支持,提供连接测试、字段格式化、汇总行与物化快照刷新任务
- 报表组件:新增矩形树图、散点图、漏斗图、雷达图、双轴图、桑基图、词云、热力图、水波球、图片、iframe、翻牌器和滚动榜单等组件能力
- 报表协作与预警:新增仪表盘评论、报表订阅、Cron 表达式构建器、报表预警规则和多通知通道分发能力
- 报表 AI:新增自然语言转只读 SQL 接口,支持通过自然语言生成报表查询语句
开放平台
- API Scope 与限流套餐:新增 API Scope、限流套餐、开放平台统计页面和相关后台管理能力
- OAuth2 应用增强:新增限流套餐、API 范围和签名设置,菜单结构调整为统一归入开放平台
- 开放网关:新增开放签名、网关中间件、开放 API 统计、应用 Webhook 与 SDK 示例页面
导出中心
- 统一导出中心:新增导出任务模型、导出任务页面、导出定义注册表、文件写入器与导出接口文档
- 统一导出按钮:多个列表页改用
ExportButton创建导出任务,支持动态查询条件、权限校验和移动端样式适配 - 生成文件入库:新增生成文件保存能力,导出产物可纳入文件管理
工作流仿真
- 流程仿真:新增流程仿真服务、仿真数据结构、仿真抽屉、测试数据生成、用例保存与结果时间线展示
- 仿真交互:流程设计器支持节点和分支点击、右键菜单、断点、条件命中原因、健康问题和决策选项展示
- 运行态展示:工作流节点、发起人节点和节点卡片支持运行态高亮与当前状态显示
终端与运维
- 终端工作区:新增终端工作目录同步、当前目录打开终端、标签标题和状态栏显示能力
- 终端体验:新增 WebGL 渲染、关闭未保存文件确认、WSL Bash 工作目录引导和终端分屏样式优化
- Docker 容器操作:终端侧新增容器启动、停止、重启、日志和统计信息查看
- 终端录屏:新增 asciinema 录屏导出和按操作人、时间范围查询
审计与日志
- 审计快照:新增操作前后实体快照记录能力,支持在响应体为空时补充操作后数据
- 登录日志:新增登录和登出事件类型记录
- 操作日志:增强操作日志快照注入和响应体为空场景记录
体验与基础能力
- 月历组件:新增月历组件并在签到页和仪表盘中接入
- 移动端工具栏:优化移动端操作按钮、导出按钮、搜索和重置按钮样式
- 依赖升级:升级 React Router、Vite、Vitest、lucide-react、cron-parser、react-virtuoso、sql-formatter 等多项依赖
Changed
- 导出架构:多个业务模块从本地导出路由迁移到统一导出中心,后续又清理登录日志、操作日志、短信/邮件发送日志、公告、文件存储配置、进程、定时任务、工作流实例等模块的旧导出路由,简化接口维护面
- 报表页面:优化打印设计器工作簿创建与样式映射,备注字段改为省略展示,组件元数据拆分到独立模块
- 支付示例:优化支付接入示例的页面样式、支付时间列、操作列和信息提示
- 配置表格:优化列过滤逻辑和类型定义,测试断言更新为更清晰的形式
- 文档与技能:更新导出中心文档、后端接口约定及 Zenith 开发辅助技能说明
Fixed
- 导出维护性:移除多模块重复导出路由和处理逻辑,降低同类功能分散实现带来的维护成本
- 终端录制页面:清理不必要的 ESLint 禁用注释并调整操作列宽度
- 着陆页资源:删除不再使用的旧着陆页 HTML 输出文件
v0.71.0 - 2026-06-26
Added
图表与分析增强
- 图表组件:新增散点图、柱状图与组合柱线图配置能力,支持点击分布、登录统计、操作日志等分析场景使用统一图表组件展示
- VChart 主题:新增 Semi Design 半主题初始化能力,统一图表在后台主题下的视觉表现
- 留存分析:留存数据改为热力矩阵展示,优化留存率的横向对比体验
- 登录日志统计:重构登录统计可视化展示,使用新的图表组件和补齐后的每日统计数据
- 操作日志统计:新增按星期操作分布图,便于观察操作活跃周期
工作流诊断增强
- 工作流监控:新增引擎诊断、引擎遥测与流程诊断视图,展示运行状态、风险标签和建议动作
- 运行时诊断:优化流程监控运行时诊断 SideSheet,增强触发器执行映射和诊断信息展示
- 触发器调度:新增触发器调度状态、尝试次数、开始时间、下一次重试时间和最近错误信息
- 请假工作流:增强请假单提交与工作流实例关联逻辑,支持幂等保护和已提交单据的实例检查
响应式表格与操作列
- 响应式表格:新增移动端适配的紧凑分页配置,以及
useMediaQuery/useIsMobile响应式 Hook - 操作列:新增统一的响应式操作列能力,支持桌面端内联高频操作、移动端自动收纳到更多菜单
- 列表页面:数据库管理、文件管理、频道管理、容器管理、聊天机器人、防火墙、短信配置、邮件模板、公告管理等页面接入统一操作列
用户管理
- 用户编辑:编辑用户时支持维护用户名字段,并优化表单布局
Changed
- 图表体系:监控页面、操作日志统计、速率限制页面、工作流分析视图迁移到新的图表组件体系
- 行为分析:行为热力图调整为点击分布图,并更新页面说明文档
- 图表配色:统一图表配色常量和分析页面统计卡片颜色逻辑
- 可配置表格:精简默认始终可见列配置,配合响应式操作列统一处理移动端展示
- 工作流设计器:增强只读模式支持,高级设置改用表单级禁用逻辑,节点抽屉只读状态更稳健
- 请求处理:后台和会员端请求错误提示接入统一 Toast 展示逻辑
Fixed
- 工作流健康:修复触发器卡住统计条件,纳入执行失败的触发器
- 工作流监控:调整操作列宽度和滚动条宽度,优化遥测指标和诊断标签样式
- 构建质量:修复 server 与 web 的 ESLint 报错,清理未使用导入、变量和失效注释
v0.70.0 - 2026-06-25
Added
移动端体验优化
- 搜索工具栏:全面升级移动端搜索工具栏,支持结构化模式——核心搜索常驻、高频筛选项常驻、低频筛选进底部抽屉、低频操作进「更多」菜单
- 工作流页面:新增移动端等待阈值过滤器,优化分类按钮布局
- 支付页面:新增渠道过滤器,优化移动端工具栏布局
- 数据库备份页面:优化移动端操作按钮和筛选器布局
- 终端会话、文件管理、操作日志 等多个页面完成移动端适配重构
工作流引擎增强
- 子流程恢复:新增
recoverStuckSubProcesses定期扫描并恢复挂起子流程,支持多实例汇聚对账(reconcileMultiSubProcess) - 延迟任务唤醒:新增
recoverDueDelayTasks定期扫描并自动唤醒已到期延迟任务 - 外部审批/触发器恢复:新增
recoverPendingExternalApprovals和recoverPendingWorkflowTriggers定时恢复机制 - 多实例支持:新增
parentTaskItemKey/parentTaskItemIndex字段,完善超时处理与异常捕获节点兜底 - 分支/环路并行网关:新增
makeBranchedFlow、makeLoopBackParallelFlow函数 - 工作流实例:新增
currentNodeKeys/currentNodeNames字段,增加幂等性保护 - 健康巡检:新增工作流健康巡检接口,支持阈值查询,返回任务和事件健康状态
支付接入示例
- 新增完整支付接入示例(
payment-example),含创建示例单、发起支付、模拟支付成功及履约逻辑 - 新增「业务接入实战示例」文档
功能增强
- 移动端导航:新增移动快速页面面板(已打开页面 + 最近访问记录);新增移动端导航头部和侧边栏
- 用户/部门/角色/租户/地区管理:新增 Excel / CSV 导出功能
- 用户管理:新增用户导入功能
- 菜单管理:重构搜索工具栏,支持移动端适配
- 字典管理:新增字典项搜索和状态过滤
Changed
- 进程管理最后更新时间统一使用
formatDateTime格式化 - 多个页面操作按钮渲染逻辑重构为条件渲染,提升可读性(粉丝管理、会话管理、素材管理、模板消息页面)
v0.69.0 - 2026-06-25
Added
微信公众号(MP)增强
- 自动回复:新增未命中关键词记录功能及统计接口;扩展回复内容类型支持图片、语音、视频、图文等富媒体格式
- 多客服会话:新增会话数据报表和满意度评分功能,支持记录和查询会话满意度
- 多客服账号管理:新增客服账号 CRUD 及同步功能
- 二维码管理:扫码关注支持设置奖励积分
- 统计分析:新增图文分享转发统计和接口分析数据表
- 群发消息:新增群发预览和发送结果查询;支持定时群发(scheduledAt 字段);新增定时任务自动处理待发送群发消息
- JS-SDK:新增 JS-SDK wx.config 签名生成接口
- 模板消息:新增获取/设置所属行业、批量发送模板消息;新增模板消息送达回执(TEMPLATESENDJOBFINISH)处理
- 个性化菜单:新增条件菜单管理功能(创建/更新/删除/发布/匹配测试)
- 内容安全:新增文本内容安全校验接口,支持内容检查开关
- 粉丝管理:新增黑名单管理(批量拉黑/移出黑名单/同步黑名单);新增粉丝与会员绑定/解绑功能;增加 unionid 和 memberId 字段
- 网页授权(OAuth):新增网页授权链接生成及回调处理
- 公众号账号:新增自动创建会员功能(autoCreateMember 字段)
- 微信数据立方:新增微信数据立方接口集成
工作流审批增强
- 审批要求配置:新增审批要求配置 Tab,支持手写签名和审批意见的操作权限分组配置
- 审批附件:工作流审批任务新增附件字段,支持上传和展示附件(集成 FileAttachment 组件)
- 审批时间线:新增发起人节点展示;新增流程后续节点展示功能
- 审批时间线样式:修正圆点对齐,优化时间线视觉效果
表单设计器增强
- 字段类型扩展:新增约 40 种字段类型,涵盖 tabs(标签页)、steps(分步)等容器类型
- 公式函数库:完善公式函数库及公式函数插入助手
- 跨字段比较校验:新增 CompareRulesEditor 组件,支持跨字段比较规则的添加/更新/删除
- 自定义日期范围校验:表单校验新增自定义日期范围规则
- 字段选项编辑器:新增选项编辑器样式,支持选项颜色选择和自定义选项值
Changed
- 工作流表单渲染器:重构公式评估模块,迁移至独立
form-formula模块;移除evalFormula导出 - 工作流流程图:WorkflowFlowTab 替换为 WorkflowGraphView,简化组件结构
- 聊天页面:合并频道与会话列表,按最后消息时间排序
Fixed
- 修复节点配置抽屉审批人描述和操作权限标签显示问题
- 修复频道切换时消息重载逻辑(仅在频道 ID 变化时重载,避免因频道元信息更新导致页面闪烁)
- 修复公众号群发发送按钮图标显示问题
- 修复菜单项 ID 重复问题,确保群发/二维码菜单结构正确
v0.68.0 - 2026-06-24
Added
频道公众号
- 图文群发:支持带标题的图文消息群发;新增定时草稿功能,可提前编辑并延迟发送
- 双向客服(2D):完整的人工双向客服系统,含 ChannelMessageView 双向消息视图、底部功能菜单、菜单/自动回复 Drawer、客服工作台独立页面
- 客服工作台:独立客服工作台页面,支持实时消息和快捷回复
- 快捷回复:客服可管理常用快捷回复语,一键插入
- 2B 订阅管理 + 2C 消息中心聚合:后台订阅管理与前台消息中心整合
- 2A 公众号管理后台:完整的公众号后台管理功能
公众号管理套件(MP)
- 标签管理:新增粉丝标签 CRUD 管理页(MpTagsPage)
- 粉丝管理:新增粉丝列表、同步、标签绑定管理页(MpFansPage)
- 素材管理:新增图文素材 CRUD 管理页(MpMaterialsPage)
- 模板消息管理:新增模板库管理与发送记录(MpTemplateMessagesPage);支持模板同步、发送及日志查询
- 草稿管理:新增草稿箱 CRUD 管理页(MpDraftsPage),内容编辑升级为 TextArea
- 公众号统计:新增粉丝/消息趋势统计页面(MpStatisticsPage),含骨架屏加载占位
- 自定义菜单:新增公众号自定义菜单管理,支持获取、保存、发布、拉取、删除
- 自动回复:新增关注、关键词、默认三种自动回复类型管理
运维管理
- 防火墙管理:新增 iptables/ufw 规则可视化管理
- Nginx 站点管理:新增 Nginx 虚拟主机站点管理
- SSL 证书管理:新增 SSL/TLS 证书管理
其他
- 文件管理器:新增显示隐藏文件、前进/后退导航历史、文件属性详情面板
- WebSocket Demo 模式:Demo 模式下跳过 WebSocket 连接,避免反复连接/断开提示
- 工作流审批:审批详情抽屉新增任务 ID 透传,聊天卡片支持 workflowInstanceId 直接打开流程详情
- 用户管理:新增用户注册功能,支持表单验证和 API 调用
- 微信签名:使用
timingSafeEqual常量时间签名比较,消除计时侧信道风险 - 支付中心:完善支付事件流和业务流程;账单/分析页面新增骨架屏加载态
Changed
- 快捷常用语权限:
/api/workflows/quick-phrases所有接口去除workflow:task:handle权限校验,改为仅要求登录 - 频道列表布局:创建时间列宽 170→180,操作列宽 280→360,防止时间戳折行和按钮换行
- 工作流审批:操作权限 Tab 移除与操作按钮设置重复的转办/加签/退回项,减少冗余配置
- 客服待回复数:基于最近一次人工回复计算,自动回复不再清零未读数
- 页签栏:修复鼠标滚轮无法横向滚动
- 支付:风控限额、支付链接、费率管理弹窗改为两列布局
Fixed
- 修复频道菜单 id 冲突导致频道管理菜单丢失
- 修复工作流设计器窄屏下步骤条与保存/发布按钮重叠
- 修复工作流流程定义页窄屏下只显示分类列表无法切换到流程列表
- 修复工作流设计器草稿状态下「发送」按钮显示逻辑
- 修复待审批任务页面
setPage缺失依赖导致的加载异常 - 修复分账管理弹窗 label 宽度异常
- 修复财务报表维度 Select
prefix属性引起的布局异常 - 修复粉丝同步功能
total类型声明不一致 - 修复通过独立幂等迁移清理历史 bot 假用户数据
v0.67.0 - 2026-06-23
Added
工作流表单设计器
- 表单远程数据源:新增「远程数据源」管理模块(CRUD + 启用/停用 + 在线测试拉取);
select字段可选「远程数据源」作为选项来源,运行时经服务端代理按路径映射拉取并支持远程搜索(仅登记 URL 可被调用,防 SSRF,带 30s 缓存) - 字段依赖关系图:可视化字段间的公式/显隐/必填/只读/级联/天数/联动赋值引用(驱动方 → 被影响方),缺失字段红色提示、按类型配色、点击高亮相关、可只看有依赖的字段
- 条件必填 / 条件只读:复用多条件规则引擎,满足条件时字段动态变为必填或只读
- 公式函数增强:支持
IF/SUM/AVG/MAX/MIN/ROUND/ABS/CEIL/FLOOR与比较/逻辑/三元运算,明细汇总用{明细key.列key};标识符+字符双白名单防注入 - 动态默认值:默认值支持
${currentUser}${currentDept}${today}${now}等占位,发起时按登录人/部门/时间解析 - 金额大写:金额字段可联动显示人民币中文大写
- 联动赋值:
select选中某选项时按映射自动填充其它字段 - 分组折叠:分组容器支持「可折叠 / 默认折叠」,便于长表单分区
- 可编辑字段标识(key):支持手动编辑 key 并级联同步所有引用,或根据名称一键生成(中文转拼音)
- 设计器工程化:JSON 可编辑导入、常用字段模板、批量设置、保存前体检面板、预览支持填写/只读/审批态切换
工作流引擎
- 审批人自动去重三模式:
approverDedupMode(不自动通过 / 审批一次后续重复节点均自动通过 / 仅连续审批节点自动通过),向后兼容旧布尔开关 - 流程模板管理:新增流程模板管理页
- 定时发起:接入可视化 Cron 表达式组件
- 审批常用语:管理弹窗支持编辑
- 流程图增强:节点列表并入流程图,审批记录显示节点耗时
- 表单库:支持复制表单;流程定义列表新增「表单类型」列
Changed
- 流程表单上传态与只读附件统一复用公共
FileAttachment组件 - 移除表单设计器字段搜索功能,简化组件结构
Fixed
- 修复表单设计/控件设置共 14 项问题(附件控件不可用、评分不回写、明细仅占位、空容器渲染、公式缺失依赖按 0 兜底等)
- 修复字段依赖关系图连线未对齐节点中点(弹窗进场动画期间 React Flow 量测 handle 导致 handleBounds 缓存偏移)
- 修复「远程数据源」选项来源点击后单选回弹未选中
- 修复公式字段填写态向发起人暴露原始公式表达式
- 修复「我的申请」打印/保存 PDF 预览空白
- 修复节点列表/流程图单审批人重复显示节点状态
- 修复聊天中工作流审批卡片的接口路径、置灰可靠性与重复提示
- 修复发起工作台未分类流程卡片图标对比度过低
- 加宽事件订阅 / 流程自动化弹窗表单 label
v0.66.0 - 2026-06-22
Added
工作流引擎
- 模板克隆增强:支持克隆模板时指定分类 ID,优化模板管理流程
- 流程定义导入功能:支持导入工作流定义文件,包含表单类型和自定义表单数据
- 批量操作:新增批量禁用、启用和删除流程定义功能
- 删除保护:删除流程定义前检查是否存在发起实例,存在则阻止删除
- 定义快照支持:工作流实例支持携带定义快照,避免流程定义修改后历史实例数据丢失
- 表单快照处理:新增表单快照处理函数,确保历史实例的表单数据完整性
- 自动化动作验证:增加自动化动作的目标定义验证和流程定义启动检查
- 流程节点发起人信息:在流程节点列表中展示实例发起人姓名和头像
- 操作按钮优化:使用网格布局调整按钮排列,重构复制与导出按钮为下拉菜单形式
工作流发起页
- 表单布局优化:使用栅格布局调整优先级与抄送人选择组件,移除不必要的侧边栏
- 审批链路预览:支持流程图与节点详情的弹出预览
- 表单逻辑重构:复用 WorkflowLaunchForm 组件,简化表单数据收集与提交逻辑
- 列表展示优化:使用 List 组件替换卡片布局,优化流程定义卡片的渲染与内容展示
- 响应式设计:增加响应式布局,优化按钮样式与交互
请假管理(Demo)
- 请假审批流程:新增请假单提交审批功能,支持保存草稿与提交审批
- 工作流实例创建:请假单提交时自动创建工作流实例
分析
- 错误事件详情:新增错误事件的详情操作
- 错误事件表格扩展:优化错误事件表格的展示
- 报告指标修正:修正报告指标的统计逻辑
维护模式
- 维护窗口记录:新增维护窗口记录功能,显示维护历史记录列表
其他
- 工作流文档更新:补充三种表单类型与业务系统接入文档
- 定时任务执行概览:增强定时任务执行信息的展示
Changed
- 工作流业务桥接:修正业务类型与 ID 的处理逻辑,增加对模板库支持的表单类型检查
Fixed
- 工作流监控页:修复获取工作流定义时的快照处理逻辑
- 工作流定义页面:修复文件解析错误提示
- 智能对话:修复回答结束后会话列表被清空的问题
- 智能对话:修复点击角色按钮无反应的问题
- 智能对话:打开对话时自动定位到最新消息
- 数据库管理:修复序列等无固定列表格占满整行的问题
- 工作流 review 修复:自定义表单草稿/发布校验、空提交防护、页签元信息与发起页签清理
v0.65.0 - 2026-06-22
Added
文件上传
- 分片上传功能:新增初始化、上传分片、完成上传、查询进度和中止上传的 API,支持大文件的断点续传
- 云原生分片上传:添加 S3、OSS、COS、OBS、Azure Blob、BOS 的云原生分片上传支持
- 分片上传会话清理:新增定时任务清理过期分片上传会话及孤儿目录,增加相关配置项
文件管理
- 文件 ID 改为 UUIDv7:将文件 ID 类型从自增数字改为 UUIDv7 字符串,避免自增 ID 可枚举
- 文件存储配置密钥脱敏:密钥字段在列表/详情接口中不返回,编辑时留空表示沿用原密钥
- 存储配置连接测试:新增测试接口及前端按钮,支持测试新配置和已保存配置的连接
- 扩展存储提供者:添加 OBS、Kodo、BOS、Azure、SFTP 等存储提供者支持
日志文件
- 行号显示功能:日志文件页面新增行号显示按钮,支持切换行号显示状态
- 换行符处理优化:改进换行符分隔符处理逻辑,支持不同操作系统的换行符
工作流
- 行级锁与乐观并发控制:增强审批与任务处理逻辑,防止并发操作导致状态不一致
- 流程实例设置:新增允许重新提交与评论的设置
- 流程实例评论功能:在工作流实例中添加评论功能
- 自定义业务表单:流程定义新增
formType=custom,可绑定用户在src/pages下自写的 React 页面承载发起填写与查看(创建/查看按mode区分),数据存入流程formData,并支持声明流程变量驱动条件分支 - 业务系统接入(external):流程定义新增
formType=external,业务模块自存数据后通过startWorkflowForBiz以 businessKey(bizType+bizId)关联工作流,流程终态经事件订阅回写业务状态;提供桥 SDK(startWorkflowForBiz/onWorkflowResult/getWorkflowStatusByBiz)及「请假」最小 Demo - 流程整页多页签:发起与流程详情支持以独立多页签整页打开(
/workflow/launch/:id、/workflow/instance/:id)并带图标
会员管理
- 会员签到设置:新增会员签到设置页面
- 会员登录日志:新增会员登录日志展示与管理
- 会员充值记录:新增会员充值记录展示与管理
缓存管理
- 缓存概览功能:新增缓存概览页面,展示缓存统计信息
分析页面
- 数据获取优化:根据活动标签动态调用数据获取函数,使用 useRef 优化性能
- 时间处理优化:引入 APP_TIME_ZONE,调整时间格式化,确保数据一致性
Changed
- 文件存储配置操作优化:新增下拉菜单支持测试连接和删除操作,优化操作按钮样式
- 登录日志统计面板:增强统计卡片功能,添加图标和背景色支持
- 用户分析页面:调整用户时间线项的样式,简化布局
- 工作流页面:添加权限控制、优化 JSON 解析、改进用户界面交互
Fixed
- 日志文件换行符处理:修复不同操作系统换行符的分隔逻辑
v0.64.0 - 2026-06-21
Added
支付中心
- 支付中心 A 档高价值模块:新增退款审批、Webhook 管理、资金台账、运营工具及完整前端页面
- 支付中心 B 档:新增费率管理、结算管理、分账规则、支付链接、风控规则、支付方式配置、财务报表等 B 档功能模块
- 支付对账:新增对账批次与对账明细数据模型,支持解析渠道账单 CSV 并与本地订单比对,提供对账批次的创建、查询、删除接口
租户套餐管理
- 租户套餐管理模块:新增租户套餐的增删改查功能
- 套餐菜单约束:多租户模式下按套餐白名单强制约束租户可见菜单(Scope B)
- 租户用量概览:新增
maxUsers用户数上限强制校验,并提供租户用量概览统计
工作流增强
- 工作流定时发起规则:新增定时发起规则管理页面,支持规则的增删改查
- 抄送转发:在抄送页面实现转发功能,支持选择抄送人及备注
- 关联审批单字段:在字段配置面板中添加关联流程字段,支持选择已发布流程
- 审批链路预览:在我的申请和工作流发起页面新增审批链路标签页
- 优先级字段:在工作流实例中添加优先级字段,支持优先级筛选与展示
- 工作流导入导出:支持 JSON 格式导入导出工作流定义
- 版本对比与复制:新增工作流定义版本对比和复制功能
- 已办任务页面:新增已办任务列表,支持搜索和详情查看
- 批量撤回与催办:在我的申请中实现批量撤回和催办功能
- 加签功能:在待审批任务中增加加签位置和会签方式选择
- 工作流发起页面:实现工作流发起入口,支持搜索选择流程定义、动态表单渲染和提交申请
音视频通话
- WebRTC 音视频通话:新增基于 WebRTC 的 1v1 和群组通话功能,支持音频和视频通话,包含通话记录
智能对话增强
- 导出与反馈闭环:第二期增强,新增消息记模型、流式响应健壮性优化和空会话引导
数据库管理增强
- 数据导入功能:新增 ImportModal 组件,支持 CSV / JSON 文件导入
- 查询结果图表:新增 ResultChart 组件,支持查询结果的图表可视化
- 数据库对象管理:新增 ObjectsPanel 和 OpsPanel 组件,整合数据库对象与运维相关操作(物化视图刷新、活动连接管理、表维护、索引健康检查及结构校验)
Changed
- 操作菜单优化:将工作流定义的禁用/启用按钮移至下拉菜单,调整操作按钮样式
- 活动连接面板:SQL 列宽调整为 360,分页调整为每页 50 条
Fixed
- 多处样式调整:修复工作流定义页面容器布局、模板画廊模态框底部内边距、待审批操作列宽度等细节样式问题
v0.63.0 - 2026-06-20
Added
AI 功能增强
- AI 服务商测试连接:新增测试连接接口,支持验证 AI 服务商配置的有效性
- 提示词模板管理:新增提示词模板的增删改查功能,支持在聊天页面中应用预设模板
- AI 使用统计:新增 AI 使用统计页面,支持按模型和用户维度查看使用数据
- 聊天机器人管理:新增聊天机器人的创建、编辑、删除及令牌重置功能
工作流引擎增强
- 工作流分类管理:新增工作流分类的增删改查接口
- 流程模板管理:新增创建和更新流程模板的功能
- 协办功能:新增协办邀请与回复功能,优化条件编辑器支持聚合与区间条件
- 手写签名:在工作流实例中增加手写签名字段,支持签名上传
- 多渠道通知:在高级设置中添加邮件和短信通知选项
- 流程监控增强:新增强制跳转和改派处理人功能
- 工作流分析视图:新增数据可视化、批量审批和常用语管理功能
系统监控与运维
- 监控告警:新增监控告警菜单及其管理规则
- 历史趋势:新增历史数据查询、图表展示及温度传感器信息展示
- 网络诊断:新增 DNS 查询和 HTTP 探测功能
- 端口管理:支持服务名和状态过滤
- 服务管理:增加服务状态过滤和操作下拉菜单
- 进程管理:新增进程工作目录和环境变量展示功能
- SFTP 管理:新增修改远程文件/目录权限功能
文件管理增强
- 文件解压:新增文件解压缩功能
- 校验和计算:新增文件校验和计算功能
- 深度搜索:支持深度搜索文件
- 可访问性优化:将文件卡片从 div 改为 button 元素
数据分析
- 页面跟踪:实现全局页面浏览埋点功能,自动记录后台页面的 PV 和停留时长
- 错误上报:实现前端错误上报功能,记录行为面包屑与会话信息
- 数据分析文档:新增架构、行为分析、数据管理、错误监控等相关文档
其他功能
- 登录日志统计:新增登录日志的统计数据接口
- 文件统计:新增文件总数、总大小及各类型文件数量的统计接口
- 偏好设置与收藏菜单:新增获取和保存用户偏好设置及收藏菜单的功能
- 终端录屏:新增终端录屏的获取、删除和清理功能
- SSH SFTP 面板:新增 SSH SFTP 面板、会话监控/接管、刷新恢复、SSH 分组标签
Changed
- 工作流接口路径:将协办列表和回复接口的路径从 '/consults' 修改为 '/instances/consults'
- 已发布流程定义:修改列表接口返回格式为数组形式
- 顶部导航优化:重构导航项渲染逻辑,支持祖先目录高亮
- 页面样式优化:优化各页面的 Tabs 组件样式和结构
- 依赖更新:更新 dompurify 依赖至 3.4.11 版本
Fixed
- 顶部导航:修复导航项宽度计算逻辑,确保导航项正确显示
- 会员等级接口:修复获取会员等级接口的返回格式
- 聊天页面:优化通知设置的提示信息
- 分析服务:修复查询参数类型和时间戳处理逻辑
- 路由管理:添加已登录用户访问登录页的重定向守卫
v0.62.0 - 2026-06-20
Added
工作流引擎增强
- 子流程配置:支持子流程调用模式、执行方式、驳回策略等配置项,支持父子流程之间的跳转与数据映射
- 发起人维度条件:条件编辑器支持发起人相关字段选项,支持多选和条件运算符的动态切换
- 超时处理升级机制:超时提醒耗尽后,支持自动同意、自动拒绝或转交给上级处理
- 节点运行态展示:工作流图增加节点运行态与分支状态展示功能,支持运行态聚合逻辑
- 只读模式:工作流图增加只读模式支持,隐藏按钮与选择面板
- 监控表格增强:监控表格增加当前节点/耗时列与取消、删除操作
- 审批时间线增强:添加发起人信息与流程结束状态展示,重构节点运行态聚合逻辑
数据库管理
- 新增数据库概览面板(OverviewPanel):展示数据库基本信息
- 新增SQL 控制台(SqlConsole):支持 SQL 查询执行
- 新增数据库管理模拟数据和 API 处理逻辑(MockTableDef、MockColumn 类型)
支付管理
- 新增退款查询与统计面板:在 PaymentRefundsPage 中增加时间范围查询,优化退款查询操作
- 新增 PaymentStatsPanel 组件:展示支付统计与趋势图表
聊天功能
- 新增语音消息发送与接收:使用 MediaRecorder 实现语音录制
- 新增通知偏好设置:支持桌面通知与提示音
- 新增音频预览底部固定播放条:使用 createPortal 将音频播放器固定在页面底部
Changed
- 工作流模块文档更新:添加比例会签、随机一人等新审批方式,完善节点审批人指定方式及操作按钮设置
- 音频预览播放器样式优化:统一使用语义文字色,确保明暗主题下可读性
- 节点卡片运行态信息展示样式优化:调整布局,增加信息容器
Fixed
- 修复支付统计退款日期处理逻辑:优化退款日期的 SQL 查询,确保正确处理退款状态和日期聚合
- 修复数据库管理表格可写性判断逻辑:增加对表格类型的判断,确保只有表格类型的项可写入
- 修复工作流实例子流程发起人候选人初始化逻辑:移除候选人变量的初始值设定,确保根据配置动态赋值
- 修复工作流条件值空串被误解析为 id 0 的问题,并补充分支节点文档
v0.61.0 - 2026-06-19
Added
工作流表单设计器与表单库(Form Library)
- 新增「表单库」模块(工作流引擎下):独立的表单列表页与独立表单设计器页,支持表单的创建、编辑、预览、删除;权限码
workflow:form:*,会员/超管菜单自动绑定 - 流程定义第二步「表单设计」改为从表单库下拉选择已设计的表单,并支持在流程设计器内内联新建 / 编辑表单(不离开当前页)
- 历史实例表单快照:流程实例发起时冻结当时的表单结构进
formSnapshot,后续表单修改不影响历史实例的展示与审批(流程定义始终实时引用最新表单) - 表单设计器大幅增强(对标钉钉 / 飞书):
- 丰富控件:单/多行文本、数字、金额、日期、日期区间、时间、下拉单选/多选、单选框组、复选框组、开关、滑块、标签、颜色选择器、手机号、邮箱、身份证、网址、密码、验证码(PinCode)、自动完成、评分、公式、附件、图片、省市区、手写签名、富文本、明细、说明文字、流水号、分栏、分割线、分组
- 系统组件:用户选择器、部门选择器、数据字典选择器,与系统用户 / 组织 / 字典联动
- 撤销 / 重做(支持 Ctrl+Z、Ctrl+Shift+Z 快捷键,连续编辑合并为一步)
- 嵌套拖拽:控件可拖入分栏列与分组内,支持顶层 ↔ 分栏 ↔ 分组的跨容器移动与排序
- 响应式列宽:字段按整行 / 1/2 / 1/3 / 1/4 自动并排
- 标签设置:表单级与字段级均支持
labelPosition(顶部/左侧/内嵌)、labelAlign(左/右)、labelWidth,字段级覆盖表单级 - 字段复制、只读、默认隐藏、字段级多条件显隐联动(and / or)
- PC / 移动双端预览,以及表单 JSON 预览(一键复制)
会员签到与会员管理增强
- 新增会员签到模块:连续签到规则、积分 / 经验奖励、签到日历展示本月签到、按日期范围筛选签到历史
- 会员管理新增关键词搜索(昵称 / ID)与导出会员 CSV
- 会员前台支持用户自定义主题色;会员列表昵称列展示头像
终端与运维增强
- Web 终端新增字体设置(字号、字母间距、字体粗细)、最小对比度、右键选词等终端偏好
- 新增终端主题选择器(暗色 / 亮色主题,选中自动滚动到视图)
- 镜像管理增强:镜像分组展示、自动展开、镜像树结构构建
Changed
- 日期格式统一为 date-fns 标准 token(
yyyy-MM-dd),并对历史 / 用户数据做兼容归一化,避免 Semi DatePicker 在 date-fns v2 下因YYYY/DD受保护 token 抛错 - 终端标签页右键菜单改用 Semi
Dropdown组件(自动处理边界翻转) - 容器管理列表移除分页以简化界面
- SSH 配置表单改为响应式栅格布局
Fixed
- 修复表单设计器隐藏菜单 ID 与「数据脱敏」菜单 ID 冲突(470 → 474),导致管理员打开表单设计器提示「没有访问权限」的问题
- 修复嵌套字段(分栏列 / 分组内)无法编辑、删除的问题(字段树改为递归查找 / 更新 / 删除)
- 修复登录历史、会员详情交易记录等列宽展示问题
v0.60.0 - 2026-06-17
Added
系统运维工具箱(Ops Toolbox)
- 新增"系统运维"子菜单(系统设置下),提供一站式服务器运维能力,无需离开管理后台
- Web 终端:基于 WebSocket 的全功能 SSH 终端,支持多分屏、实时输入输出、分辨率自适应
- 终端录屏:自动录制终端操作并支持回放,可按时间/大小筛选,支持自动清理策略
- 文件管理器:服务器文件系统浏览、上传/下载、重命名、删除、权限查看
- 进程管理:进程列表与实时资源占用、结束进程、调整优先级(nice)
- 端口监听:当前监听端口列表、进程关联、内外网标识
- Docker 管理:容器/镜像列表、启停/重启/删除、实时日志查看
- 网络诊断:ping、traceroute、DNS 转换、端口连通性检测
- 服务管理:systemd 服务列表、状态查看、启停/重启/设置开机自启
- 日志查看器:实时流式日志浏览,支持内容书签标记与内容加载
数据分析与前端错误监控
- 新增"数据分析"一级菜单,权限码
analytics:*/monitor:error:* - 行为分析:PV/UV、停留时长、点击事件等埋点指标采集与大盘展示,支持时间范围、设备、操作系统多维筛选
- 前端错误监控:自动采集 JS 异常与 Promise 拒绝并上报,错误列表 + 堆栈详情查看,支持按错误类型/页面/异常信息筛选
- 分析数据管理:请求历史列表与按条件清除
Changed
种子数据统一来源(shared/seed-data.ts)
- 将原散落在
seed.ts的业务实体数据迁移至packages/shared/src/seed-data.ts,新增 8 个 SEED 常量:SEED_TAGS、SEED_DATA_MASK_CONFIGS、SEED_MEMBER_LEVELS、SEED_COUPONS、SEED_EMAIL_TEMPLATES、SEED_SMS_TEMPLATES、SEED_INAPP_TEMPLATES、SEED_TENANTS seed.ts改为 import 并使用这些常量;MSW mock data 文件同步改为import + spread,彻底消除前端 Demo 模式与 DB 种子数据的重复定义(之前数据脱敏规则 mock 少一条 idCard 规则的问题也一并修复)- 邮件/短信/站内信模板统一为 3 条,模板内容与 code 在 Demo 模式和真实 DB 中完全一致
users.tsmock 中的superAdminRole、normalUserRole、管理员岗位改为直接从SEED_ROLES/SEED_POSITIONS派生,消除重复定义- 更新
crud-mock.md与seed-config.mdSkill 模板,规范新模块的 SEED 常量声明步骤
Fixed
- 修复
db:seed因email_templates表 PK 冲突(id=1已被旧模板占用)导致种子数据执行失败的问题;对 email/sms/inapp 模板及 tags 去掉显式id插入,改为 DB 自动分配,与onConflictDoNothing({ target: code/name })策略匹配 - 修复
MemberLayout.tsx的两处预存类型错误:NAV_ITEMS as const导致 readonly 不兼容,以及collapseText回调参数boolean未声明为可选
Docs
- 文档站首页 features 卡片从 6 → 9,新增「支付中心」「会员中心」「数据分析与错误监控」,更新「运维与可观测」补充系统运维工具箱描述
- 核心能力矩阵(
FeatureMatrixFlow)新增 19 个条目:系统运维 8 项 + 数据分析 3 项 + 支付中心 3 项 + 会员中心 5 项 docs/product/features.md补充「系统运维」独立章节(9 项)+ 新增「数据分析」「支付中心」「会员中心」三个完整章节docs/product/overview.md产品价值新增 4 项:支付中心、会员体系、数据分析/错误监控、一站式系统运维
v0.59.0 - 2026-06-17
Added
前台会员体系(Members)
- 新增面向 C 端普通用户的前台会员体系,与后台管理员体系完全隔离:独立
members表、独立 JWT(payload 带type:'member',memberAuthMiddleware强制校验,杜绝与管理员 token 互窜)、独立 Redis 会话前缀(member-session:) - 会员认证(
/api/member/auth/*):支持手机号+短信验证码、手机号+密码、邮箱+密码、用户名+密码 4 种登录方式;含注册、登录、刷新、登出、改资料、改密码、短信重置密码;验证码存 Redis + 发码限流;密码bcryptjs加密 - 会员自助(
/api/member/*,按currentMemberId()过滤防越权):积分账户与流水、钱包与流水、发起充值、会员等级权益、我的优惠券、领券中心、领取优惠券 - 积分系统:积分账户(
version乐观锁)+ 追加型流水,统一记账 APIchangePoints()(事务 + 乐观锁 + 原子写流水,防并发超扣),封装 earn/redeem/adjust/refund,预留供未来订单系统接入 - 会员等级:等级配置(成长值门槛、折扣、权益)+ 按成长值自动定级
- 钱包余额:余额账户(单位分,
version乐观锁)+ 流水;充值接入已有支付中心(bizType='member_recharge'),监听支付成功事件原子入账,充值接口幂等 - 优惠券:模板(满减 / 折扣)+ 券码,支持发券 / 领取 / 核销 / 作废 / 过期,原子防超发;核销预留统一 API
- 后台管理:新增"会员中心"一级菜单(会员管理、会员等级、积分管理、钱包管理、优惠券管理、领券记录 6 个页面),权限码
member:*,全部带操作审计;含会员 CRUD / 启禁 / 重置密码 / 导出、积分钱包手动调整 / 退款、优惠券模板管理与发券核销 - 前台 SPA:Vite 多入口新增
member.html独立入口(独立 React 根、HashRouter、移动优先 UI、底部 TabBar),独立请求实例member-request;含登录/注册、个人中心、积分、钱包充值、优惠券、等级权益、资料/密码页 - 新增 8 张表(
members/member_levels/member_point_accounts/member_point_transactions/member_wallets/member_wallet_transactions/coupons/member_coupons)及迁移;同步覆盖 MSW Demo Mock(前台 + 后台)与种子数据(4 级会员等级、演示会员13800138000 / 123456、示例优惠券)
Security
- 前后台双用户体系严格隔离:会员 token 与管理员 token 通过
type:'member'双向拒绝互窜;所有/api/member/*自助接口强制按会员自身 ID 过滤,防止越权访问他人数据 - 短信发码限流 + Redis 存码,防爆破 / 防刷;钱包充值幂等(
idempotencyGuard);积分 / 钱包记账事务 + 乐观锁防并发超扣
v0.58.1 - 2026-06-16
Added
支付中心
- 新增支付事件 Outbox 机制(
payment_events表):状态更新与事件写入同事务原子持久化,进程崩溃后由 crondispatchPaymentEvents兜底补投,杜绝「已支付但业务未履约」 - 新增支付/退款统计接口(
GET /api/payment/stats)及仪表盘统计卡(今日金额、总金额、订单数、成功数、退款额) - 新增订单/退款 Excel/CSV 导出接口(
GET /api/payment/orders/export等)及前端导出按钮 - 新增手动下单弹窗与微信 native 二维码渲染(基于
qrcode.react) - 下单、退款接口接入
idempotencyGuard(15s 窗口)防重复提交
文档
- 新增「幂等防重复提交」独立文档页(
/backend/idempotency),涵盖两种工作模式、配置项、工作机制与注意事项 - 工作流文档从后端子节点提升为顶级文档节点(
/workflow/),顶部导航新增独立入口,补全「节点类型」页
Fixed
- 修复支付统计查询
todayAmount因向 Drizzle sql 模板裸插Date对象导致的ERR_INVALID_ARG_TYPE500 错误 - 修复支付/退款回调并发场景下事件重复触发问题(原子条件更新,仅当真正更新到行时发事件)
- 修复渠道关单 cron 可能误关已支付订单(先查单确认状态再关闭)
- 修复回调通知公开端点未进入 Swagger 文档(改用
defineOpenAPIRoute) - 修复订单列表 dataScope
self归属列由付款人userId改为创建人createdBy,与全局数据权限语义一致 - 修复 VitePress 配置
lastUpdated类型错误(根级改为boolean,文本/格式选项移入themeConfig)
v0.58.0 - 2026-06-15
Added
支付中心
- 新增统一支付中心模块,提供与渠道无关的统一支付接口,业务模块一行代码即可接入,无需关注各渠道签名与回调细节
- 多渠道支持:微信支付(Native 扫码 / JSAPI / H5)、支付宝(电脑网站 / 手机网站 / APP),采用「适配器接口 + 注册表」架构,新增渠道零改动业务层
- 统一门面:
createPayment/queryPayment/refund/closePayment四个方法,金额全链路整数分 - 真实签名/验签:Node 原生 crypto 实现微信 v3(RSA-SHA256 鉴权头 + AES-256-GCM 回调解密 + 平台证书按
Wechatpay-Serial自动下载选证)与支付宝(RSA2 签名/验签 + 同步响应验签),外呼全程经http-client - 异步通知:公开回调端点
/api/public/payment/notify/{channel}验签后经进程内事件总线paymentEventBus通知业务模块,并通过 WebSocket 实时推送付款用户 - 退款:统一退款接口,支持部分退款与退款查询,退款回调原子幂等处理
- 后台管理:支付渠道配置(密钥加密存储 + 掩码)、支付订单(查单 / 关单 / 退款)、退款记录、回调日志四个管理页面
- 对账与关单:新增
closeExpiredPaymentOrders、paymentReconciliation定时任务处理器(回调 + 主动查单双保险) - 新增 4 张表(
payment_channel_configs/payment_orders/payment_refunds/payment_notify_logs)及对应迁移 - 同步覆盖 MSW Demo Mock 与设计文档
docs/backend/payment.md
Security
- 渠道密钥(APIv3 Key / 商户私钥 / 支付宝应用私钥)
encryptField加密落库,响应仅以hasXxx布尔位标识,绝不返回明文 - 渠道创建 / 更新不记录请求体,避免密钥写入操作日志
- 支付成功与退款回调采用原子条件更新 + 幂等发事件,杜绝并发回调重复履约
- 回调地址强制校验为公网 http(s) 绝对地址
v0.57.0 - 2026-06-14
Added
数据脱敏
- 新增「扫描敏感字段」功能:自动扫描数据库
information_schema.columns,识别字段名含phone、mobile、email、id_card、idCard、certNo、bank、bankCard、real_name、realName等关键字的敏感列 - 扫描结果以表格形式展示,支持内联编辑实体名、字段标签和脱敏类型,默认勾选未配置规则的字段
- 支持一键批量生成脱敏规则(
POST /api/data-mask-configs/batch-create),重复规则自动跳过 - 新增
GET /api/data-mask-configs/scan接口,同步覆盖 MSW Demo Mock
行为分析
- 新增用户行为分析页面(页面停留时长、功能使用频率、点击热力图统计)
- 新增用户行为统计接口及
UserStatsDTO、UserStatItemDTO - 新增埋点事件列表与清除数据功能
前端错误监控
- 新增前端错误上报功能及错误列表管理页面
Fixed
- 修复功能使用统计表格行键类型导致的类型错误
- 修复事件列表接口返回类型(
EventListDTO→EventListItemDTO)
v0.56.0 - 2026-06-14
Added
系统运维 — Docker 管理
- 容器管理:新增 Docker 管理页面(
/system/docker),支持容器列表(按 docker-compose 项目分组树形展示)、启动/停止/重启、查看实时日志(2s 轮询,支持暂停/继续追踪)、资源占用(CPU%、内存进度条)、容器检查详情(JSON) - 镜像管理:支持列出所有镜像、删除镜像、拉取新镜像(通过弹窗输入镜像标签)
- 网络管理:支持列出网络(含 IP 配置/驱动/容器数)、删除网络、创建网络(支持 bridge/overlay/host/macvlan 驱动及内部网络选项)
- 存储卷管理:支持列出卷(含驱动/挂载点)、删除卷、创建卷
- 容器文件浏览器:终端页面新增 Docker 侧边栏,可浏览容器内文件树(懒加载)、只读预览文件(Monaco Editor)、一键 Attach Shell 进入容器终端
- 容器 Shell 接入:支持通过
docker exec -it在新终端 Tab 中接入正在运行的容器(自动设置 PATH 和 TERM 环境变量)
系统运维 — SSH 快捷连接
- SSH 配置管理:终端侧边栏新增 SSH 配置面板,支持新增/编辑/删除 SSH 连接配置(主机、端口、用户名)
- 多种认证方式:支持密码、私钥路径、私钥内容、SSH Agent 四种认证方式
- 字段级加密:密码、私钥等敏感字段通过 AES-256-GCM 加密存储,密钥由
FIELD_ENCRYPTION_KEY或JWT_SECRET派生 - 一键连接:点击「连接」在新终端 Tab 中建立 SSH 会话
系统运维 — 新增三个运维工具页面
- 端口监听(
/system/ports):展示当前系统所有 TCP 监听端口,包括协议/本地地址/端口/PID/进程名,支持关键词过滤 - 网络诊断(
/system/network-diag):支持 ping(实时流式输出)、traceroute(实时流式输出 + 逐跳延迟可视化表格,含彩色进度条)、nslookup(DNS 查询)、TCP 端口检测 - systemd 服务管理(
/system/services):列出所有 systemd 服务(加载状态/活动状态/子状态),支持启动/停止/重启操作、查看近期日志(SideSheet)、实时日志追踪(journalctl -f);非 Linux 系统显示不可用提示 - 日志查看器(
/system/log-viewer):支持读取服务器端任意日志文件末尾 500 行、tail -f实时追踪、关键词高亮(行级黄色指示)、仅显示匹配行过滤、ANSI 颜色序列渲染(支持 16 色前景/背景、粗体/斜体/暗淡)
终端增强
- Ctrl+F 内置搜索:xterm.js 内新增搜索栏,支持上下导航、大小写切换,通过
attachCustomKeyEventHandler拦截按键防止发送^F到终端 - OSC 7 工作目录追踪:监听 Shell 输出的 OSC 7 序列,Tab 标题实时更新为当前目录
- WSL 发行版支持:Windows 下自动检测已安装的 WSL 发行版并加入 Shell 选择列表,支持一键进入各 WSL 环境
- 终端设置新增选项:光标样式(块/下划线/竖线)、光标闪烁、选中自动复制(默认开启)、渲染模式(Canvas/WebGL)、Alt 快速滚动倍率、滚回行数
- xterm 滚动条美化:将 xterm.js 自定义滚动条宽度收窄至 5px,颜色跟随 Semi Design 主题变量
终端录屏
- 命令计数:录屏列表新增「命令数」列,实时统计每条录屏中的命令输入次数
- 清除录屏:新增「清除录屏」分裂按钮(SplitButtonGroup),支持清除 1/3/6/12 个月前记录或清除全部,操作前弹窗确认
- 录屏详情:操作列新增「详情」按钮,解析用户输入事件流并展示命令历史(含时间戳、可单独复制)
文件预览
- Monaco Editor 代码预览:
FilePreviewModal的代码文件和纯文本文件预览改用 Monaco Editor(取代等宽字体 pre 元素),支持语法高亮和行号
Fixed
- 修复终端分屏关闭后布局错乱问题:
closePane折叠时继承 split 节点 id,保持父 Panel key 稳定;根层折叠始终包裹在PanelGroup+Panel中防止 TerminalTab 重建 - 修复 Docker 容器文件 API 永久挂起:
execInContainer改为监听原始 stream 的end事件(而非 passthrough),加入Tty: false和hijack: true参数 - 修复 docker exec 进容器 TTY 问题:添加
-t标志并显式设置 PATH 和 TERM 环境变量,解决非登录 shell 命令找不到的问题
v0.55.0 - 2026-06-13
Added
进程管理
- 进程列表:系统运维新增「进程管理」页面,使用 SSE 实时推送(每 3 秒更新一次),展示 PID、进程名、用户、状态、CPU%、内存、线程数、Nice/优先级类、启动时间、监听端口等字段,使用虚拟化表格(Semi UI virtualized)无分页展示所有进程
- 跨平台支持:Linux/macOS 通过
ps命令获取进程信息,Windows 通过 PowerShellGet-Process获取;端口列表(Linux 用ss -tlnpH,macOS 用lsof -i,Windows 用Get-NetTCPConnection),每 15 秒缓存一次 - 进程操作:支持向进程发送终止信号(SIGTERM/SIGKILL/SIGINT/SIGHUP);支持调整优先级(Linux/macOS 的 nice 值,Windows 的优先级类)
- 进程详情:点击「详情」按钮查看完整进程信息,包括完整命令行(带 lstart 启动时间)和当前网络连接(TCP 连接状态、本地/远端地址端口)
- 数据导出:支持导出 Excel 和 CSV 格式,包含所有进程字段及端口信息
- 客户端过滤:进程列表支持按名称/PID/用户关键词过滤,以及按状态(运行中/休眠/停止/僵尸等)过滤
- 菜单配置:在系统运维目录下新增进程管理菜单(ID: 505)及结束进程、调整优先级按钮权限(ID: 506/507)
文件管理器
- 权限编辑器:新增文件权限编辑组件(ChmodEditor),支持权限字符串与八进制值的转换和编辑
- 文件夹选择器:新增 FolderPickerModal 组件,支持移动/复制操作;Windows 下支持盘符切换
- 文件删除确认:删除操作改为 Modal.confirm 弹窗确认,提升误操作防护
- 虚拟化网格:文件列表的网格视图引入虚拟化渲染,大目录下性能显著提升
终端管理
- 自定义按键处理器:新增自定义按键事件处理器,在 xterm 处理前拦截按键事件,修复 stale closure 问题
- 滚回行数设置:终端设置面板新增滚回缓冲行数配置,默认 5000 行
Changed
- 地区管理表格:去掉斑马纹配置,禁用条纹行样式
- 虚拟化表格固定列修复:修复地区管理和进程管理页面
fixed: 'right'列在全宽模式下无法生效的问题;根因为外层容器overflowX: auto拦截了 Semi UI Table 内部的 sticky 滚动容器,移除后 sticky 正常生效;同时调整名称列最小宽度,确保表格内容宽度超出容器,使 fixed:right 的粘性效果始终可见 - 终端偏好 scrollback 字段:补充
usePreferences.tsx中TerminalPreferences缺少的scrollback默认值
Fixed
- 修复
FileExplorer.tsx中Tree组件ref类型错误(ref={treeRef as never}→@ts-expect-error注释处理)
v0.54.0 - 2026-06-12
Added
Web 终端全面增强
- Shell 自动检测:后端按平台动态探测可用 Shell(Linux/WSL 读
/etc/shells+ 探测 bash/zsh/fish/sh;Windows 探测 PowerShell/CMD/Git Bash);前端终端标签和下拉菜单改为动态加载,修复 WSL 下仍显示 Windows Shell 名称的问题 - 文件编辑 Tab:文件树点击文本文件在终端 Tab 界面新增编辑 Tab,使用 Monaco Editor(已有依赖),支持代码高亮、Ctrl+S 保存、dirty 圆点标记,编辑器配色与终端主题一致
- 文件操作增强:新增文本文件读写、新建文件/文件夹、删除(含二次确认)、重命名/移动接口;文件树右键菜单支持全套文件操作
- 终端主题系统:内置 23 套 vscode/Catppuccin/Dracula/Nord/Gruvbox 等经典配色方案,xterm 终端与 Monaco 编辑器共用同一调色板;跟随应用明暗模式,亮/暗可分别选主题
- 终端设置面板:侧边抽屉支持配置默认 Shell、暗色/亮色主题、字体、字号、行高;配置实时生效,保存到
users.preferences.terminal(零 schema 改动) - 文件夹收藏:文件树目录可收藏,收藏夹以折叠面板展示,点击定位到文件树对应节点(自动展开路径 + 滚动到位),可从菜单在该目录新建终端
- Tab 拖拽排序:终端/编辑器 Tab 支持拖拽重排;右键上下文菜单支持关闭/关闭其他/关闭右侧/全部关闭
- 文件图标:文件树节点展示 vscode-icons 风格图标(基于
@iconify/react),覆盖 300+ 扩展名/特殊文件名/文件夹语义名称;文件夹展开/折叠状态切换图标 - OS 文件拖拽上传:可从本地文件管理器直接拖拽文件到文件树区域上传;拖拽时高亮当前目标目录(事件委托
data-node-path)并在顶部状态条显示目标路径 - 文件树虚拟化:Semi Tree 开启
virtualize,通过ResizeObserver动态测量容器高度传入像素值,解决height:"100%"在 flex 布局下读到 0 导致空树的问题 - 终端 Session 录屏:所有终端会话自动录制输入/输出事件(
[timeOffset, 'o'|'i', data][]格式存 JSONB),WebSocket 关闭时自动 POST 保存;terminal_recordings新表(含 db migration);新增录屏管理页(SearchToolbar+ConfigurableTable+usePagination),支持关键词搜索、xterm.js 自定义播放器(播放/暂停/倍速/进度拖拽)、删除
v0.53.0 - 2026-06-11
Added
Cron 配置器全面升级
- 高级配置 Modal(
CronBuilderModal):支持 6 字段(秒/分/时/日/月/周)可视化编辑,每字段支持"每个 / 每隔 N / 指定值 / 范围"四种模式;字段选择器显示当前值(蓝色激活 / 橙色自定义),实时刷新"最近 5 次执行时间"预览(绿色提示区,今天/明天/MM-DD 格式) - 快速配置 Popover 底部新增"高级配置"按钮,点击关闭 Popover 并打开 Modal,方便从简到繁无缝切换
- 任务列表"下次执行"列:基于
cron-parser实时计算下次运行时间,启用任务显示"今天/明天/MM-DD HH:mm:ss",停用任务显示"已停用" - Cron 表达式列执行计划 Popover:列末尾增加
?图标,悬浮展示最近 5 次执行时间(Semi DesignPopover卡片样式,带箭头)
标签页切换器(TabSwitcher)
- 标签栏最右侧新增
▾ChevronDown 按钮,始终固定(不随标签滚动),点击展开所有已打开标签页列表 - 支持中文拼音模糊搜索(
pinyin-pro),支持↑↓导航、Enter跳转、Esc关闭 - 每个列表项显示菜单路径图标 + 标题(当前激活标签加粗 + 蓝色),hover 时右侧显示
×关闭按钮 - 偏好设置新增"显示标签切换器"开关,默认开启
Changed
聊天页面
- 文件/图片发送进度:点击发送后,上传项立即以气泡形式出现在聊天消息区底部(Virtuoso Footer),显示
Progress进度条;多文件并行上传,上传完成后自动替换为真实消息 - 图片预览:待发送区域的缩略图可点击预览(支持多图切换)
- 消息删除确认:右键菜单"删除"改为先弹出
Popconfirm,防止误删;移除原有Modal.confirm双重确认 - 媒体面板文件 Tab:支持点击预览可预览文件类型,修复文件名溢出问题(
overflow: hidden+flex: '1 1 0');文件上传背景色改为bg-2,暗色模式下对比度更好
文件管理页
- 列表模式和网格模式均新增"取消选择"按钮,显示已选数量,点击清空跨页选中项
- 网格模式:移除日期行,修复文件名 Tooltip 被透明遮罩按钮遮挡的问题(
z-index: 2)
个人中心
- "操作日志" TabPane 拆分为"登录记录"和"操作记录"两个独立顶层 Tab,无需再点两次切换
其他
- QuickChat 面板 z-index 从 1001 降至 901(低于 Semi Modal 的 1000),修复文件预览 Modal 被 QuickChat 遮挡的问题
postForm新增onProgress可选参数(基于 XHR),统一替代原来独立的postFormWithProgress方法
v0.52.0 - 2026-06-10
Changed
UI 布局对齐优化
- 智能对话页:右侧 detail 区域重构为
MasterDetailLayout.Header+MasterDetailLayout.Body结构,与字典管理页保持一致的实现方式,左右顶部分割线完美对齐 - 消息中心页:左右两侧 header 均改用
MasterDetailLayout.Header,body 区域改用MasterDetailLayout.Body;右侧头像统一调整为size={24},确保高度与左侧等高(44px 像素级对齐)
数据库管理页优化
- 表浏览左侧列表:表格项从双行(名称+大小独占一行)改为单行显示(
tableName · size),列表更紧凑;Schema 折叠面板内容区域 padding 清零,减少折叠标题与表格项的间距
字典管理页优化
- 禁用字典标识:左侧字典列表中,禁用状态的字典项 meta 行右侧显示"停用"标签,并降低整体 opacity 至 0.55,区分度更高
Fixed
- 依赖冲突:将
@hono/node-server版本从^2.0.4回退至^1.19.14,解决与@hono/node-ws@1.3.1(peer dependency 要求^1.x)的版本冲突
Dependencies
- 更新
@douyinfe/semi-ui、@douyinfe/semi-illustrations、dompurify、@types/react、typescript-eslint、electron、electron-builder、zod等依赖至最新版本
v0.51.0 - 2026-06-10
Added
AI 对话功能增强
- 消息反馈(点赞/点踩)持久化:
ai_messages表新增feedback字段(1=点赞, -1=点踩, null=未反馈);PUT /{convId}/messages/{msgId}/feedback接口持久化反馈;前端convertApiMessage将 DBfeedback映射到 Semilike/dislike字段,刷新后回显正确 - 重新生成:点击消息的 redo 按钮,删除 DB 里的 assistant 回复,重新发送上一条 user 消息
- 消息编辑重发:点击用户消息的编辑图标,进入受控编辑框(TextArea + 重新发送/取消),提交后删除该消息之后的所有 assistant 回复并以新内容重新发送(Ctrl/Cmd+Enter 快捷提交)
- 消息删除:点击消息操作栏"更多"里的删除,UI 移除后调
DELETE /{convId}/messages/{msgId}/cascade级联删除 DB 里该消息及其之后所有消息 - AI 反馈管理页:新增
/ai/feedback页面,管理员可查看所有带反馈的 assistant 消息,支持按点赞/点踩筛选,权限ai:feedback:view - 移除 CDN 复制 Toast 重复:Semi
AIChatDialogue内置复制 Toast,去掉我们额外的重复提示 - 隐藏分享按钮:通过
dialogueRenderConfig.renderDialogueAction过滤shareNode,移除暂无实际功能的分享按钮 - 移除提示词(hints):删除"如何新增 CRUD 模块"等默认提示,保持界面简洁
密码强度指示器
- 新增
PasswordStrengthMeter组件,4 段渐变强度条 + 弱/一般/良好/强标签 + 最小位数提示 - 覆盖所有密码输入场景:ProfilePage 修改密码、ForceChangePasswordModal、ResetPasswordPage、UsersPage(新建/修改/批量修改密码),全部 modal 关闭时重置状态
- 强度条与最小位数提示同行显示;若有大写/特殊字符策略要求则在下方另行显示
服务监控 Descriptions 改造
- 将所有 tab(总览 / CPU / 内存 / 磁盘 / Node.js / HTTP / 数据库 / Redis / WebSocket)的 key-value 信息展示从自定义
InfoRow+monitor-detail-grid全面替换为 SemiDescriptions组件(column=2, layout="horizontal");图表和明细表格保持原样 - 删除废弃的
InfoRow组件及相关 CSS
Changed
- 偏好设置排序:「顶部栏深色模式」调整到「侧边栏深色模式」上方,更符合视觉层级
- AI 对话会话列表:从 Semi List 自定义样式迁移到
NavListPanel+NavListItem,与项目其他导航列表风格统一;新建对话按钮移到面板标题栏右侧
Fixed
- AI 对话页:无历史对话时直接发送消息无响应(
activeConvId === null直接 return),改为自动创建新对话再发送 - AI 反馈页:时间列宽度不足导致日期换行,改为 180px +
whiteSpace: nowrap
v0.50.0 - 2026-06-10
Added
PDF 预览去 CDN(本地 npm 资源替代 jsDelivr / Google Fonts)
PDFPreviewPanel改用本地加载策略,彻底移除运行时对外部 CDN 的依赖:pdfium.wasm(4.5 MB):通过@embedpdf/pdfium/pdfium.wasm?urlnpm 引入,Vite dev/生产均产出为本地资源;传给wasmUrl时用new URL(..., globalThis.location.origin).href转绝对路径,修复 blob worker 无法解析根相对路径的问题- 默认印章库(
@embedpdf/default-stamps):设置stamp: { manifests: [] }禁用,避免从 jsDelivr 拉取manifest.json+stamps.pdf(只读预览不使用印章,零功能损失) - 查看器 UI 字体 Open Sans 和签名手写体:设置
fonts: { ui: null, signature: null },回退系统字体栈,国内用户不再因 Google Fonts 被墙而遭遇工具栏渲染阻塞
@embedpdf/pdfium在packages/web/package.json中从传递依赖升级为显式声明
NavListPanel 深化重构(泛型 + Semi 带筛选器最佳实践)
NavListPanel<T>升级为泛型组件,支持 Semi List 原生dataSource: T[]+renderItem: (item: T, index: number) => ReactNodeAPI:- 空数组时由 List 原生
emptyContent处理,无需手动childCount判断 - 4 个调用方(DictsPage / CacheManagePage / LogFilesPage / CategorySidebar)迁移至
dataSource+renderItem,DbAdminPage(Collapse 分组)保持rawBody+children路径
- 空数组时由 List 原生
- 对齐 Semi "带筛选器" 最佳实践:搜索 Input 进
List header槽(固定不滚动)、分页进List footer槽(固定不滚动)、条目区域由.semi-spin承载flex:1; overflow-y:auto滚动 - 分页器居中:
List footer槽 CSS 加display:flex; justify-content:center - Skill 文档(
constraints.md)同步更新NavListPanel<T>使用规范,明确推荐用法与 rawBody 兼容路径
Changed
MasterDetailLayout折叠按钮 chevron 颜色改为主题色--semi-color-primary(hover 改为--semi-color-primary-hover),替代原来的灰色文本色
v0.49.0 - 2026-06-09
Added
NavListPanel / NavListItem 通用导航列表组件
- 新增
NavListPanel+NavListItem组件(packages/web/src/components/NavListPanel.tsx),作为左右分栏布局中左侧平铺列表的统一实现 NavListPanel:带标题栏、搜索框、加载状态、空状态、底部插槽的面板容器NavListItem:圆角卡片条目,支持左侧图标、主/副标题、元信息行、hover 可见操作区(extra)、extraAlwaysVisible模式- 根元素改用
<button>语义元素,原生支持键盘交互,消除无障碍警告
Changed
多页面左侧列表改造(统一使用 NavListPanel + NavListItem)
- 日志文件管理:
LogFilesPage左侧文件列表,hover 显示「下载/删除」Dropdown 更多菜单;修复 meta 区<Tag color>渲染多余色块的问题,改用 styled span - 缓存管理:
CacheManagePage左侧分类列表,彩色圆点图标 + 分类名 + 计数 Badge;删除按钮常驻可见;去除CacheManagePage.css中全部 master 相关手写样式 - 流程分类侧栏:
CategorySidebar用NavListPanel重写,Dropdown 从trigger="custom"改为trigger="click"标准模式;「全部流程」用LayoutGrid图标,有颜色的分类用彩色圆点,无颜色的分类用Layers图标
Fixed
文件存储 bucketName 快照
managed_files表新增bucketName字段(nullable),上传时快照 bucket 标识readStoredFile/deleteStoredFile优先使用快照值,修复修改 OSS/S3/COS bucket 名后旧文件无法访问的问题- 向后兼容:旧记录
bucketName为 null 时继续使用当前配置
v0.48.0 - 2026-06-09
Added
文件预览扩展(5 种新格式)
- Word (.docx):使用
docx-preview纯前端渲染,无需后端转换,支持表格、页眉页脚、脚注 - Markdown (.md):使用
react-markdown+ GFM 渲染,支持标题、代码块语法高亮、表格、任务列表 - 纯文本 (.txt):等宽字体原样展示,保留换行与缩进
- CSV:复用 Excel 预览路径(后端 csv-to-univer 解析 → Univer 渲染),零前端改动
- ZIP:使用
jszip解析并用 Semi Tree 展示文件树,含文件数量/大小统计
文件预览全屏切换
- 所有格式(Excel / Word / Markdown / txt / ZIP / PDF)预览弹窗右上角新增 ↗/↙ 全屏切换按钮
- PDF 预览面板在
FilePreviewModal上下文中支持全屏;在聊天侧边栏中独立使用时不受影响
AppModal 组件
- 新增
AppModal组件,在 Semi Design Modal 基础上增加右上角全屏切换(↗)和关闭(✕)按钮 - 全站 30+ 个新增/编辑表单弹窗统一替换为
AppModal
Changed
- 各预览 Panel(ExcelPreviewPanel / DocxPreviewPanel / MarkdownPreviewPanel / ZipPreviewPanel)重构为纯内容组件,标题栏统一由
FilePreviewModal管理,提升可复用性
Fixed
- Excel/CSV 全屏预览空白:Semi Modal fullscreen 模式下
semi-modal-body-wrapper高度仅为 78px,改用height: 100vh绕过,配合 spinner + 360ms 延迟重建 Univer 实例,确保 canvas 在最终尺寸容器中初始化 - Excel 行高自适应:后端 rowData 改为
{ ia: 1, ah? }模式,前端在LifecycleStages.Rendered后触发全表自适应行高命令
v0.47.0 - 2026-06-08
Added
Excel 文件在线预览
- 新增 Excel (.xlsx) 文件在线预览功能,基于 Univer 开源版渲染,零后端新依赖
- 后端新增
GET /api/files/{id}/sheet-preview接口,使用内置exceljs将 xlsx 解析为 UniverIWorkbookDataJSON(支持单元格值、基础样式、合并、行高列宽) - 前端
FilePreviewModal统一接入 Excel 预览分支,Univer 组件懒加载不影响首屏 - 文件管理列表视图、网格视图、存储浏览、文件附件组件、聊天页面均支持 xlsx 在线预览
- 聊天历史消息(无 fileId)的 xlsx 文件点击后自动触发下载,不显示报错
ChatAssetMeta新增fileId字段,新发送的文件消息可携带 fileId 支持预览- 文档站新增「前端 → 文件预览组件」页面,详述组件接口、各格式实现细节及新页面接入指南
标签页增强
- 标签页下拉菜单新增全屏切换功能(进入/退出全屏)
用户管理
- 新增
UserTransferSelect穿梭框组件,支持树形结构展示用户和部门,用于角色/岗位成员分配 - 用户头像管理:支持上传自定义头像、裁剪、选择预设头像,更新后全局头像实时同步
- 用户信息更新后通过事件机制同步 AdminLayout 头像,避免整棵 App 重渲染
角色 / 岗位 / 部门
- 角色、岗位、部门列表新增用户数量与用户头像预览字段
- 角色成员分配改为
SideSheet侧边栏展示,体验更流畅 - 岗位管理新增成员管理功能:支持查看和设置岗位成员
v0.46.0 - 2026-06-07
Added
会话管理
- 添加用户登录地点功能:会话 DTO 新增
location字段,支持展示用户登录地理位置 - 优化登录地点和 IP 地址展示:登录地点为空时显示 IP 地址
用户头像
- 添加预设头像选择功能:新增头像选择 Modal,支持从预设头像中选择并更新用户头像
文件管理
- 文件列表新增 MIME 类型列展示
日志管理
- 添加清除登录日志和操作日志功能:支持按月份清除,需验证管理员密码
- 定时任务管理优化清除日志功能:清除日志按钮改为分组按钮,支持直接清除和按时间清除选项
布局管理
- 添加在新标签页中打开功能:下拉菜单新增选项,使用 ExternalLink 图标实现页面链接在新标签页中打开
- 优化最近和收藏记录展示:使用 List 组件替代原有 div 结构
Fixed
- 修复
SessionInfo新增location字段后,auth.ts和oauth.service.ts中registerSession调用缺少该字段导致的 TypeScript 编译错误
v0.45.0 - 2026-06-07
Changed
状态列全面改造(Switch 直接操作)
- 全站 16 个管理页面的「状态」列统一由
Tag/DictTag改为Switch组件,点击即可直接启用/停用,无需进入编辑弹窗 - 涉及页面:用户、部门、岗位、菜单、角色、字典(项 + 头部)、租户、地区、文件存储配置、邮件模板、短信配置、短信模板、站内信模板、标签、数据脱敏、OAuth2 应用、AI 供应商
- 停用操作统一弹
Modal.confirm二次确认,防止误操作;启用操作无需确认 - 各页面 Switch 状态列统一固定(
fixed: 'right')紧靠操作列左侧 - 特殊逻辑:文件存储配置 / 短信配置的默认配置不可直接禁用
- MSW Demo 模式全部兼容,无需额外修改(
Object.assign局部更新天然支持)
Changed(模板)
- 更新
crud-frontend.md模板:状态列改为 Switch 模式,新增togglingIdsstate 和handleToggleStatus函数标准模板
v0.44.0 - 2026-06-07
Added
维护模式
- 新增维护模式功能,支持一键开启/关闭系统维护状态
- 后端中间件拦截所有
/api/*请求,维护中返回 503,超级管理员自动旁路 - 前端
request.ts拦截 503 响应,派发maintenance:enabled事件 - 普通用户触发全屏
MaintenanceOverlay遮罩,每 30 秒自动检查是否恢复 - 超管登录后顶部显示橙色维护横幅,可直接点击关闭维护,无需进入管理页面
- 开启维护前弹出
Modal.confirm二次确认,防止误操作 - 支持配置维护提示语和预计结束时间
- 管理页面与横幅状态双向联动(
maintenance:statusChanged事件总线) /api/ws加入旁路列表,WebSocket 连接不受维护中间件影响- 新增文档:后端 → 维护模式
- MSW Mock Handler 同步支持 Demo 演示模式
- 维护状态使用内存缓存(5 秒 TTL)+ PostgreSQL 持久化,重启服务后状态保留
v0.43.0 - 2026-06-07
Added
面包屑子菜单
- 新增偏好设置「面包屑子菜单」(默认关闭),开启后悬停面包屑的目录节点弹出子菜单 Popover
- 支持无限级嵌套展开,点击叶子菜单直接跳转并关闭 Popover
- 新建
BreadcrumbMenuPopover组件,通过 Context 传递关闭回调,确保跳转后立即关闭
Electron 标题栏改进
ElectronTitleBar移至App.tsx顶层,登录页也能显示标题栏- 修复按钮点击报
An object could not be cloned:改为内联按钮() => api.xxx()包装,避免 contextBridge Proxy 函数放入对象字面量触发序列化检查 - 最大化状态改为事件驱动(主进程
maximize/unmaximize事件推送)
Changed
- 标签页标题添加
title属性,悬停时显示完整标题(标题过长时的 native tooltip) - 内容区宽度模式偏好:新增「固定宽度(1400px 居中)」选项
- 修复
AdminLayout三处 lint 警告:clearLockPassword依赖缺失、currentSelectedKeys每次重算、收藏按钮 IIFE 改为提前计算变量
v0.42.0 - 2026-06-07
Added
Electron 桌面客户端
- 新增
packages/electron/子包,基于 Electron 42 构建 Windows/macOS/Linux 桌面安装包 - 自定义无边框标题栏(Windows/Linux),拖拽区 + 最小/最大/关闭按钮,macOS 保留系统红绿灯
- 安全机制:
contextIsolation: true、nodeIntegration: false,通过 preload 仅暴露受限窗口控制 API - 构建脚本:
build:electron:win/mac/linux(自动注入VITE_ELECTRON=true,切换HashRouter和相对路径资源) - 开发脚本:
dev:electron(并发启动 web dev server + electron)
PWA 支持
- 通过
VITE_PWA_ENABLED=true开启,生成sw.js和manifest.webmanifest - 静态资源预缓存(Cache First),API 请求 Network Only,支持"添加到主屏幕"
- 内置 192×192 和 512×512 PWA 图标(由
favicon.svg生成)
Changed
- 前端路由在 Electron 模式下切换为
HashRouter(支持file://协议),浏览器模式不受影响 - 文档新增独立章节
guide/pwa.md和guide/electron.md,从deployment.md拆出
v0.41.0 - 2026-06-06
Added
菜单收藏
- 偏好设置新增「显示收藏入口」开关(默认关闭)
- 开启后:面包屑末尾出现 ⭐ 按钮(可收藏/取消收藏当前页)、顶部导航出现收藏 Popover
- 标签页右键菜单新增「收藏此页 / 取消收藏」
- 收藏数据存入
users.favorite_menus字段,跨设备同步 - 收藏列表中每项右侧有 × 按钮移除单条收藏
最近访问
- 顶部导航新增 🕐「最近访问」图标(悬浮弹出)
- 路由切换时自动记录,上限 20 条,最新在前
- 支持单条移除和一键清空,数据存
localStorage
偏好设置搜索
- 偏好设置面板顶部新增搜索框,实时过滤设置项
- 支持中文全拼 / 首字母拼音匹配(基于
pinyin-pro)
用户管理批量操作
- 工具栏新增「批量启用」和「批量停用」按钮(选中非 admin 用户时显示)
文件上传安全校验
- 基于 magic bytes(
file-type)校验上传文件的真实 MIME 类型,防止后缀欺骗 - 支持通过系统配置
file_upload_validate_type开关和file_upload_allowed_types白名单配置
环境变量 Zod 校验
config.ts改用 Zod schema 解析环境变量,启动时即验证,类型自动推导
v0.40.0 - 2026-06-06
Changed
定时任务调度引擎迁移(node-cron → pg-boss)
- 调度引擎从进程内
node-cron迁移至 pg-boss(PostgreSQL SKIP LOCKED 队列),原生支持多进程安全执行,无需NODE_APP_INSTANCE限制 cron_jobs表:移除nextRunAt字段;retryInterval单位改为秒;新增retryBackoff字段(指数退避重试)- 内置 7 个 Handler 迁移至 pg-boss worker 架构,处理器名称和行为不变
- 移除
node-cron和@types/node-cron依赖,新增pg-boss
定时任务页面增强
- 概览 Tab 新增「当前运行中」指标卡片(实时读取 pg-boss WIP 数据),5 个卡片等宽一行显示
- 执行日志「清除日志」下拉菜单新增「清除全部日志」选项(
months=0) - Cron 表达式列、处理器列、操作列均加宽
- 统一 cron 表达式格式(
*/5 * * * *5 段标准格式)
Fixed
- 窄屏下 SideSheet 宽度超出视口问题(通过 CSS media query 全局修复,
max-width: 95vw) - 清除日志下拉菜单点击后未自动关闭(添加
clickToHide)
v0.39.0 - 2026-06-06
Added
多标签页增强
- 新增「超限关闭策略」偏好(FIFO / LRU),可选关闭最早或最久未使用的标签
- 新增「新标签插入位置」偏好(末尾 / 当前后方)
- 新增「双击标签行为」偏好(刷新 / 关闭 / 无),默认双击刷新当前页
侧边栏增强
- 新增「悬浮展开侧边栏」偏好:折叠状态下鼠标悬浮即临时展开,移开自动收起
- 新增「菜单自动滚动定位」偏好:切换深层菜单时侧边栏自动平滑滚动使激活项可见
偏好设置
- 新增「面包屑可点击」开关(默认开启),关闭后面包屑仅展示路径文字
- 新增「路由切换动画」(无 / 淡入 / 上滑 / 左滑),切换标签页时内容区播放过渡动画
- 新增「灰色模式」(国家公祭日等场景)和「色弱模式」(提升对比度)无障碍选项
- 主题颜色新增 4 种预设:珊瑚橙、金橄榄、深棕、墨黑(共 19 种)
快捷键面板
- 头像菜单新增「快捷键」入口,分组展示所有全局及功能区快捷键
- 全局新增
Alt+S(侧边栏折叠/展开)和Alt+C(内容全屏/退出)
内容全屏模式
- 标签页右键菜单新增「内容全屏」:隐藏侧边栏、导航、标签栏,内容区铺满视口
- 标签页右键菜单新增「复制名称」和「复制面包屑路径」
字典管理
- 字典项新增
metadataJSON 字段,使用 Semi Design JsonViewer 可视化编辑 - 字典项弹窗改为两列布局,新增服务端重新拉取最新数据逻辑
登录日志增强
- 登录时收集设备信息(屏幕分辨率、GPU、CPU 核心数、内存),写入
login_logs表 - 登录日志统计分析新增 Tab(仿操作日志):Top 用户/IP、浏览器/OS 分布、失败 IP 告警
用户管理
- 在线用户绿点指示:用户列表「用户」列显示在线状态,实时从 Redis Session 获取
- 「更多」菜单新增「强制下线」(仅对在线用户显示,需权限
system:session:forceLogout) - 批量操作新增「批量修改密码」,受密码策略和 admin 保护约束
文件存储
- 新增 5 种存储类型:华为云 OBS、七牛云 Kodo、百度云 BOS、Azure Blob、SFTP
Changed
- 首次加载/刷新时的全屏等待动画改为三点跳动(Bouncing Dots),更轻量低调
- 字典右侧字典项表格移除分页(
pagination={false}),支持完整树形结构展示
Fixed
- 修复文件存储 DTO 中
provider枚举缺少新存储类型导致的构建错误 - 修复
DictItemDTO.metadata类型兼容性问题
v0.38.0 - 2026-06-05
Added
usePagination Hook
- 新增
packages/web/src/hooks/usePagination.ts,封装分页状态(page/pageSize)及buildPagination(total, onFetch)构造器 - 自动从用户偏好设置读取默认每页条数,全站一键生效
- 全站约 30 个列表页迁移使用,每处 pagination 样板代码从 8 行缩减为 1 行
ConfigurableTable 分页默认值注入
- 自动注入
showTotal: true、showSizeChanger: true、pageSizeOpts: [10, 20, 50, 100] - 调用方无需重复声明,仍可按需覆盖
偏好设置新增「默认分页大小」
- 偏好面板增加 10 / 20 / 50 / 100 下拉选项,对全站所有列表页生效
- 页面刷新后即时应用新设置
MasterDetailLayout 新增 Body 子组件
MasterDetailLayout.Body:flex: 1 + overflow: auto,配合Header子组件实现固定标题 + 可滚动内容区CacheManagePage、DictsPage、WorkflowDefinitionsPage统一改用Header + Body模式,移除手写 flex/overflow CSS 类
Changed
- 字典右侧字典项表格改为
pagination={false},支持完整树形结构展示(后端本已全量返回) DbAdminPage表浏览数据 Tab 和查询历史 Tab 均改为ConfigurableTable内置分页,移除外置<Pagination>组件- 查询历史 Tab 修复竖向无法滚动问题,时间列宽从 170 调整为 180
Fixed
- 修复 8 个页面
fetchList(ps = 10)硬编码绕过偏好设置的问题
v0.37.0 - 2026-06-05
Added
表格刷新按钮
ConfigurableTable新增onRefresh/refreshLoadingprops,工具栏显示刷新按钮- 全站所有使用
ConfigurableTable的页面统一接入刷新功能(含日志子组件、SideSheet 内嵌表格等)
侧栏手风琴排他展开
- 偏好设置新增「侧栏排他展开」开关,开启后展开子菜单时自动折叠同级分组
- 路由切换时在手风琴模式下同步收起无关分组
用户管理-分配角色
- 用户操作菜单新增「分配角色」入口,支持通过 Modal 多选角色后保存
- 后端新增
PUT /api/users/:id/roles接口(需system:user:assign权限)
表格全屏展示
ConfigurableTable工具栏新增全屏按钮(Maximize2/Minimize2图标),支持 Esc 退出
部门管理-类别字段
- 部门新增「类别」字段(集团/公司/部门),支持数据导出
Changed
AdminLayout.css主内容区增加scrollbar-gutter: stable,防止滚动条出现/消失导致工具栏换行抖动- 文件列表搜索操作按钮组用
flexShrink: 0包裹,避免按钮因容器宽度临界变化跳行 - CRUD 模板更新:
fetchXxxs改用searchParamsRef读取最新搜索参数,避免输入框输入触发自动搜索
Fixed
- 修复
escapeLike转义顺序 bug:先转义\再转义%/_,修复含下划线文件名(如20251213_095800.mp4)无法搜索的问题 - 修复菜单编辑报错
query: expected string, received null(query字段改为.nullish()) - 修复
ConfigurableTable刷新按钮将MouseEvent传入onRefresh导致page: NaN的问题 - 修复 9 个列表页(用户/部门/系统配置/租户/文件/用户组/定时任务/岗位/登录日志/地区)输入框触发自动搜索的问题
- 修复
departments.service.ts导出时category字段 transform 函数类型错误
v0.36.0 - 2026-06-10
Added
定时任务执行概览 Dashboard
- 新增"执行概览"标签页,包含 4 个统计卡片(任务总数、今日执行次数、今日成功次数、今日成功率)
- 新增按任务维度的执行统计表格,展示总执行次数、成功/失败次数及成功率
- 新增未来执行计划预览,展示最近 30 次调度时间(按日期分组)
- 后端新增
GET /api/cron-jobs/stats接口,并行查询汇总统计与逐任务统计
文件管理无障碍优化
- 文件网格卡片重构:使用覆盖式透明
<button>替代div上的点击事件,符合 WCAG 无障碍规范 - 右键菜单现通过覆盖按钮的
onContextMenu触发,对非预览文件同样生效
Changed
packages/web/tsconfig.jsonlib 从ES2022升级至ES2023,支持Array.toSorted()等新方法
Fixed
- 修复文件管理页面因编辑操作产生的 JSX 结构重复导致的 Vite 编译错误
- 修复
AdminLayout.css锁屏相关选择器的 CSS 对比度不足问题(SonarLint S7924)
v0.35.0 - 2026-06-03
Added
公告管理增强
- 新增公告附件功能,支持在公告中上传和管理附件文件
- 新增公告接收者 DTO 定义,支持
user/role/dept三种接收者类型 - 公告详情接口优化,支持并行查询收件人和附件信息
- 新增公告查看模式(只读模式),支持详情弹窗加载状态管理
站内信功能
- 新增获取我的站内信详情接口和文件详情接口
日志文件搜索
- 新增日志文件内容搜索功能,支持搜索匹配范围、导航索引构建和实时高亮显示匹配内容
文件附件管理
- 新增通用附件 CRUD 服务,支持公告、通知、工单等模块的文件上传和管理
- 新增业务文件关联功能,支持获取和移除业务附件
- 新增文件上传数量限制功能
- 文件上传功能增强:新增上传状态管理、失败重试机制、上传结束提示和上传进度显示
- 优化文件附件组件,使用 Semi Upload 组件替换原有实现,支持自定义文件项渲染和文件预览下载
登录日志
- 新增用户代理信息展示,优化登录日志详情展示(使用 Descriptions 组件)
缓存管理
- 调整操作列宽度,优化界面布局
Changed
- 文件管理:优化文件列表和网格视图的分页设置,引入常量定义页面大小和选项
- 文件管理:优化文件卡片样式和布局,调整边框、背景、内边距和字体大小,改善响应式布局
- 文件管理:优化文件预览展示逻辑,移除图片预览条件,统一显示文件类型图标
- 公告管理:更新公告修改验证模式,增加标题、内容、类型、发布状态等字段的验证
Fixed
- 修复公告附件处理逻辑,使用
Object.hasOwn方法检查fileIds属性 - 修复附件文件项类型判断和删除逻辑,增加对 null 和 undefined 的处理
v0.34.0 - 2026-06-02
Added
缓存管理
- 缓存分类操作下拉菜单:支持刷新和清空全部功能,优化用户操作体验
- 缓存分类主从布局展示:新增缓存分类列表和详细信息展示,支持分类选择和搜索功能
字典管理
- 字典项支持父子关系(两级结构),新增
parentId字段 - 字典项创建/更新添加循环引用检测,防止无限嵌套
- 引入主从布局,重构字典列表样式,添加字典项搜索和分页功能
- 字典列表支持展开/折叠功能,支持父级字典项选择
主题设置
- 新增侧边栏和顶部栏深色模式选项,支持更灵活的深色主题配置
Changed
- 依赖管理:清理冗余依赖,优化依赖结构
v0.33.0 - 2026-06-01
Added
布局与表格
- 表格样式设置功能:支持配置表格边框、斑马纹和尺寸选项,用户偏好持久化存储
MasterDetailLayout主从布局组件引入并优化工作流定义页面结构- 路由守卫新增 403/404 页面区分逻辑,判断路径是否存在并返回相应页面
部署与配置
- Nginx 配置支持
/index和/index.html的 301 重定向到根路径 - 新增
BASE_URL环境变量支持,适配多环境部署场景
Changed
- 用户偏好默认表格尺寸调整为「小号」
- 表格尺寸选项中文描述优化(「默认」→「中等」,「宽松」→「大号」)
- 表格设置区域使用
Divider组件替代冗余分隔线类,简化代码 - 可配置表格组件:常量
DEFAULT_ALWAYS_VISIBLE_TITLES改为Set类型,存储访问统一使用globalThis - 禁止访问页面使用
Empty组件替代自定义样式,简化代码 - 依赖更新:React、Semi UI 等核心依赖升级至最新版本
Fixed
- 认证失败时正确清除所有相关
localStorage数据,避免残留登录态
v0.32.0 - 2026-05-31
Added
用户偏好设置
- 新增标签页风格选择功能,支持「线条」「胶囊」「卡片」三种 Tab 样式
- 新增动态浏览器标题开关,可按需控制浏览器标签页标题是否随路由动态变化
- 新增 Logo 图标显示开关,可按需隐藏侧边栏品牌 Logo
- 新增面包屑图标显示选项,默认开启
布局组件增强
MasterDetailLayout新增折叠功能及状态管理,支持onCollapseChange回调和collapsible属性- 侧边栏新增双列布局支持(
NavLayout类型扩展) - 菜单搜索输入框新增展开/收起功能,宽度改为响应式
主题与样式
- 新增「微信绿」主题颜色预设(亮色/暗色模式)
- 侧边栏折叠状态下选中菜单项样式优化,选中叶子菜单项背景与目录项保持一致
- 侧边栏折叠状态下的菜单项过渡效果优化,图标和文本居中对齐
用户管理增强
- 用户资料新增性别字段,列表/详情/编辑均支持展示与修改
- 用户资料新增上次登录时间和 IP 字段
- 头像裁剪组件新增图片旋转功能(支持 90° 步进旋转)
- 个人资料页新增移除头像功能
公告管理
- 新增定时发布功能,支持设定未来时间自动发布公告
- 定时公告自动发布 Cron Job(每 5 分钟检查一次)
安全与日志
- 角色禁用与删除逻辑增强:禁止禁用超级管理员角色,删除时进行角色存在性检查
- 登录日志新增模拟数据(操作系统、用户代理、状态字段)
- 登录日志新增登录地点记录(基于 ip2region 解析 IP 地址)
Changed
- 仪表盘欢迎横幅重构:使用 Card 组件替换原有结构,添加用户头像点击跳转功能
- 个人资料页重构:使用 Descriptions 组件替换原有布局,优化信息展示
- 仪表盘架构项展示方式更新(List → Descriptions)
- 404 页面样式与内容更新,新增返回首页和上一页按钮
- 收件箱和公告管理空状态展示图标更新为新插图组件
- 错误边界组件展示逻辑更新,使用新插图组件替换错误提示
- 侧边栏样式 lint 规则调整(禁用
no-descending-specificity)
Fixed
- 用户组管理部门路径缓存优化(通过
useMemo缓存部门路径)
v0.31.0 - 2026-06-04
Added
菜单外链支持
- 菜单新增
isExternal外链标识与query路由查询参数字段 - 外链菜单在侧边栏与顶部导航均支持新标签页打开
- 顶部导航新增
TopNavWithOverflow溢出组件,超出宽度时自动折叠到下拉菜单
用户权限精细化管理
- 新增用户菜单权限直接授权功能,支持查看与覆盖用户最终有效权限
- 新增用户数据权限管理功能,支持直接授权与角色继承权限对比展示
数据库管理增强
- 新增 SQL 收藏夹功能(增删改查、一键加载到编辑器)
- 新增导出表结构 / 数据 SQL 功能,支持多种导出模式
- 新增 CSV 导出与截断表操作
HTTP 流量日志
- 新增入站(Incoming)与出站(Outgoing)HTTP 请求结构化日志记录
- 支持多种日志级别与输出格式,自动脱敏敏感字段(Authorization / Cookie 等)
- 出站日志支持独立文件
HTTP_LOG_OUTGOING_FILE配置
Changed
响应式布局全面优化
- 侧边栏在所有屏幕尺寸下始终可见,窄屏自动折叠为图标模式(不再消失)
- Header 右侧操作区窄屏适配:< 992px 隐藏用户名,< 768px 收起公告/消息/主题切换到溢出「···」菜单
- Modal 窄屏最大宽度限制 95vw,SideSheet 480px 以下全屏展示
- 面包屑、标签栏、页面容器在小屏设备上减少内边距
CSS 主题色变量化
AppLogo、登录页背景渐变、Eyebrow 徽标、按钮阴影全部替换为--semi-color-primary-*变量,切换主题色时自动跟随- 工作流设计器节点标签色(
--fd-tag-*)改为var(--semi-color-primary)与var(--semi-color-primary-light-default) - 通知红点阴影、侧边栏 Logo 渐变改为 CSS 变量,深色/浅色模式统一处理
Fixed
- 修复用户数据权限弹窗获取最宽松权限逻辑,当第一个参数为空时正确回退
- 修复数据库管理截断表确认对话框类型错误
v0.30.0 - 2026-05-29
Added
OAuth2 应用管理
- 新增 OAuth2 应用管理页面,支持应用的增删改查
- 新增 OAuth2 授权同意页面,集成 Mock 服务以支持 OAuth2 标准流程
数据脱敏
- 新增数据脱敏配置功能(增删改查接口 + 前端管理页面)
- 支持获取脱敏规则详情,编辑时正确回填数据
幂等控制
- 新增幂等控制中间件,提供客户端 Token(
X-Idempotency-Key)与服务端自动指纹两种模式,防止重复提交
主题与样式
- 新增朱砂红、少女粉、琥珀金、天空蓝等主题颜色预设
- 调整卡片与模态框圆角样式,统一使用 CSS 变量
AI 能力
- 新增快捷聊天与用户自定义 AI API Key 配置项
Changed
- 标签页下拉菜单(刷新、固定、关闭等操作)新增对应图标
- 表格公共列工具(
createdAtColumn/renderEllipsis)推广至多个页面,禁止内联<Typography.Text>写法 - 弹窗表单布局规范更新:明确
labelWidth取值规则与 Modal 宽度范围
v0.29.0 - 2026-05-29
Added
文件预览
- 新增
FilePreviewModal组件,支持图片、音频、视频、PDF 文件的在线预览 - 文件管理页集成 AudioPlayer / VideoPlayer / PDFPreviewPanel,可直接预览媒体文件
聊天
- 聊天页支持上传并发送 PDF 文件,消息气泡渲染 PDF 卡片
- 新增
GroupGridAvatar组件,展示群组成员九宫格头像
响应式布局
- 移动端侧边栏自动折叠(基于
matchMedia监听屏幕宽度变化) MasterDetailLayout新增单栏模式(showDetail/onBack属性),适配移动端主-从切换
用户头像
- 新增全局
UserAvatar组件,统一头像展示逻辑,支持头像图片与背景色生成
错误处理
- 新增页面级
PageErrorBoundary错误边界,捕获运行时错误并给出友好提示 - 新增
useGlobalErrorHandler钩子,统一捕获未处理的 Promise 拒绝与运行时异常,带去重和限流机制
管理员布局
- Tab 标签栏支持鼠标滚轮横向滚动
Changed
- Tab 标签栏右键菜单由手写 DOM 实现改为 Semi Design
Dropdown组件(自动处理边界溢出) - 主题切换按钮去掉外层 Tooltip,当前模式名称移至下拉菜单标题行展示
- 全屏按钮改用浏览器原生
titletooltip,移除 Semi Tooltip 包裹 - 公告中心、我的消息页去掉
search-area容器包裹,Tabs 组件加flex: 1撑满全宽 - IP 访问控制页加
page-container类,与其他页面布局统一 - 接口限流页加
page-container类,修复卡片横向溢出(minmax(min(360px, 100%), 1fr)) - 全局样式暗色模式颜色方案改用 Semi 设计变量
- Vite 将
decimal.js加入optimizeDeps.include,消除 HMR 热更新时偶发的 "not a constructor" 报错
Fixed
- 修复公告页面标题渲染逻辑(空值合并运算符)
- 修复群组信息编辑中公告更新的默认值处理
- 修复角色管理中角色名称、编码、邮箱字段的渲染空值问题
- 修复全局错误处理重复 Toast 通知问题,忽略浏览器扩展与 ResizeObserver 警告
v0.28.0 - 2026-05-29
Added
角色管理 - 数据权限
- 新增两种数据权限类型:在原有「全部」「本部门及以下」「仅本人」基础上,新增「指定部门数据权限」(custom)和「本部门数据权限」(dept_only),共支持 5 种数据权限范围
- 指定部门选择器:选择「指定部门」时,弹窗展示部门树供勾选,支持多选任意部门节点
AI 管理
- 用户自定义 AI 配置:用户可自行配置个人 AI 服务商参数,与系统配置并行使用,支持增删改查
- 测试连接功能:AI 服务商配置表单新增「测试连接」按钮,可验证配置是否有效
- 供应商类型折叠展示:AI 服务商列表按供应商类型分组折叠,支持全部展开/全部折叠
- 聊天功能:AI 聊天页面支持创建、切换、删除会话,集成 AI 服务商配置选择
用户管理
- 用户删除:管理员可删除用户(超级管理员账号不可删除),删除前有二次确认
- 登录锁定状态:用户列表展示账号是否处于登录锁定状态
菜单管理
- 新增获取详情接口:支持
GET /api/menus/{id}获取单个菜单详情,编辑时异步加载
Changed
- 多处编辑弹窗:部门、字典、岗位、租户、用户组、AI 服务商、工作流自动化、事件订阅等均改为点击编辑时异步获取最新详情,避免使用列表缓存数据
Fixed
- Auth 稳定性:Redis 连接失败时不再返回 401,后端未启动完成时不清除前端 token
- 种子数据:修复可能覆盖用户修改数据的种子逻辑,菜单改为仅首次初始化时插入
- AI 接口:修复供应商列表接口返回直接数组被错误读取为
.list属性等多处 Bug
v0.27.0 - 2026-05-27
Added
偏好设置
- 保存标签页:偏好设置新增「保存标签页」开关(默认开启),启用后刷新/重启页面自动恢复上次打开的标签页及激活状态,禁用时清除持久化数据
公告管理
- 未读数 Badge:顶部栏公告图标实时展示未读公告数量,下拉菜单入口同步显示数字徽标
- 公告详情弹窗:顶部栏可直接预览最新公告列表,点击查看详情并自动标记为已读
- 发布与撤回:公告管理页面新增发布/撤回操作,支持公告状态流转
Changed
- 消息通知图标由收件箱(Inbox)改为铃铛(Bell),与主流后台系统保持一致
v0.26.0 - 2026-05-24
Added
工作流引擎(重大更新)
- 事件总线与 Webhook 订阅:引入基于 EventEmitter 的工作流事件总线,覆盖 instance/node/task 12 类生命周期事件;新增
workflow_event_subscriptions/workflow_event_deliveries/workflow_trigger_executions三张表;提供 Webhook 订阅 CRUD/启停/投递列表/重试 11 个端点;HMAC-SHA256 签名 + 5 段指数退避重试机制 - 触发器节点执行:支持 updateData/deleteData 触发器类型,实现 fallbackStrategy 兜底策略
- 外部审批回调:支持外部审批配置与回调地址查看,触发器执行记录页可查看执行历史
- 流程发起范围配置:基础信息面板支持按用户/部门/角色配置发起范围,部门选项接口包含 parentId,树形选择展示部门层级
- 流程分类管理:新增分类侧栏组件,支持分类的增删改查与颜色选择,集成到工作流设计页面
- 版本管理:新增历史版本管理功能,支持查看与恢复历史版本
- 驳回到指定节点:支持查找祖先审批/办理节点并选择驳回去向,提供驳回回退提示与高亮展示
- 表单增强:新增格式化控件(手机号、邮箱、身份证、网址、评分、公式字段类型)及校验规则;新增舱位与往返选项配置,支持日期范围自动计算出差天数;可达节点计算与表单渲染器集成
- 节点编辑:节点标识(key)可编辑,支持节点复制、撤销/重做、历史版本查看与恢复
- 流程监控优化:流程管理添加分类和发起人过滤;触发器执行/事件订阅页面统一使用 page-container 布局
系统功能
- IP 访问控制拦截日志:新增
ip_access_logs表及相关 API,记录和查询 IP 拦截日志 - 布局组件:引入
MasterDetailLayout组件,统一左右分栏布局,支持可拖拽调整宽度和持久化状态
其他
- 新增工作流后端文档章节,更新事件类型、字段配置、生命周期状态及节点配置文档
- OAuth 外呼增加 10s 超时与 1 次重试
Changed
- 工作流设计器 UI 优化:工具栏样式与返回按钮、表单标签位置与宽度、画布样式与内边距
- 多个页面表格列文本展示优化(Typography.Text 组件实现省略和 Tooltip)
- 地区管理实现表格高度自适应(ResizeObserver)
- 聊天页面新增会话列表样式
- 系统页面布局调整为高度 100% 以适应不同屏幕
Fixed
- 修复数据库迁移顺序漂移并补幂等热修迁移
- 删除冗余的工作流范围列迁移脚本
- 修复文档对源码的反向链接、VitePress 死链与模板插值问题
v0.25.0 - 2026-05-22
Added
外呼 HTTP 客户端
- 新增统一外呼 HTTP 客户端
packages/server/src/lib/http-client.ts:基于 undici,提供httpRequest/httpGet/httpPost/httpPut/httpPatch/httpDelete与统一错误HttpClientError - 支持显式超时(默认无超时)、指数退避重试(默认 0 次)、按 host 维度的熔断器(连续 5 次失败开启 30s 冷却)、
baseURL拼接、AbortSignal协作 - 代理仅由调用方代码传入
proxy参数,不读取HTTP_PROXY/HTTPS_PROXY等环境变量,避免运维环境差异导致的行为漂移 - winston 结构化日志:自动脱敏
authorization/cookie/*token*/*secret*/*password*等敏感 Header,并按logBodyLimit截断响应正文 - 全部出站调用迁移:GitHub / 钉钉 / 企业微信 OAuth 三处接口、Chat 链接预览抓取(保留
redirect: 'manual'+ 私网 IP 拦截 SSRF 防护) - 新增 docs/backend/http-client.md 文档与 zenith skill 后端硬性约束:禁止直接
fetch()
数据库管理(DB Inspector)
- 表数据视图新增多选 + 批量操作:支持选中多行后批量删除、批量复制为
INSERT/UPDATESQL;批量删除走逐行 DELETE 并复用单行接口的审计日志 - 列头筛选升级为高级筛选:每列可独立选择运算符
ILIKE / = / ≠ / > / ≥ / < / ≤ / IS NULL / IS NOT NULL,前端编码为op|value字符串、后端按白名单生成参数化 WHERE 子句 - 数据表支持列宽拖拽与列显隐配置(按
schema.table维度持久化到 localStorage) - 列头外键标记:对存在 FK 约束的列追加蓝色
FKTag,点击可一键跳转到引用表的数据视图 - 表数据视图新增单元格双击行内编辑(EditableCell),适配文本 / 数值 / 布尔 / JSON / 长文本等类型
- 行级上下文菜单新增复制行 SQL:可复制为
INSERT或UPDATE语句 - 新增 ER 图顶层 Tab:基于 @xyflow/react + dagre 自动布局,节点展示列信息,选中表高亮关联表;工具栏支持表/列搜索定位、隐藏孤立表、PNG / SVG 导出(PNG 通过 SVG → Canvas 2x DPI 渲染,速度与画质均显著优于截图方案)
操作日志
- 操作日志新增
response_body字段记录完整响应体,详情面板新增「响应详情」Tab - 操作日志统计 DTO 扩展
summary/methodStats/hourlyStats,前端面板新增汇总卡片、HTTP 方法分布、24 小时分布图表 - StatCard 组件移除直接边框颜色,改为通过
color参数控制主题
登录日志
- 登录日志新增
userAgent字段,记录并在列表中展示用户浏览器信息
Fixed
- 表数据视图未指定排序时回退到主键 ASC 排序,避免 UPDATE 后行的物理顺序漂移
- 修复 Drizzle 操作日志迁移
_journal.json时间戳错乱导致迁移未被应用的问题 - 修复
_journal.json文件末尾缺少换行的格式问题 - 修复 Recharts v3 升级后
OperationLogStatsPanel中labelFormatter类型不匹配导致 web 构建失败的问题
v0.24.1 - 2026-05-22
Added
数据库管理(DB Inspector)
- 表数据视图支持「新增行」「双击单元格编辑」「行级删除」操作,配套后端 INSERT / UPDATE / DELETE 接口,全部走参数化 SQL 并写入审计日志
- 系统表(
pg_catalog/information_schema/audit_logs等)与无主键表自动只读,受system:db-admin:write权限保护 - 表浏览页支持按表中文注释搜索、按 schema 分组显示,表标题下方展示注释
- 业务表与字段补齐中文 PostgreSQL
COMMENT,提升数据库自描述性 - SQL 控制台 CSV 导出按钮新增 loading 状态
Fixed
- 修复 React 19 + TS 新 JSX transform 下
JSX命名空间未导出导致build:demo失败的问题 - 修复表注释在表格信息区显示错乱的问题
Changed
- 调整 PostgreSQL 类型映射顺序,新增 INTERNAL_PARSER_NAMES 集合优化数据类型解析
- 移除表格垂直滚动限制,优化大表展示体验
v0.24.0 - 2026-05-21
Added
数据库管理(DB Inspector)
- 新增系统功能「数据库管理」页面(
/system/db-admin),集成 Monaco Editor 的 SQL 控制台、表结构 / 索引 / 外键浏览、表数据分页查看与查询历史记录 - 表数据视图支持服务端排序与列筛选,采用 Semi Table 官方「带排序和过滤功能的表头」API(受控
sortOrder/filteredValue+renderFilterDropdown),Loading 状态走 Table 内置遮罩、工具栏与分页保持常驻 - SQL 查询 CSV 导出改为基于 postgres-js cursor 的流式响应:批大小 1000,首字节延迟接近第一批结果到达时间,内存恒定,可安全导出大表
- 所有 SQL 在
BEGIN; SET LOCAL TRANSACTION READ ONLY; ...中执行,PostgreSQL 原生拒绝任何写操作;表浏览接口对 schema / table / column 名做白名单校验避免拼接注入;导出与查询均受statement_timeout保护
公告管理增强
- 公告广播流程重构,新增公告更新、删除、已读事件的实时推送处理
- 用户下拉菜单新增「公告中心」入口,公告页面支持筛选与已读统计
- 顶部铃铛 badge 通过全局事件监听器实时同步
站内信管理(管理员视角)
- 新增管理员视角的站内信管理 API:分页列表(多条件查询)、标记任意消息已读、删除任意消息
- 用户端站内信已读 / 删除 / 全部已读支持实时事件推送,前端组件实时刷新
- 顶部铃铛 badge 通过全局事件实时同步消息状态
文档
- 新增 WebSocket 事件清单文档,涵盖公告、站内消息、会话、即时聊天等推送事件与 API
Changed
- 聊天页面「新建对话」面板由内嵌结构改为模态框,简化交互流程
- 聊天图片转换为 PNG Blob 的逻辑提取为模块级函数,简化代码结构
- 多个组件(CronBuilderPopover、ChatPage、AddNodeButton、NodeCard)按钮增加 Tooltip 提示
- 短信 / 邮件 / 公告等多处状态标签组件 props 改为
Readonly<...> - 验证模块邮箱校验改为
z.email()简化写法 - ESLint 配置导出方式由
tseslint.config()改为数组形式
Fixed
- 数据库管理列筛选服务端 SQL 中
column_name = ANY(${array}::text[])因 Drizzle 数组参数展开导致的 PG 错误,改为IN (sql.join(...))并合并 orderBy/filters 列名校验为单次查询 - 数据库管理数据 Tab 切换排序/筛选时整段
<Spin />替换导致的视觉闪屏,改用 Table 自带loadingprop
v0.23.0 - 2026-05-21
Added
审计字段(Audit Columns)通用化
- 新增通用审计列辅助函数
auditColumns(),业务主表统一展开...auditColumns()自动拥有created_by/updated_by字段 db实例通过 Proxy 拦截insert/update/insert().onConflictDoUpdate({set})操作,自动从审计上下文(audit-context)写入created_by/updated_by,业务代码无需手动赋值- 新增
auditFieldsDTO 片段(lib/dtos/_audit.ts),所有响应实体 DTO 通过展开...auditFields统一暴露审计字段
工作流功能增强
- 工作流定义与实例新增创建者(
createdBy)和更新者(updatedBy)字段,通过通用审计列自动维护
多租户工具函数
- 新增
tenantCondition(table, user)和getCreateTenantId(user)工具函数,简化多租户数据隔离逻辑 - 工具函数在
MULTI_TENANT_MODE=false时返回null/undefined,与单实例行为兼容
用户详情懒查询
- 新增用户详情懒查询功能,支持按需获取用户角色、部门等关联信息,避免全量加载性能开销
站内信管理
- 新增「站内信管理」页面,支持对站内信进行增删改查及发送管理
短信功能模块
- 新增「短信配置」管理页面,支持多服务商短信配置
- 新增「短信发送日志」管理页面,记录短信发送历史
- 新增「短信模板」管理页面,支持模板创建与维护
Changed
部门管理
- 新增部门时支持设置负责人 ID(
leaderId)字段 - 优化部门负责人相关字段逻辑与数据结构
邮件/站内信模板
- 优化邮件模板表单布局,提升编辑体验
- 优化站内信模板表单布局
v0.22.0 - 2026-05-19
Added
接口限流可视化与动态配置
- 新增「系统管理 → 接口限流」管理页面,支持对
auth/captcha/sensitive三类限流规则进行可视化配置(时间窗口、上限、计数维度 ip/user/ip_path、启用开关、自定义拦截提示) - 限流规则改为数据库驱动 + 内存缓存,保存后立即热更新到运行中的服务,无需重启
- 实时统计每条规则的命中次数、拦截次数、拦截率,并展示最近 100 条拦截记录(含触发 Key 与请求路径)
- 新增「近 24 小时拦截趋势」折线图(命中 / 拦截 双线),通过 Redis Hash 按小时聚合
- 支持按需「解封」单个被限流 Key 与「重置统计」操作
- 新增数据库表
rate_limit_rules、枚举rate_limit_key_type,迁移0046_useful_mastermind.sql - 新增菜单:
系统管理 → 接口限流(id 320/321/322),权限system:rate-limit:view/system:rate-limit:manage - 后端新增路由:
GET /api/rate-limit/rules、PATCH /api/rate-limit/rules/{id}、GET /api/rate-limit/stats、POST /api/rate-limit/unblock、POST /api/rate-limit/reset-stats
WebSocket 连接监控
- 监控页面新增 WebSocket 在线连接数、累计连接数、断开次数等关键指标
- 展示最近 50 条 WebSocket 断开记录(含 token、断开原因、时长)
聊天功能增强
- 聊天页面新增聊天记录搜索面板,支持按关键字、发送人、时间范围多条件筛选与结果定位
- 聊天消息列表改用 Semi UI
List组件,提升样式一致性与交互体验 - 公告历史改用
List组件展示,并支持群主删除公告历史
Changed
- 优化聊天记录定位按钮文案与样式(「定位到聊天位置」)
- 限流页面权限校验改用解构
hasPermission,规范用法 - 用户管理表单调整密码输入框标签宽度(72 → 90)以适配中文标签
Fixed
- 修复
MonitorPage中rowKey在WsDisconnect数据下的类型不兼容,导致构建失败的问题
v0.21.0 - 2026-05-18
Added
用户偏好设置
- 新增
PreferencesProvider和usePreferencesHook,支持用户偏好设置(文件视图模式、主题等)的加载与保存,并增加防抖机制优化状态管理
日志管理
- 新增登录日志和操作日志组件(
LoginLogsTable、OperationLogsTable),在个人资料页面和相关页面中集成展示
用户管理增强
- 新增 API Token 过期时间选择器,支持为 Token 设置过期时间
- 新增解锁用户功能的下拉菜单,优化操作入口
通知管理
- 新增通知详情模态框组件(
NoticeDetailModal),统一通知详情的展示逻辑
Changed
UI 组件重构
- 聊天页面:使用 Semi UI 的
List组件重构对话列表和搜索功能展示 - 聊天页面:使用 Semi UI 的
List组件重构收藏消息列表 - 转发对话框:使用 Semi UI 的
List组件重构会话列表 - 会话设备列表:使用 Semi UI 的
List组件重构会话设备项 - 文件页面:使用 Semi UI 的
List组件替代原有网格布局,并调整网格间距以适应不同屏幕尺寸
主题与样式优化
- 主题颜色应用逻辑优化:同时设置 html 与 body 的主题色,避免默认变量覆盖
- 主题控制逻辑重构:将相关代码从
ThemeProvider提取至theme-controller.ts - 标签项关闭按钮悬停效果增强,增加背景色和透明度变化
- 头像组件背景色和文本颜色根据用户头像是否存在动态设置
- 多处组件背景色统一调整为
var(--semi-color-bg-2),提升暗色主题一致性 - 快速聊天按钮和通知页面按钮样式调整为主按钮
其他优化
- 日志文件管理:将搜索框移至文件列表头部,提升搜索体验
- 文件存储配置页面:调整 OSS 和 S3 配置项字段位置,优化弹窗宽度(720px)和标签宽度(120px)
- 角色管理页面:操作按钮布局优化,添加下拉菜单整合用户分配与数据权限功能
- 菜单页面和部门管理:移除父级选择的展开全部功能
- 标签页动画选择逻辑重构:按钮选择器替换为单选框组件
v0.20.0 - 2026-05-17
Added
标签管理
- 新增标签管理完整 CRUD 功能:支持标签的增删改查、批量删除、状态筛选
- 支持标签颜色选择器,可为标签配置自定义颜色
- 标签列表支持按分组筛选,分页展示
可配置表格(ConfigurableTable)
- 新增
ConfigurableTable组件,支持列显示/隐藏配置,用户偏好持久化存储 - 将所有 CRUD 列表页面的
Table替换为ConfigurableTable - 新增用户偏好设置项:控制是否显示表格列设置按钮
个人资料页面增强
- 资料展示新增手机号、所属部门、当前岗位信息
- 添加头像上传选择器,优化头像更换交互体验
- 更新资料接口支持手机号字段的修改与校验
侧边栏优化
- 新增侧边栏分组标题滚动固定(sticky)功能
- 支持通过用户偏好设置开关该粘性效果
后端架构优化
- DTO 模块按业务域拆分至
packages/server/src/lib/dtos/子目录(roles / positions / users / menus / departments 等多个文件),通过统一 barrel 文件导出
Fixed
- 修正用户 DTO 导入路径(从
./iam改为./users)
v0.19.0 - 2026-05-17
Added
缓存管理
- 新增查看缓存值功能:支持通过 Modal + JsonViewer 格式化展示指定 key 的完整缓存值
- 接口限流计数类别标识:在缓存分类中新增
rl(限流)类别显示
用户偏好设置
- 新增用户偏好设置功能:新增
PreferencesProvider和usePreferencesHook,支持文件视图模式(列表/网格)的选择与 localStorage 持久化
定时任务管理
- 任务日志支持按任务 ID(jobId)过滤,便于查看单个任务的历史执行记录
文件管理
- 文件上传支持显示进度条,多文件上传场景下展示每个文件的上传状态
- 文件列表网格视图优化:调整卡片布局、列宽与间距,增加文件类型标签
- 新增可执行文件(
application/x-executable等)图标支持
文档
- 新增 Docker 部署指南,包含前置依赖、快速开始、服务拓扑及环境变量详细说明
- 新增 Docker Compose 配置文件(开发环境 + 生产环境)及 Dockerfile、
.dockerignore - 新增数据库事务规范文档与数据库操作规范文档
Changed
文件存储
- 文件读取接口全面改为流式返回(
ReadableStream),替代原先一次性加载 Buffer 的方式,降低内存峰值 - 文件上传改为流式传输,提升大文件上传性能
样式与布局优化
- 多个管理页面(用户、部门、定时任务、文件存储配置、租户管理、消息模板、数据库备份)表单统一改为栅格布局,标签位置和宽度保持一致
Fixed
- 修复批量下载功能中流式接口适配问题(
readStoredFile改为返回 stream 后同步更新 ZIP 打包逻辑)
v0.18.0 - 2026-05-16
Added
文件管理
- 新增批量下载功能:后端使用
archiver流式打包 ZIP,前端调用后端接口而非在浏览器内存中压缩,显著降低大文件批量下载的内存占用 - 新增地区管理导出功能:支持将地区数据导出为 Excel 文件
通知中心
- 新增消息通知中心入口:头像下拉菜单中增加「通知中心」快捷链接
- 已读消息列表:新增「已读」标签页,展示已读消息记录
- 通知详情弹窗:新增上一条/下一条导航按钮
布局
- 侧边栏品牌标题字体调大至 17px
Changed
性能优化
- Excel 导出全面改为流式写入(
ExcelJS.stream.xlsx.WorkbookWriter):12 个导出接口不再将整个文件加载为ArrayBuffer后一次性返回,而是边生成边以 chunked transfer encoding 推送,减少内存峰值
Fixed
- 修复 Redis 重启后在线用户列表丢失问题
- 修复 Refresh Token 过期后无法自动登出问题
- 修复程序退出时 Redis 连接与定时任务未优雅关闭的问题,新增超时保护兜底
- 修复 SonarLint / ESLint / TypeScript 静态分析警告
- 修复自定义主题色按钮点击无响应问题(移除内层 Tooltip 包裹)
v0.17.0 - 2026-05-12
Added
消息中心增强
- 新增消息虚拟滚动,大量历史消息场景下渲染性能显著提升,并支持消息高亮定位
- 新增消息回复功能,支持引用回复并在气泡中展示被回复消息内容
- 新增草稿功能,切换会话时自动保存未发送内容,刷新后从 localStorage 恢复
- 新增链接消息类型支持,媒体库新增链接分类浏览
- 新增消息发送失败提示,会话列表中标记发送失败状态
- 新增上下文定位模式,查看历史消息后可一键返回最新消息
- 优化置顶消息交互,新增「取消置顶」按钮
- 在会话列表与聊天页面的 Popover 中展示用户手机、邮箱、部门及岗位信息
系统增强
- 标签页最大数量限制生效,超出限制时展示一次性 Toast 提示
Changed
- 切换媒体库 Tab 时清空旧媒体数据,避免旧数据短暂闪烁
- 用户管理页面交换「编辑」与「修改密码」按钮位置,操作逻辑更符合直觉
Fixed
- 修复文件类型回复消息无法正确显示文件名的问题
- 修复会话处于活动状态时草稿文本未及时清空的问题
- 优化消息列表查询,过滤当前用户已删除(隐藏)的消息
Performance
- 后端认证相关接口(登录、注册、获取/更新个人信息等)多项独立查询改为
Promise.all并行执行 - 聊天服务消除 N+1 查询,改为批量并行数据库查询
- 审计日志写入与 WebSocket 广播延迟至响应后通过
setImmediate异步执行,降低接口延迟
v0.16.0 - 2026-05-11
Added
快捷聊天(QuickChat)
- 新增快捷聊天浮动按钮,可在任意页面快速唤起聊天面板
- 支持在系统设置中控制快捷聊天按钮的显示/隐藏
- 面板支持 Esc 关闭与关闭动画(slide-out)
- 支持通过菜单导航时自动携带当前活跃会话(onConvChange 回调)
- 全屏聊天页面支持通过 URL 参数直接激活指定会话
消息中心增强
- 新增投票消息类型,支持创建和参与投票,消息气泡展示投票选项与结果
- 新增全局消息搜索功能,支持关键词搜索与分页浏览
- 新增未读 @ 我消息提示,会话列表与消息中标记 hasMentionUnread 状态
- 新增「正在输入」提示功能,实时显示正在输入的成员昵称
- 新增内联图片缩略图组件(QuickImageBubble),支持加载受保护图片 URL
- 新增图片和文件发送功能,支持上传后直接发送至聊天
- 消息获取接口改为游标分页(cursorId + hasMore),解决传统分页数据错位问题
WebSocket 稳定性
- 新增 WebSocket 连接状态提示,断线时显示连接断开提醒
- 断线重连成功后自动补拉会话列表与当前会话最新消息
Fixed
- 修复游标分页场景下获取最旧消息 ID 的逻辑,避免 oldestMsgId 被错误置为 null
Changed
- 重构快速聊天按钮与聊天页面组件,采用懒加载优化首屏性能,简化状态管理
- 优化消息追加逻辑,添加 appendMessageOnce 方法防止重复消息插入
- 移除会话项、消息气泡按钮、工作流节点、审批时间线等多处冗余左边框样式
v0.15.0 - 2026-05-09
Added
消息中心增强
- 新增消息内联编辑功能,支持 24 小时内修改文本消息,含快捷键提示
- 新增 @ 提及候选项键盘导航,支持上下方向键选择与回车插入
- 新增会话免打扰功能(数据库新增
is_muted字段),支持静音单个会话 - 新增媒体库面板,可按会话浏览历史图片与文件
- 新增图片预览组件(ImagePreview),替换旧版图片画廊,支持后台加载与灯箱展示
- 新增输入状态动画效果,提升「正在输入」提示的视觉体验
- 优化获取当前用户信息的方式,改用
useAuthHook,移除对 localStorage 的直接解析
Fixed
- 修复转发消息时消息类型丢失的问题,现直接沿用原消息类型
Security
- 在通知与公告页面引入 DOMPurify,对富文本 HTML 内容进行消毒,防范 XSS 攻击
- 强化链接预览接口的私有地址检测逻辑,防范 SSRF 攻击(含重定向跳转场景)
v0.14.0 - 2026-05-06
Added
消息中心增强
- 新增消息转发功能,支持逐条转发与合并转发两种模式
- 新增消息表情回应(Reaction)功能,支持 Emoji 快速反应与计数展示
- 新增文件上传与发送能力,消息气泡支持文件类型展示
- 新增批量删除消息功能(仅对自己隐藏,不影响其他成员)
- 新增收藏消息预览弹窗,支持定位至原消息
- 新增 @ 提及功能,支持快速选择会话成员插入提及
标签页管理
- 新增标签右键上下文菜单:刷新、关闭、关闭其他、关闭全部标签
文档 / 首页
- 新增核心能力矩阵可视化组件(FeatureMatrixFlow),支持点击跳转至对应功能模块
- 优化首页 Hero 区域描述与架构分层展示,补充功能模块文档结构
用户管理
- 部门组织架构树新增「全部展开 / 全部折叠」功能
- admin 超级管理员账号新增删除与禁用保护
Changed
暗色模式背景全面修正
- 消息中心、AI 智能对话、日志文件、IP 访问控制等多个页面的黑色背景统一修正为 Semi Design
bg-1/bg-2色阶,消除纯黑(bg-0)刺眼问题 - AI 对话代码块标题栏、代码内容区、关联问题(hint)背景色统一修正为
bg-2 - 全局 Card 组件背景统一为
bg-1,修复暗色模式下卡片偏深问题
UI 交互统一
- 全局多个模块(系统管理、部门、用户等)的新增、查询、导出、展开/折叠等功能性按钮统一改为
type="primary",提升视觉可见性
依赖升级
- 升级
@douyinfe/semi-ui、lucide-react、recharts、TypeScript、Vitest、@vitejs/plugin-react等至最新版本
v0.13.0 - 2026-05-03
Added
消息中心(聊天)能力增强
- 新增完整消息中心能力:单聊/群聊、会话管理、实时消息、系统消息与消息撤回
- 新增会话置顶/星标、会话删除、未读计数显示与会话时间智能格式化
- 新增消息搜索与上下文定位能力,支持根据关键字快速回溯历史对话
- 新增输入状态通知(typing)、回复消息、图片/文件消息发送与展示能力
群聊管理增强
- 新增群成员管理能力:添加成员、移除成员、群主转让、群名/群公告更新
- 新增群组头像网格展示与成员头像刷新机制,提升群聊识别度
Changed
- 优化消息气泡、时间显示、菜单交互与消息操作体验(收藏、置顶、定位原消息等)
- 更新 README 与文档索引,补充消息中心功能说明
Fixed
- 修复群组头像展示逻辑问题
- 修复用户相关用户名/邮箱唯一性校验边界问题(含租户隔离场景)
- 修复用户验证最小长度限制不一致问题
v0.12.0 - 2026-05-02
Added
在线会话管理增强
- 在线用户列表标识当前浏览器会话(蓝色「当前会话」Tag),精确到 JWT tokenId 级别
- 强制下线新增模式选择弹窗:「仅下线此会话」或「下线该用户全部会话」
- 新增
DELETE /api/sessions/user/{id}接口,支持一键踢出指定用户的所有在线会话
文件管理增强
- 新增文件网格视图,支持图片预览、文件卡片交互
- 文件网格视图支持全选当前页、批量操作
- 新增文件操作下拉菜单(下载、详情、复制链接、删除)
- 新增批量下载功能(使用 fflate 打包为 zip)
- 新增文件类型筛选
登录页面
- 实现登录重定向功能,未登录时保存来源路径,登录后自动跳回
Fixed
- 修复 WebSocket 强制下线只踢出单个 session 而影响同用户其他连接的问题(改用 tokenId 精确管理)
- 修复用户管理选中行键类型转换问题
- 修复文件管理操作下拉菜单路由顺序问题
v0.11.0 - 2026-04-30
Added
监控模块 SSE 实时推送
- 实现 SSE 差量推送机制,仅传输变化的指标数据,减少带宽占用
- 新增连接状态指示灯(连接中 / 已连接 / 断开),支持脉冲动画效果提升用户体验
- 监控页面新增趋势折线图(CPU、内存、网络),可视化历史指标变化
- 新增慢查询与慢日志展示表格
文件管理增强
- 支持多文件同时上传,新增单文件上传 API 接口
- 新增批量删除文件功能,支持勾选后一键删除
- 根据文件类型动态渲染对应图标(图片、文档、压缩包等)
- 新增文件大小格式化工具函数(
formatFileSize) - 文件名称支持悬浮 Tooltip 提示,防止长名称截断无法识别
登录页面优化
- 全面重构登录页视觉风格,更新背景色、Eyebrow 徽标、特性标签展示区域
- 调整底部间距与标题样式,提升整体美观度
Changed
- 登录速率限制从「15 分钟内最多 10 次」调整为「3 分钟内最多 20 次」,优化登录频率控制策略
- 修正文件 URL 拼接逻辑,确保本地存储与对象存储场景下 URL 均正确生成
v0.10.0 - 2026-04-30
Added
主题管理
- 新增
ThemeProvider组件,支持「亮色 / 暗色 / 跟随系统」三种主题模式的切换与持久化 - 主题模式与主题色偏好存储于用户偏好,刷新后自动恢复
- 富文本编辑器新增暗色模式适配样式(
RichTextEditor.css)
审批时间线组件
- 将审批时间线逻辑提取为独立组件
ApprovalTimeline,在「我的申请」「工作流监控」「待我审批」三个页面中复用
Changed
错误处理统一
- 将
AppError自定义错误类替换为 Hono 原生HTTPException,统一全局错误处理链路,减少依赖层次
分页规范完善
- SQL-builder 分页统一使用
withPagination(query.$dynamic(), page, pageSize) - RQB 分页统一使用
pageOffset(page, pageSize),全库完成迁移
审计日志请求体解析
- 重构
setAuditBeforeData函数,新增resolveAuditRequestBody以正确处理 multipart/JSON 等不同请求体格式
Fixed
客户端真实 IP 获取
- 修正
getClientIP逻辑:优先读取x-forwarded-for/x-real-ip头,无反代时回退到getConnInfo获取直连 IP,解决反代场景下 IP 记录错误问题
压缩中间件误压缩流式响应
- SSE 实时推送和文件下载等路由不再经过
compress中间件,修复 SSE 事件流被截断的问题
SideSheet 内表格样式
- 修正侧边抽屉
SideSheet内表格行/表头背景色,使用半透明背景色适配抽屉层级
地区管理表格
- 启用虚拟滚动(
virtualized)并设置垂直滚动高度,解决大量地区数据渲染卡顿问题
工作流实例关键词搜索
- 工作流实例关键词过滤使用
escapeLike转义,防止 SQL 通配符注入
v0.9.0 - 2026-04-26
Added
操作日志前态快照(beforeData)
- 为所有主要业务模块的修改/删除操作补全
beforeData快照注入,覆盖 20+ 路由文件中的 53 个审计操作点 - 新增
getXxxBeforeAudit()辅助函数到所有 service 文件(users、roles、menus、departments、positions、dicts、notices、cron-jobs、system-configs、regions、message-templates、file-storage-configs、workflow-definitions、email-config、tenants、oauth-config、cache、sessions、files、db-backups、workflow-instances),使操作日志详情页的数据变更 diff 功能完整生效 - 敏感字段自动脱敏:
emailConfig.smtpPassword和oauthConfig.clientSecret在快照中替换为******
操作日志详情页增强
- 操作日志详情弹窗新增标签页布局,分为「基础信息」「请求详情」「数据变更」三个标签页,提升可读性
日志文件关键词搜索
- 日志文件内容支持关键词过滤,前端和后端 API 同步支持
keyword参数
Fixed
审计日志日期格式不一致
- 修复
beforeData显示 ISO 8601 格式(2026-04-25T10:00:00.000Z)而afterData显示YYYY-MM-DD HH:mm:ss的不一致问题,所有快照现在统一通过mapXxx()格式化
LIKE 通配符注入防护
- 所有
keyword模糊搜索参数通过escapeLike()helper 转义%/_,防止恶意 LIKE 注入
跨租户数据泄露
- 修复 dicts、files、departments、importUsers、operation-logs 模块的跨租户过滤缺失问题
Changed
工作流实例状态值统一
- 工作流实例相关状态值从
active统一改为enabled,与系统其他模块状态枚举保持一致
v0.8.0 - 2026-04-25
Added
区域选择缓存
RegionSelect组件新增缓存层(RegionSelect.cache.ts),区域数据首次加载后缓存,避免重复请求
Excel 导出
- 新增
okExcel/excelBody响应辅助函数,多个模块支持导出 Excel 文件,日期时间统一使用dayjs格式化
Changed
时间格式规范统一
- 系统内所有日期时间字符串统一为
YYYY-MM-DD HH:mm:ss格式 - 前端新增
formatDateTime/formatDateTimeForApi/formatDateForApi工具函数(packages/web/src/utils/date.ts) - 后端新增
formatDateTime/formatNullableDateTime/formatDate/formatFileTimestamp/parseDateTimeInput等工具函数(packages/server/src/lib/datetime.ts) - 禁止在业务代码中直接调用
toISOString()等原生时间格式化方法
响应体构造规范
- 统一使用
okBody(data, msg?)/errBody(msg, code?)构造响应体,废弃内联字面量对象写法 - 所有路由文件完成规范迁移
请求工具优化
- 下载文件错误处理增强,新增网络请求失败提示,401 状态自动尝试刷新 token
监控页面
- Redis 命令总执行数使用
Intl.NumberFormat格式化,符合中文数字展示习惯 - 修正进度条颜色样式选择器
Fixed
- 修复 SonarLint 安全告警
- 修复用户管理中角色/岗位编码映射的空值安全问题
- 修复历史遗留测试失败(data-scope / auth / system-config)
- 修复工作流设计器高级设置面板重构后的编译错误
v0.7.0 - 2026-04-24
Added
Service 层全量提取
- 后端所有路由(21 个业务模块)完成 Service 层提取,业务逻辑从 route handler 迁移至
packages/server/src/services/下独立的xxx.service.ts文件 - 新增
AppError(packages/server/src/lib/errors.ts),由全局onError统一转为标准 JSON 错误响应,route handler 不再需要手动捕获业务错误 - 数据映射函数统一以
mapXxx命名(纯函数),前置校验函数统一以ensureXxx命名(抛AppError)
日志文件管理
- 新增「日志文件」页面(系统管理菜单下),支持日志文件列表、内容读取(最后 N 行)、实时追踪(SSE)、下载及删除
- 后端新增
/api/log-files路由,含路径穿越安全防护 - 支持
.log与.log.gz压缩日志文件的读取
菜单搜索
- 顶部 Header 新增菜单搜索框,支持按菜单名称或面包屑路径模糊搜索,选中后自动跳转
- 偏好设置新增「显示菜单搜索框」和「显示全屏按钮」开关,可按需隐藏
Changed
UI 规范统一
- 所有列表页面的状态列移至操作列左侧并设为固定列(
fixed: 'right'),涉及:用户管理、部门管理、岗位管理、菜单管理、角色管理、字典管理、地区管理、文件存储配置、工作流、定时任务、数据库备份、消息模板、租户管理等 10+ 个页面
v0.6.0 - 2026-04-23
Added
可观测性支持(OpenTelemetry + Prometheus)
- 集成 OpenTelemetry SDK,支持分布式追踪(通过环境变量
OTEL_*配置) - 集成 Prometheus 指标暴露,新增
/metrics端点 - 更新 API 文档,补充健康检查与指标端点说明
Changed
数据库查询规范化
- 分页列表的
total与list统一使用Promise.all并行执行,禁止串行await - 计数查询统一使用
db.$count(table, where)工具方法,覆盖仪表盘统计、定时任务、通知、消息模板、角色管理等多个路由 - 新增
pageOffset(page, pageSize)工具函数(src/lib/pagination.ts),统一分页偏移量计算,禁止手写(page - 1) * pageSize updatedAt字段通过.$onUpdate(() => new Date())自动维护,db.update().set()中禁止手动传入updatedAt
关联查询优化
- 推荐使用 Drizzle RQB(
db.query.*)替代手写LEFT JOIN,用户角色查询、用户管理等路由已迁移
事务原子性增强
- 通知接收者保存、角色菜单分配、角色用户分配、API Token 相关多步写操作统一使用
db.transaction()确保原子性
v0.5.0 - 2026-04-22
Added
实体 DTO 中心化架构
- 所有响应实体 DTO 按业务域拆分至
packages/server/src/lib/dtos/(iam/auth/dict/files/logs/notices/system/workflow/dashboard/region/messages) - 通过
src/lib/openapi-dtos.ts统一 re-export,各路由通过import { XxxDTO } from '../lib/openapi-dtos'导入,禁止路由内本地声明.openapi('EntityName')的 DTO
统一路由定义模式
- 全面迁移至
defineOpenAPIRoute+router.openapiRoutes()模式 - 移除
<AuthEnv>泛型和全局router.use('*', authMiddleware),每个受保护路由在createRoute.middleware中显式声明鉴权 - 覆盖用户、角色、工作流实例/定义、会话管理、租户管理等核心路由
统一验证失败响应(validationHook)
- 新增
validationHook,所有OpenAPIHono实例通过defaultHook: validationHook将 Zod 校验失败统一转为{ code: 400, message, data: null }标准格式
安全防护增强
- 新增 CSRF 防护(
hono/csrf):通过ALLOWED_ORIGINS环境变量配置白名单 - 新增接口限流(
hono-rate-limiter+ Redis):对高危认证接口限制请求频率,超限返回code: 429
OpenAPI 文档升级至 3.1.0
- 使用
app.doc31替代app.doc,输出 OpenAPI 3.1.0 规范
全量数据接口
- 用户、岗位、角色模块新增
/get/all接口,支持不分页的全量数据获取
服务端分页扩展
- 字典、角色、文件存储配置、操作日志、岗位、会话列表等模块支持服务端分页
- 前端对应页面新增
pageSize状态,支持用户动态调整每页条目数
Changed
- 共享层
@zenith/shared升级至 Zod v4(^4.3.6),与@hono/zod-openapi@1.x保持一致 - 认证中间件重构:使用 Hono 官方 JWT 中间件替代自定义 JWT 验证逻辑
- 上下文管理优化:使用
tryGetContext替代getCtx,简化错误处理 - 路由中间件统一改用
hono/factory的createMiddleware
Fixed
- 修复通知模块发布时间(
publishTime)字段类型验证逻辑 - 修复文件存储配置更新时合并逻辑,确保状态字段正确保留
- 修复数据库备份时间戳格式化(冒号/点号替换)导致的文件名错误
- 修复邮件配置测试发送时的邮箱与 SMTP 信息校验条件
v0.4.0 - 2026-04-22
Added
OpenAPI 自动生成支持
- 全面迁移后端路由至
@hono/zod-openapi(OpenAPIHono),路由定义自动汇总生成 OpenAPI Spec - 所有请求参数通过
createRoute+ Zod schema 声明,支持请求验证与响应格式化 - 涵盖路由管理、工作流实例、缓存管理等模块的 OpenAPIHono 重构
全局请求上下文存储
- 引入
hono/context-storage中间件,提供currentUser()/getCtx()零参取值函数 - 辅助函数无需层层透传
c参数,简化请求上下文访问
请求防护
- 新增请求体大小限制(
REQUEST_BODY_LIMIT)和请求超时(REQUEST_TIMEOUT_MS)环境变量配置 - 默认不启用,超出限制分别返回
code: 413/code: 408
性能分析
- 新增
Server-Timing响应头支持,可通过环境变量ENABLE_SERVER_TIMING开启
Changed
- 切换 JWT 实现为 Hono 官方库(
hono/jwt),移除jsonwebtoken依赖 - 参数校验统一改用
zValidate中间件(@hono/zod-validator),覆盖用户、角色、通知、OAuth、岗位、地区、系统配置、租户、工作流等模块 - 日志中间件重构:替换自定义
httpLogger为 Hono 官方logger,并去除日志中的 ANSI 控制字符
v0.3.2 - 2026-04-21
Added
菜单管理
- 搜索栏新增「菜单名称」文本筛选与「状态」下拉筛选,支持客户端递归过滤树形数据
字典管理
- 搜索栏新增「状态」下拉筛选和「创建时间」日期范围筛选
- 字典列表新增「描述」列
- 字典项侧边抽屉加宽(700 → 900),顶部新增标签/键值文本搜索与状态下拉筛选(客户端实时过滤)
v0.3.1 - 2026-05-03
Added
定时任务增强
- 定时任务配置新增「重试次数」「重试间隔(ms)」「监控超时时间(ms)」字段,支持任务失败后自动重试
- 执行日志新增「第几次执行」列,记录每次触发的累计执行次数
- 执行日志抽屉加宽,输出列固定宽度,内容不再被挤压
Changed
- 登录页表单输入框去掉标签,改为纯 placeholder 风格,界面更简洁
- 定时任务列表「上次执行」状态由英文(success/fail/running)改为中文显示(成功/失败/运行中)
- 定时任务列表描述列固定宽度 200px,避免过窄
Fixed
- 修复手动创建 Drizzle 迁移文件不注册到 journal 导致迁移不执行的问题
v0.3.0 - 2026-04-20
Added
工作流模块
- 新增工作流设计器:基于 React Flow 的可视化流程图设计,支持节点拖拽、连接与属性配置
- 新增多种节点类型:发起人节点、审批节点、抄送节点、分支条件节点,配置各节点的审批人策略、超时处理、拒绝策略等高级设置
- 新增表单权限与操作权限配置:流程节点可独立配置字段可见性与按钮权限
- 新增飞书风格审批时间线组件,替代原 Steps 展示审批记录
- 新增「我的申请」页面:用户可发起流程申请,查看申请列表与审批详情
- 新增「待审批」页面:展示待办任务,支持审批通过/驳回并填写意见
- 新增全局流程监控页面(管理员视角):查看所有流程实例状态及统计信息
AI 助手
- 新增 AI 智能助手功能,包含独立对话页面(AIChatPage)与侧边栏入口(AISidebarPage)
- 支持富文本消息内容、演示模式切换及 MCP 工具配置
用户管理增强
- 用户表新增手机号码字段,支持手机号的录入、展示与搜索过滤
- 列表页左侧新增部门树面板,可点击部门节点快速筛选该部门下的用户
消息模板
- 新增消息模板管理模块:支持模板的增删改查与内容预览
定时任务
- 定时任务列表新增「执行日志」入口,支持以抽屉形式查看全部执行记录
表单设计器
- 新增分栏(row)、分割线(divider)、分组(group)三种布局类型字段
测试覆盖
- 新增多模块单元测试:权限管理、数据范围、认证中间件、认证 Hook、权限 Hook、密码策略、工作流引擎、区域选择组件等
Changed
搜索工具栏重构
SearchToolbar组件 API 简化:移除left/right独立区域概念,统一使用children作为工具栏内容,由<Space wrap>自动换行排列- 全站所有列表页同步更新为新 API,搜索输入框与操作按钮统一放置在同一行
表单体验优化
- 批量为各模块表单的 Select / Input 补充
placeholder,提升空状态引导体验 - 用户、部门管理的新增/编辑弹窗改为 Row/Col 双列布局,节省垂直空间
其他
- 仪表盘新增骨架屏(Skeleton)替换原 Spin,消除空白加载态
- 侧边栏与卡片样式改用 CSS 变量,提升主题切换一致性
- 标签(Tab)支持拖拽排序
Fixed
- 修复仪表盘饼图标签显示异常(名称与百分比渲染错误)
- 修复文件存储配置页面提供者标签颜色映射错误
- 修复用户编辑接口中日期字段格式化与头像字段处理逻辑
v0.2.0 - 2026-03-31
Added
安全与访问控制
- 新增忘记密码功能:用户可通过邮件找回密码,后端生成带时效重置 Token 并发送重置邮件
- 新增 IP 访问控制:支持配置 IP 白名单与黑名单,中间件自动拦截非法请求
水印功能
- 新增页面水印功能,企业后台防截图泄漏
- 水印作为系统配置项管理(
watermark_enabled/watermark_content/watermark_font_size/watermark_opacity),默认关闭 - 水印内容留空时自动回退为当前登录用户的 nickname/username
文件存储扩展
- 文件存储支持扩展至三种模式:本地(local)、阿里云 OSS、AWS S3、腾讯云 COS
- 更新数据库结构,新增
provider枚举字段及相关配置字段
通知公告增强
- 新增通知收件人机制:发布通知时可指定目标类型(全体/指定用户/指定角色/指定部门)
- 新增已读统计功能(管理员视角):列表页展示已读人数,点击可查看详细已读/未读用户列表
- 通知详情弹窗:通知列表与铃铛入口均支持点击查看完整内容
- 通知内容展示安全优化:新增
stripHtml处理,列表预览不再dangerouslySetInnerHTML
仪表盘图表
- 仪表盘新增三类统计图表:登录趋势折线图、操作类型分布饼图、用户活跃度排行图
缓存管理
- 新增缓存管理页面,支持查看全部缓存键值、按分类删除缓存、一键清空所有缓存
监控页面优化
- 系统监控页面重构为 Tabs 标签页布局,分类展示 CPU/内存/磁盘/进程等信息
- 加载阶段使用 Skeleton 骨架屏替换 Spin,提升视觉体验
文档完善
- 新增多篇技术文档:定时任务与数据库备份、OAuth 第三方登录、安全体系、公共组件指南、前端路由与菜单、演示模式、项目结构等
Changed
- 登录页视觉优化:调整品牌区背景与装饰元素,功能特性列表展示更清晰
- 系统配置种子数据写入改为幂等逻辑(先查询现有 key,仅插入缺失项,避免重复执行报错)
- 多租户模式下密码重置与用户查询逻辑优化,确保租户隔离正确性
Fixed
- 修复系统配置中 IP 白名单/黑名单配置项结构冗余问题,简化配置管理逻辑
v0.1.5 - 2026-03-27
Added
多租户支持
- 新增多租户架构支持(
MULTI_TENANT_MODE=true),实现租户数据隔离(tenant_id字段 +tenantCondition查询工具函数) - 新增租户管理 CRUD 页面(
/system/tenants),支持租户的增删改查 - 支持超管切换租户视角,切换后系统自动过滤对应租户数据
- 新增多租户部署指南文档
个人中心
- 新增 API Token 管理 Tab:支持创建、查看、删除个人 API Token,用于第三方接口调用鉴权
布局与交互
- 顶部工具栏新增全屏切换按钮,支持一键全屏
- 新增面包屑导航,显示当前页面层级路径(位于标签栏下方)
- 偏好设置新增主题色选择器和标签页切换动画开关
菜单管理
- 新增「全部展开 / 全部折叠」按钮,方便快速浏览多层级菜单树
地区管理
- 省市选择升级为级联选择器(Cascader),交互更直观
系统配置
- 新增配置类型字典(
system_config_type),列表页支持按类型筛选配置项 - 系统管理菜单拆分为「系统管理」和「系统设置」两个独立一级菜单
搜索工具栏组件
- 新增
SearchToolbar公共组件,统一搜索区域布局(左侧搜索条件、右侧操作按钮),全站 CRUD 列表页面全面迁移使用
Changed
- 路由加载方式升级为
React.lazy+Suspense,减少首屏加载体积 - 新增
@路径别名(指向src/),全站模块导入统一使用短路径 - 全面类型安全优化:所有页面
Form的getFormApi回调统一使用FormApi类型替代any
Fixed
- 修复菜单管理页面
onExpandedRowsChange回调中行数据类型不一致导致的运行时错误 - 修复用户更新接口错误写入
passwordUpdatedAt的问题 - 修复管理员默认账号在重复执行 seed 时触发唯一约束冲突的问题
v0.1.4 - 2026-03-26
Added
密码策略与安全
- 新增密码复杂度配置项(最小长度、是否必须大写字母/特殊字符),用户创建和密码修改接口自动校验
- 新增密码过期功能:可设置密码有效期天数,过期后登录触发强制修改密码弹窗
- 新增注册功能开关(
allow_registration):支持全站启停开放注册,登录页入口动态显示
用户批量导入
- 新增 Excel 导入接口,支持按部门/岗位/角色编码自动关联,逐行报告失败原因
- 用户管理页新增「导入」按钮,支持模板下载、文件上传与导入结果展示
邮件配置
- 新增
email_configs数据库表及 SMTP 配置读写接口(支持发送测试邮件) - 新增「邮件配置」菜单页面,涵盖 SMTP 主机、端口、加密方式、授权密码等配置
OAuth 第三方登录
- 支持 GitHub、钉钉、企业微信三种 OAuth 提供方,登录后自动创建或绑定账号
- 新增 OAuth 配置管理页面(
/system/oauth-config),可配置各提供方的 Client ID / Secret - 个人中心新增「关联账号」Tab,可查看已绑定的第三方账号
数据库备份管理
- 新增数据库备份功能(基于 pg_dump),支持手动触发、下载及删除备份文件
- 新增「数据库备份」菜单页面(
/system/db-backups)
其他
- 顶部标签栏新增右键上下文菜单(关闭当前/其他/左侧/右侧/全部标签)
- 新增 Vitest 单元测试配置,覆盖密码策略、输入净化、验证码、日期格式化等工具函数
Changed
- 侧边栏菜单支持独立滚动,滚动条改为极窄样式,子菜单添加最大高度限制
- 登录页第三方登录图标替换为
@iconify/react组件 - OpenAPI Spec 补充邮件配置、用户导入、密码策略、OAuth 登录、数据库备份接口文档
v0.1.3 - 2026-03-26
Added
仪表盘
- 新增仪表盘统计接口(
GET /api/dashboard/stats),提供用户总数、在线人数、今日登录次数、今日操作次数等统计数据 - 新增仪表盘前端页面,展示系统概况卡片、通知公告列表及技术架构信息
- 通知公告区域新增「查看更多」按钮,点击跳转至通知公告管理页面
用户管理
- 新增用户解锁功能,支持解除登录锁定状态(
POST /api/users/:id/unlock) - 新增批量删除用户接口(
DELETE /api/users/batch) - 新增批量更新用户状态接口(
PUT /api/users/batch-status),支持批量启用 / 禁用 - 新增重置用户密码接口,允许管理员重置指定用户的登录密码
通知中心
- 新增通知收件箱功能,用户可查看自己收到的通知列表(含分页)
- 新增「全部标记为已读」接口,一键将所有未读通知设为已读状态
菜单管理
- 新增个人中心与通知中心两个系统内置隐藏菜单,支持导航路由但不显示在侧边栏
个人资料页
- 新增「我的登录记录」Tab,展示当前用户的历史登录记录
- 新增「我的操作记录」Tab,展示当前用户的历史操作日志
Changed
- 仪表盘技术架构展示区域重构,使用 List 组件替代原有列表,提升可读性
- 通知中心界面布局优化,合并重复代码,组件结构更简洁
Fixed
- 修复顶部导航品牌区域缺少点击跳转首页功能
v0.1.2 - 2026-03-25
Added
后端
- 集成 Swagger UI,新增两个无需认证的端点:
GET /api/docs— Swagger UI 交互界面GET /api/openapi.json— OpenAPI 3.0 JSON Spec(可导入 Postman / Apifox)
- 新增
packages/server/src/openapi.ts,以 TypeScript 对象维护 OpenAPI 3.0 Spec,覆盖全部 API 分组
操作日志
- 操作日志列表新增 IP 地址搜索筛选条件,支持模糊匹配
文档站点
- 新增「Swagger / OpenAPI」章节,说明文档访问、鉴权、导入及 Spec 维护方式
- 新增「系统内置配置」章节,说明 5 个内置配置项的用途、类型、默认值及使用方式
- 新增「操作日志与变更记录」章节,说明 Diff 机制架构及如何为新路由添加变更快照
- 更新「Zenith Skill」章节,新增后端路由规范与前端页面规范说明
Fixed
- 修复 CronJobsPage 使用不存在的
Drawer组件导致的运行时错误(改为SideSheet) - 修复 CronJobsPage
cronExprValue和handlers状态变量未声明的运行时错误
v0.1.1 - 2026-03-25
Added
通知管理
- 通知内容编辑器升级为富文本编辑器(基于 wangEditor),支持格式化文本与图片插入
- 富文本编辑器支持图片上传,通过 Authorization 头上传图片并自动插入到编辑器
- 通知列表支持 HTML 内容渲染(
dangerouslySetInnerHTML),展示富文本内容 - 通知编辑界面改用 SideSheet 侧边抽屉,提升编辑体验
- 通知内容字段类型从
varchar升级为text,支持长文本存储 - 通知管理添加批量删除功能,后端新增
DELETE /api/notices/batch接口
组件与前端
- 新增省市区三级联动选择组件(
RegionSelect),基于 Semi Design Cascader 封装,支持动态加载 - 组件示例页面新增省市区联动选择演示
Changed
- WebSocket 连接管理优化:添加自动重连机制,使用 Map 记录最近通知时间戳,避免重复推送通知
- 岗位管理添加批量删除功能,后端新增
DELETE /api/positions/batch接口
Fixed
- 修复个人资料页密码更新接口路径错误(
/auth/password→/api/auth/password) - 修复超级管理员和普通用户角色的数据范围字段缺失问题
Docs
- 重构部署文档,新增贡献指南与维护说明
- 更新首页文档,补充 Semi Design v2 和 lucide-react 技术栈说明
v0.1.0 - 2026-03-25
首个正式版本,包含完整的后台管理基础框架。
Added
认证与账户
- 用户登录 / 登出,JWT Bearer Token 鉴权(7 天有效期)
- Access Token + Refresh Token 自动续期机制
- 登录验证码校验,降低暴力尝试风险
- 个人中心:基本资料维护、头像上传、密码修改
权限体系
- 用户管理:用户 CRUD、启停用、角色分配
- 角色管理:角色 CRUD、菜单权限配置
- 菜单管理:目录 / 菜单 / 按钮三级能力模型
- 动态菜单路由:前端根据当前用户角色自动注册可访问页面
组织与基础资料
- 部门管理:树形组织层级维护
- 岗位管理:岗位信息维护
- 数据字典:字典类型与字典项统一管理
- 系统配置:系统运行相关配置项维护
通知、审计与安全
- 通知公告:发布、查看、已读状态管理,WebSocket 实时推送
- 登录日志:登录行为记录与安全审计
- 操作日志:关键业务操作轨迹记录
- 在线会话:查看当前在线会话,支持强制下线
文件与存储
- 文件管理:上传、列表查询、下载等基础能力
- 存储配置:本地文件系统 / 阿里云 OSS 双模式,支持切换默认存储
任务与运维
- 定时任务:Cron 任务管理与服务端调度执行
- 系统监控:运行状态相关信息查看
- WebSocket:支持实时通知与会话下线消息推送
- 健康检查:
/api/health接口,用于服务探活
基础设施与工程
- npm monorepo 结构(
server/web/shared三包) - Redis 会话持久化(ioredis),支持 URL 与逐项两种配置方式
- Drizzle ORM + PostgreSQL,迁移文件版本化管理
- Demo 演示模式(MSW Mock Service Worker),无需后端即可完整运行
- VitePress 文档站,自动部署到 GitHub Pages
- GitHub Actions Release 工作流:推送 tag 自动构建并发布产物
- AI 友好:
AGENTS.md+ Zenith CRUD Skill,支持 AI 辅助开发