更新日志 · XiHan.BasicApp
本文件记录 XiHan.BasicApp 各版本的变更。每条标注 新增 / 修复 / 优化 / 调整 / 升级 / 移除 类别。只收录使用者可感知的变更,仓库自身的配置、CI 与测试工程不列入。升级前请留意「调整」类中的破坏性变更。
v5.2.0 (2026-09-22)
升级须知
前端依赖升至 XiHan.UI 2.0.0,后端依赖升至 XiHan.Framework 4.4.0。在本仓前端上做过二次开发的项目,自有页面需按 XiHan.UI 2.0 的更名迁移:@xihan-ui/kernel 导入改为 @xihan-ui/core;退役组件的替代——XhResult → XhEmptyState、XhCountdown → XhTimer、XhQrCode → XhMatrixCode、XhCodeBlock → XhCodeView、XhDynamicInput → XhFieldArray、useThread → useMessageFeed、XhHotkeys / useHotkeys → XhKbd 展示配合应用自带的 useHotkey 注册;轻提示与通知的失败语气 error 改为 danger,通知的 type 改为 tone;XhFormFieldGroup 的 value 改为 name;边框轴并入 variant,Flex 的方向属性改为 orientation,Tree 的选择模式改为布尔 multiple;Switch 改为监听 update:checked。日期选择封装拆为 XDatePicker(单选)与 XDateRangePicker(区间)。
新增界面语言后,后端 XiHan:Localization:SupportedCultures 白名单为必需配置:文化中间件对未登记的语言静默回退默认文化。每个环境的 appsettings 均需登记;生产配置不入库,需在服务器上单独补充。
- 新增 界面语言由 2 种增至 7 种:新增繁体中文、日语、韩语、印地语、德语,前后端资源齐备(每种语言前端 26 个文件,后端
ApiResponse/Errors/Enums三份资源)。未选择语言时界面跟随浏览器语言,重置偏好时同样按浏览器语言而非固定回简体中文;组件库文案按主语言回退(zh 系回退 zh-CN,其余回退 en-US) - 新增 界面密度偏好:外观设置新增「宽松 / 紧凑」两档,默认紧凑,全站控件高度收为 28 / 32。此前应用未设置密度,使用的是 XiHan.UI 的 comfortable 档,比 Naive UI 时期高一档
- 新增 验证码输入统一改用组件库的 PinInput:登录图形码四格,短信、邮件与联系方式验证六格
- 调整 表格列头接入 XiHan.UI 的
column-label与独立排序按钮;表格设置的密度 / 风格 / 功能三行改为切换按钮组;全站标签页增加滑动指示条,图标选择器的图标集页签溢出时可两端翻页 - 调整 文本输入封装接入 Field Chrome,视觉盒与前缀改用组件库的
control/prefix部件;侧栏与顶栏菜单的行几何与状态配色改经 XiHan.UI 公开槽设置;顶栏聊天按钮的未读角标改用组件库的小号徽标 - 调整 令牌桥补充浮层材质,弹出面与对话框跟随应用配色;共享样式中写死的 px 字号改引 XiHan.UI 字号令牌,控件文字回到 14px;动效令牌桥中的临时补位删除,改由
@xihan-ui/tokens提供 - 修复 两步验证与图形验证码同时开启时无法登录:两步验证为无状态三段式提交,图形验证码一次性消费,第二段起服务端固定返回「验证码错误或已过期」。改为首段通过后随挑战签发 10 分钟有效的两步验证票据,后续阶段持票即跳过图形码,签发令牌后作废票据
- 修复 两步验证票据绑定首段登录名:票据此前只记录用户主键且在密码认证之后比对,持有本人合法票据者可在有效期内免图形码尝试他人账号密码。改为在密码认证之前比对登录名,不匹配立即作废票据并返回统一的「两步验证已过期」,不进入密码认证
- 修复 登录页各阶段提交增加同步进入守卫,连续点击、连续回车与自动提交并发时只发出一次登录请求
- 修复 跨租户成员切换到其他租户后打开个人中心提示「当前用户不存在」:账号、安全记录、会话、三方绑定、偏好、设置、凭证均带归属租户标记,被全局租户过滤拦截。上述数据改为按用户跨租户读写;活跃度统计与操作 / 访问 / 登录日志仍按当前租户切分
- 修复 刷新令牌存储改用应用配置的分布式缓存(
SaasRefreshTokenStore),不再使用框架的进程内默认实现:启用 Redis 时跨实例共享,未启用时仍按绝对过期回收 - 修复 在线用户概览改为数据库计数,不再加载全部会话;作业存储在任务到达终态时清理实例映射;在线用户页在标签页停用时停止轮询
- 修复 封装控件的
disabled/readOnly/invalid不再默认为false:XiHan.UI 按「本处 > 字段 > 表单」取值,默认false会覆盖外层 Field / Form 的状态,导致字段校验失败或表单禁用时控件边框不变化。涉及 XInput、XSelect、XCascader、XTreeSelect、XNumberInput、XDatePicker、XDateRangePicker、XColorPicker、XSlider、XTagsInput、XSegmented 共 11 个封装 - 修复 扫码登录占位二维码的码点固定为深色,暗色主题下可见;登录方式切换器改用短标签,非中文语言下扫码入口不再被裁切;编辑器与时钟组件跟随应用语言
- 修复 模板属性对齐 XiHan.UI 现行契约;标签页总览空态的覆盖槽跟随
EmptyStateIcon→EmptyStateIndicator更名;确认框服务按新契约补充动作失败的提示文案 - 优化 登录页小屏适配:方式切换器四段一行,卡片避让工具条与页脚;认证页与布局壳的辅助文字统一引用语义排版令牌;弹窗内字段与并排按钮统一为 sm 档
- 优化 Cron 表达式与「构建」按钮合并为一行输入组;导入数据库表的数据源与关键字纳入表单网格并带标签;抽屉明细表的样式收入共用样式
- 升级 升级依赖至 XiHan.Framework 4.4.0 与 XiHan.UI 2.0.0,发布 v5.2.0
v5.1.0 (2026-09-04)
升级须知
随附 UpdateScripts/5.1.0:把存量代码生成列配置里 bigint 列的 TS 类型与控件刷成字符串加文本框,与后端全局 LongJsonConverter 的报文形状一致(雪花 ID 超出 JavaScript Number 安全范围,long 在报文里一律是字符串)。
- 调整 代码生成的前端模板迁到 XiHan.UI:前端 naive-ui 整体下线、按钮门控改成服务端下发按钮码
- 调整 生成产物的
actions.permission改成按钮码{页面码}.{按钮键},与PageRegistry片段同一处推导;按钮码只能由PageRegistry.Buttons下发,MenuSeeder不种按钮行 - 调整 生成产物的
DetailDto继承ListItemDto,接口导出名由xxxManagementApi改为xxxApi - 修复 控件类型判定收敛到渲染器:此前六份模板各自判定,判定次序不一致时会生成控件与表单模型类型不匹配的代码,且编译期无法发现。改为由渲染器统一计算
ControlKind/FormTsType,标志、渲染、回填、提交、表单模型与默认值均引用该结果 - 修复
TsType在渲染期按 C# 类型归一化,long列一律产出string,产物正确性不再依赖存量列配置 - 修复 纯日期列改用日期选择器并按本地年月日提交,不再因 UTC 换算退掉一天;日期时间与时间列组件库没有对应包装,暂用文本框加提交前格式校验
- 修复 生成期三处改 fail-closed:页面码码形、树表显示名列未进列表、常量候选项形状
- 升级 升级依赖至框架 v4.2.0,发布 v5.1.0
v5.0.0 (2026-08-31)
升级须知
本次为主版本升级,含多处破坏性变更:
- 连接与缓存的默认节点名统一为
Default(跟随框架 v4.1.0):数据库ConfigId由"1"改为"Default",升级模块的ConnectionConfigId同步;Redis 键前缀InstanceName由"XiHan:"改为"Default:";主从示例的第二连接由"2"改为"Report"——纯数字ConfigId会被租户连接解析按tenantId.ToString()优先匹配,导致租户被路由到该库。修改过连接名或 Redis 键前缀的部署需同步更新配置。 - 升级脚本移入版本子目录:框架的
FileSystemUpgradeScriptProvider只扫描UpdateScripts/<版本>/*.sql,此前脚本直接放在根目录,四个脚本从未被执行且无任何报错。目录修正后,配合框架 v4.1.0 修复的迁移执行,这些脚本将在启动时按序全部执行。本版另随附4.0.1(租户存储用量统计改用覆盖索引)、4.0.2(四张表唯一索引补租户维度、AI 密钥列扩容)、4.0.3(sys_user_session新增模仿登录六列与索引)。升级前请备份数据库。 - 页面按钮门控改由服务端下发按钮码:
PermissionInfoDto新增Buttons字段,前端 141 处硬编码权限码全部移除。该字段缺省视为无任何按钮权限,前后端必须配套发布。 - 通知公告页的权限码由
saas:notification:*改为saas:message:*:该页所有端点本就要求saas:message:*,此前菜单可见但所有请求返回 403。菜单种子在下次启动时更新既有行,无需迁移脚本。 - 旧前端
old-frontend/已移除;frontend/的@xihan-ui由链接源码改为 npm 正式版,catalog 固定^1.1.0。锁文件不入库,catalog 是唯一的版本约束。 - 示例模块的
Sample:TenantModuleDataSources配置节移除:租户模块库改由框架约定派生,库隔离租户默认拥有专属模块库;需要指定到其他位置时,实现ISqlSugarTenantConnectionProvider显式给出ModuleDataSourceConfigs(显式配置优先于约定)。 - 三个接口的标量主键改为查询串传递:租户初始化数据库、第三方应用重置密钥、版本权限撤销。动态 API 对未标注绑定特性的简单类型参数统一推断为
[FromQuery],此前将{ id }放入请求体,后端收到的值始终为0且不返回 400。
- 新增 模仿登录:超级管理员与租户管理员可以他人身份登录排查问题。以被模仿者的完整身份重新签发令牌并新建一条带模仿者标记的独立会话,鉴权、租户过滤、菜单裁剪与审计字段自动跟随。准入规则:禁止模仿超级管理员、模仿自己、嵌套模仿、目标已禁用或非目标租户有效成员,跨租户模仿另需
saas:impersonation:cross-tenant;模仿会话独立短过期(默认 30 分钟)、禁止刷新,退出时按令牌声明与会话行双向校验;模仿态禁用改密、重置 MFA、授权变更、删除、密钥再生成与再次模仿。开始与结束各记录一条登录日志,操作日志标注模仿者,可按配置向被模仿者发送安全通知 - 新增 模仿登录前端入口:用户菜单「控制中心」之后发起,模仿期间顶部横幅可退出,用户列表提供行操作
- 新增 示例业务模块
backend/src/business/XiHan.BasicApp.Sample:最小业务模块示例(一个模块类、两个实体、两个仓储,表由框架启动时按实体自动创建),演示「模块分库 × 租户分库」二维路由与新增业务模块所需的全部改动点 - 新增 租户席位与存储配额的运行时拦截:
UserLimit/StorageLimit此前只校验入参、无执行点。席位在UserDomainService.CreateUserAsync拦截(三个应用层入口均经此处),存储在FileDomainService.CreateUploadingFileAsync拦截(传输开始前拒绝);新增存量配额核对接口与租户页「配额核对」入口 - 调整 拖拽排序改用
@xihan-ui/vue的 sortable,六处排序列表全部迁移,移除@dnd-kit/vue、@dnd-kit/geometry与两个包装组件 - 调整 表格列宽改用组件库的
XhTableColumnResizeTrigger,移除自实现版本;同时修复首次拖动时整行列宽跳变的问题(此前以声明宽度而非实际渲染宽度为基准) - 修复 模仿态逃逸与授权绕过(对抗审查确认 21 项):切换租户、OAuth 同意流、令牌端点
refresh_token三条「以既有会话重签令牌」的路径未透传impersonator_*声明,导致模仿约束失效;刷新链的模仿拒绝与会话校验依赖按有效期校验的解析路径,在刷新场景下从未生效;停用、删除、强制下线发起人时无法吊销其模仿会话(会话行的UserId为被模仿者);权限申请审批与权限委托直授权限 / 角色时未经授权准入 - 修复 改密与锁定后吊销会话:
SysUserSecurity.SecurityStamp只写不读,管理员重置密码、锁定账号与自助改密后旧令牌仍可使用至会话自然过期 - 修复 租户开通改在平台上下文执行:此前整段开通在新租户上下文内执行,库隔离租户的独立库尚未创建即被查询(3D000 / 42P01);
ExistsEmailGloballyAsync应全平台判重却跟随当前上下文。开通与套餐回收改为全程平台上下文,账号注册与授权绑定落平台库 - 修复 租户开通时同时创建模块库(改调框架的
InitializeCurrentLayoutAsync),此前只创建租户主库 - 修复 租户停用与成员撤销后缓存未失效:租户暂停 / 过期 / 禁用后会话状态缓存未清理,最长 60 秒内仍可通行;撤销租户成员后授权快照缓存未清理,被移除的角色权限持续生效至缓存过期
- 修复 四张表的唯一索引补充租户维度(工作流定义、代码生成的数据源 / 表 / 模板):约束为全局而读写按租户过滤,租户间同编码记录互相冲突且不可见;三条代码生成索引同时补
is_deleted;AIapi_key列按密文长度扩容 - 修复 前端一批安全与正确性问题:静态路由模式下路由级权限过滤失效;密文被当作业务消息展示;并发 401 重复登出;权限数组含空串时整组放行;草稿预览值被上传并推送到其他设备,
$reset失效;树工具丢数据与栈溢出,getParentIds在parentId成环时死循环;动态路由装载完成后重进丢参,装载持续失败时/500循环跳转 - 修复 聊天、AI、代码生成、打印与工作流的领域层问题:普通成员无法主动退群,保留期清理遗漏表情回应,NaN 温度值未校验,解密失败的异常语义不准确,枚举值未校验、备注被清空,校验缺口与异常参数名错位
- 修复 导出中心「我的任务」等分页与枚举缓存的边界问题;
params位置覆盖调用方配置;重复的重置密码入口 - 优化 前端体验:认证页与登录页的切换条加高、第三方渠道收进「更多」、提交按钮与输入框同高且圆角跟随控件形状令牌;在线聊天输入框、表情选择框与表格样式;搜索条件列宽跟随字号;正文滚动区不再被页内最宽表格撑破视口;四处交互补充就地提示;标签悬停提示先读标签名
- 升级 升级依赖,发布 v5.0.0
v4.0.0 (2026-08-26)
升级须知
前端整体换成自家组件库。 frontend/ 是用 XiHan.UI 重建的新前端,naive-ui 与 highlight.js 全量下线,177 个引用第三方组件库的文件逐页改写成组件库的解剖写法;旧实现暂存在 old-frontend/,下个版本移除。在旧前端上做过二次开发的,自有页面需按解剖写法迁移。样式一致靠令牌桥接——组件库的 --xh-* 映射到应用既有的 HSL 令牌,:root 与 .dark 两处都声明;存库取值不跟着组件库的词汇走,只在渲染边界换算。
随附 UpdateScripts/3.13.0.sql,把第三方登录清单 saas.auth.oauth.providers 的官方默认值补到八家:只改 tenant_id=0 且仍是官方默认值的行(历史上的三家版与四家版都认),自定义过的值与 [](关掉全部三方登录的合法写法)一律不动。脚本可重复执行,启动时自动跑。
后端移除 15 个从未落地的空壳示例模块工程(APS / BI / CMS / CRM / EAM / ERP / FMS / HRM / MES / OA / PLM / QMS / SCM / TMS / WMS)。
- 调整 用 XiHan.UI 重建前端,naive-ui 全量下线;重复三次以上的解剖块收成应用组件(
XDataTable/XSegmented/XTree/XCascader/XTagsInput/XPopconfirm) - 调整 组件库切到 npm 发布版 1.0.0,前端工作区接入 turbo 任务调度
- 调整 移除 15 个空壳示例模块工程
- 新增 接入微信、企业微信、飞书、钉钉登录(扫码方式),账号授权方式的配置以注释给出;登录页画哪几个按钮由存库清单决定、能不能登由
appsettings的Providers决定,两份清单的 name 必须对齐 - 新增 密码登录接入图形验证码:匿名端点
/api/Auth/Captcha下发 4 位数字码,复用框架一次性码服务(加密随机、消费即销毁、恒定时间比较),有效期 5 分钟,开关Saas:Auth:CaptchaEnabled默认开启 - 新增 默认密码强制改密:登录命中内置或配置种子的默认密码即创建锁定会话,中间件 423 仅放行改密、登出与刷新端点,改密成功自动解锁并同步下发安全告警通知
- 新增 密码登录按「账号 + IP」与纯 IP 双维度固定窗口节流(每分钟 5 次 / 30 次),与框架的账号锁定互补
- 新增 约束规则执法领域服务:按约束类型评估角色集合,目标匹配展开角色继承链,同组互斥按
Parameters.maxAllowed判定,违规按规则优先级降序返回 - 新增 用户角色授予与权限申请审批自动授权在落库前执行静态职责分离评估,拒绝与需审批类违规阻断并给出规则编码与冲突角色,警告与记录类放行并留痕
- 新增 导出中心的我的任务加搜索条件,关键字打任务名与文件名,业务类型、状态、范围、格式多选,创建与完成时间做区间;排序与过滤先过字段白名单再过字段级安全门控
- 新增 菜单授权里子项全是按钮的菜单并排铺开,整棵树不再被按钮级权限拉长
- 新增 日期浮层补上快速跳年,四颗翻页钮都有可读名字
- 调整 令牌回传一律拼进 URL 片段,回调地址配成 history 模式的真实路由时,访问令牌与刷新令牌不再落进查询串、进访问日志并随 Referer 外发
- 调整 顶部进度条、通知下拉与两层文本的消息改用组件库的命令式服务与浮层,行内状态药丸从徽标迁到标签
- 调整 正文滚动区换成组件库的滚动区域,滚动条浮在内容之上不占宽度
- 修复 导出中心的我的任务分页此前没有
[HttpPost]也不吃查询条件,前端发什么都返回第一页无条件数据 - 修复 页脚署名的链接地址为空串,点击等于刷新页面;改为链到 XiHan.Framework 与 XiHan.UI 两个仓库,应用页脚与登录页页脚共用一份
- 优化 表格状态标签统一为描边形态,实心底上的前景按 WCAG 相对亮度挑选
- 优化 移除登录相关页面的大标题
- 升级 升级依赖,发布 v4.0.0
v3.13.0 (2026-08-16)
升级须知
随附 UpdateScripts/3.12.1.sql,修正两处存量数据:非库隔离租户卡在「待配置」而永远登不进去,以及代码生成表配置里已废弃的 gen_type = 2。脚本可重复执行,启动时自动跑。
另:tenant:initdb 收归平台专属权限。它按租户主键操作且不校验调用方归属,此前落在企业版白名单里,租户管理员可初始化任意租户的独立库。
- 新增 代码生成拆成「生成并下载」与「生成到项目」两个动作,后者带二次确认
- 新增 代码生成的预览与生成拆为两个行操作,产物预览改目录树
- 新增 为生成产物接通 i18n 的命名与转义基建,键段一律 snake 并在渲染前自校验
- 新增 接入框架的建表与种子按需选取,演示种子归入
Demo分组 - 新增 补齐租户成员的添加与邀请入口,以及删除租户
- 调整 代码生成方式收敛为
Zip与CustomPath两种,Preview本就不是生成方式 - 调整 内置模板改为只读并随版本回刷,模板版权头置顶
- 调整 用完整 XML 文档替换全部
inheritdoc - 修复 修复生成产物不可编译不可运行的九处缺陷,单表与树表均 0 错误 0 告警
- 修复 让列配置的列表、新增、编辑、查询四个开关真正生效,人工修改不再被同步冲掉
- 修复 补齐 PostgreSQL 方言的类型映射
- 修复 修复基类列判定恒为 false,并在列配置中禁用其编辑
- 修复 接通生成产物的枚举选项,字典列改为显式占位
- 修复 打通生成页的排序与区间搜索,清掉不生效的搜索框
- 修复 修复运行时数据分页报列不存在,横向滚动条贴底
- 修复 导入表不再留下 0 列的僵尸配置
- 修复 补齐生成留痕,模板渲染失败可定位
- 修复 修复新建租户不可用:管理员账号改为必填,非库隔离租户创建即置已配置
- 修复 数据源改动后注销动态连接
- 修复 补上行、页面与批量操作的二次确认
- 修复 统一表格状态标签的配色与形态
- 修复 修复表配置编辑弹窗无法渲染与打开时闪烁
- 升级 升级依赖,发布 v3.13.0
v3.12.0 (2026-08-13)
破坏性变更:权限码与配置键更名
权限码 saas:chat:* → chat:*、saas:print-template:* → print-template:*,聊天配置键 saas:chat:retention-days / saas:chat:sensitive-words 同步去掉 saas: 前缀。
表结构没有变化,不必重建数据库,但种子只新增不删除,旧码对应的权限行会留在库里、角色与版本上的既有授权指向的仍是旧行。升级后需要做两件事:
- 重新分配聊天与打印的授权——这两个模块在所有角色上都会回到未授权状态;
- 按新键重配聊天的保留期与敏感词——新键以默认值播种,此前自定义的值不会迁移。
旧的 saas:chat:* / saas:print-template:* 权限行成为孤儿,可自行清理。菜单无需处理:菜单码未变,种子按码逐字段更新父目录与权限码。
- 调整 在线聊天拆为独立模块
XiHan.BasicApp.Chat,权限、菜单、种子与 Hub 端点自持 - 调整 打印模板拆为独立模块
XiHan.BasicApp.Printing,权限、菜单、缓存与种子自持 - 调整 前端新增
src/modules/约定,五个可选模块删目录即卸载 - 调整 聊天壳层下沉
@xihan/chat包,布局层改经扩展注册点挂载 - 调整 AI 助手解耦为提供方扩展点,删 AI 模块后聊天照常
- 调整 打印数据源目录后端化,注册表为单一事实源,写路径拦未注册绑定
- 调整 审批菜单目录独立,消除与工作流模块的目录双登记
- 修复 打印引擎改为按注册表版本号重初始化,不再每次创建模板都重置连接配置
- 修复 租户版本白名单新增重算种子,模块权限首启即进企业版白名单
- 升级 升级依赖,发布 v3.12.0
v3.11.1 (2026-08-12)
- 新增 打印模板设计器,支持可视化排版、数据源绑定与示例数据预览
- 修复 Redis 未启用时延迟队列不注册导致应用起不来,改由进程内队列承载
- 升级 升级依赖,发布 v3.11.1
v3.11.0 (2026-08-11)
破坏性变更
SysUser 的时区与语言两列移除,相关 DTO、表单项、查询过滤与种子赋值一并删除。这两列从未被任何行为消费——后端时间换算读请求头 X-Timezone,界面语言取前端偏好,二者都随偏好设置跨设备同步,用户表那份是并存的第二份事实源,改了不生效。升级脚本 UpdateScripts/3.10.1.sql 负责落列,可重复执行;读过这两个字段的自建客户端需改取偏好设置。
- 新增 聊天支持语音消息,按住空格录音、最长 60 秒,气泡内就地播放,未听挂红点
- 新增 聊天消息与站内通知加提示音,两者分用不同音色,可在偏好里单独开关
- 新增 灵动岛补齐卡片态,形成胶囊、卡片与内容三形态,多条消息按后进先出堆叠
- 新增 不在聊天页时新消息弹灵动岛,点击直达对应会话
- 新增 建群、拉人与退群补系统提示,并通知全体成员而非仅当事人
- 新增 新增时区目录端点,顶栏、个人中心与编号规则三处共用同一份目录
- 调整 破坏性变更:移除
SysUser的时区与语言字段,二者改由跨设备同步的偏好设置承载 - 调整 聊天四张表改用严格租户隔离,租户态只看本租户、平台态只看平台会话
- 优化 主题扩散动画的起点随偏好同步带到其它设备
- 修复 聊天参与者与候选人按当前租户作用域收窄,不再拉进跨作用域成员
- 修复 聊天候选人的
In过滤此前被静默丢弃,作用域收窄形同未做 - 修复 动态路由加载失败不再静默锁死在 404,改为跳 500 并允许刷新重试
- 修复 设备指纹的音频分量改用离线渲染,消除同一设备两种指纹导致的设备变更误报
- 修复 SignalR 通知载荷的枚举统一投影为名称,Markdown 通知不再被当纯文本渲染
- 修复 其它设备推来的语言变更真正生效
- 修复 角色、权限、字段级安全、租户与字典等编辑弹窗改按详情回填,修复备注等字段被清空
- 修复 用户详情补齐邮箱、手机与生日,修复编辑后被清空
- 修复 接口报错改为显示后端返回的具体原因,165 处裸 catch 不再吞掉明细
- 修复 登录日志落库设备指纹
- 修复 参数配置的编辑与启停回到行操作,去掉对内置配置的过度限制
- 升级 升级依赖,发布 v3.11.0
v3.10.1 (2026-08-06)
破坏性变更
版本管理改为只读:SysVersion 自此由升级引擎独占写入,VersionAppService 的五个写端点与 saas:version 的 create / update / upgrade / delete 四个权限码一并移除。另移除无调用方的 TaskAppService.SyncAllActiveJobsAsync 与 code_gen:export 权限码。调用过这些端点的自建客户端需要下线相应逻辑。
- 新增 接入框架升级引擎,
SysVersion与SysMigrationHistory成为其版本状态与迁移台账存储 - 新增 实现维护模式,升级期间返回 503 并带
Retry-After,放行健康检查与发现文档 - 新增 审计中心新增升级记录页,可查看每次脚本的执行结果与失败错误信息
- 新增 权限授予改为批量提交,新增用户直授与版本权限两个批量端点
- 新增 新增权限目录、启用岗位、启用部门与文件存储等不分页端点,下拉与子列表一次取全
- 新增 新增统一权限授予面板
XPermissionGrantPanel,角色、用户直授与版本权限三处收敛 - 新增 新增长文本编辑组件
XContentEditorField,公告、消息模板与代码生成模板正文改在弹窗内编辑 - 调整 破坏性变更:版本管理改为只读,移除其五个写端点与四个
saas:version权限码 - 调整 破坏性变更:移除两个无调用方的写端点与
code_gen:export权限码 - 调整 退役自研迁移执行器,脚本统一由框架升级引擎执行
- 调整 框架模块依赖与服务注册收归
XiHan.BasicApp.Core与XiHan.BasicApp.Web.Core - 调整 版本管理详情抽屉移除迁移台账,该数据改由升级记录页承载
- 调整 各模块权限种子的资源标识改引用常量,不再重复书写字符串
- 优化 权限目录、启用岗位与启用部门三个列表端点接入分布式缓存,并补齐岗位写路径的失效调用
- 优化 租户成员列表接上分页,成员超过 200 的租户不再看不到剩余成员
- 优化 内容编辑弹窗按视口撑满,编辑区不再受编辑器固定高度限制
- 修复 修复 3.10.1 升级脚本使用大写标识符导致 PostgreSQL 报 42P01 并中断启动
- 修复 小屏一律按垂直布局渲染,头部与侧栏不再绕过强制降级
- 修复 修复组织机构、用户、角色与权限四处详情端点查询参数名与后端形参不符
- 修复 修复批量删除接口路径参数未改走 query 导致的 404
- 修复 修复用户权限直授切换授权动作报错,改为按用户与权限 upsert
- 修复 补齐 AI、代码生成与工作流权限的模块编码,权限列表模块列不再为空
- 修复 权限分组标题解析不出显示名时回退资源名,不再显示原始权限码
- 修复 恢复误删的缓存按模式删除端点
- 升级 升级依赖,发布 v3.10.1
v3.10.0 (2026-08-05)
破坏性变更
本版动态 API 的路径参数全面改走 query,接口 URL 随之改变(如 GET /api/User/User/{id} 变为 GET /api/User/User?id=1)。前端已随本版一并改完,自建客户端与外部调用方需同步调整。
- 新增 接入 OIDC,SSO 补齐发现文档、JWKS、id_token 与用户信息
- 新增 新增容器化编排,一条命令拉起前端、后端与 PostgreSQL / Redis / Qdrant
- 调整 破坏性变更:动态 API 路径参数全面改走 query
- 调整 升级状态改为数据库台账驱动,废除
version.txt状态机,并接入脚本失败记录能力 - 调整 升级基础设施纳入租户独立库,各库自持版本与迁移台账(当前执行入口状态见升级与迁移)
- 调整 各模块自持
PageRegistry,菜单种子按编码幂等落库,页面缓存默认开启 - 调整 一级菜单按功能域重排,新增 AI 应用与功能配置目录,日志独立为审计中心
- 调整 菜单名统一:身份与权限改身份权限、租户改租户管理、AI 改 AI 应用
- 调整 MCP Server 改用框架
Web.Mcp模块,应用层不再直接引用协议包 - 修复 补齐 10 个端点漏标的授权特性,服务监控不再对任意登录用户开放
- 修复 模块权限链种子改在平台租户上下文内播种,补回缺失的 7 个菜单
- 修复 修复升级通道读取租户时启动崩溃
- 修复 修复连接测试、同步表结构、重置应用密钥三处路由不一致导致的 404
- 修复 表格局部全屏在暗色模式下底色为白
- 升级 升级依赖,发布 v3.10.0
v3.9.0 (2026-07-30)
- 新增 聊天页接入 AI 助手,支持可配置多助手、流式回复推送与助手管理页
- 新增 新增业务编号功能,支持按规则发号与周期重置
- 新增 向量集合名与嵌入维度纳入 RAG 配置,连接测试同时探测会话与嵌入两个端点
- 新增 新增向量库健康检查
- 调整 发号统一独立提交,语义对齐数据库序列,编号发出即永久消耗
- 调整 通道配置页迁入系统设置,开放平台目录合并
- 调整 代码生成术语「机器 / 人类文件」改为「自动 / 手动文件」
- 优化 代码生成模块编辑器换用 monaco-editor,代码预览弹窗放大
- 修复 重设计业务编号发号并发方案,修复调用方事务内取号永不收敛
- 修复 修复 AI 助手选择与会话打开的主键字段名与前端契约不一致
- 修复 标签栏标题跟随语言切换
- 升级 升级依赖,发布 v3.9.0
v3.8.0 (2026-07-23)
- 新增 代码生成产物按所有权分离为机器文件与手写文件,重新生成不再冲掉自定义实现
- 新增 代码生成落地树表与主子表模板,主表行展开区按需加载子表明细
- 新增 代码生成接通多数据源,可从外部库导入表结构
- 新增 代码生成新增表配置推断引擎,导入即近乎零配置
- 新增 代码生成支持同步表结构与批量导入,人工改过的字段冻结、未改的跟随重新推断
- 新增 代码生成新增菜单与权限种子代码生成器,落地压缩为复制文件加重建库
- 新增 代码生成新增生成范围与操作开关,按需裁剪前后端产物
- 调整 移除
.Local双份工程,框架引用改为按解决方案自动切换 - 修复 登录日志补齐切换租户与会话撤销结果标签
- 修复 自助踢下线不再给操作者本人发送会话撤销通知
- 修复 修复会话撤销通知在 PostgreSQL 上抛空引用异常
- 修复 修复锁屏遮罩卡死、背景透明与口令提示不实
- 修复 修复错误页按钮贴合与返回首页仍停留在 404
- 修复 主题切换扩散动画改从点击处开始
- 升级 升级依赖,发布 v3.8.0
v3.7.0 (2026-07-18)
- 新增 新增工作流模块,含后端四表与领域服务、前端可视化设计器、通用图封装包
- 新增 工作流设计器支持运行态可视化、工具栏与流程校验
- 新增 接入 OpenAPI 签名网关,凭证密钥可逆加密并落数据库客户端存储
- 新增 开放接口日志填充凭证归属用户名与 API 名称,配套端到端自测端点与脚本
- 新增 新增统一编辑弹窗组件
XEditModal与共享表单网格规范,全部新增编辑弹窗接入 - 新增 列表骨架屏对应真实表格的列宽与行高
- 调整 锁屏改为服务端强制,会话吊销在全部端点生效,移除全部客户端绕过口
- 调整 会话锁定与锁屏解耦,锁屏只是锁定原因之一
- 调整 OpenApi 收敛为垂直切片,端点改为自动注册的动态 API,安全存储回归基础设施层
- 调整 packages 层去业务化,业务代码下沉 src,包管理 Catalogs 化
- 修复 根治一页空白后全部空白,渲染核心禁用
out-in过渡模式 - 修复 修复 keep-alive 失效,路由名统一为唯一缓存标识
- 修复 切换租户复用当前会话,杜绝重复登录设备与并发登录误报
- 修复 修复锁屏可被新开标签页绕过
- 修复 SignalR 协商 401 借道会话刷新重试一次,失败即登出
- 修复 用户主体自有行写入接入租户写入守卫显式豁免
- 修复 修正开放接口保护路径被配置追加语义污染导致误伤前端
- 修复 分表日志清理改用带表筛选的重载
- 修复 修复 MySQL 索引长度问题与语言包 JSON 示例花括号转义
- 升级 升级依赖,发布 v3.7.0
v3.6.0 (2026-07-15)
升级须知
本版跟随框架移除 QueryBehavior,前端不再传 behavior 与 ignoreTenant。数据变更日志依赖 XiHan:Data:SqlSugarCore:EnableDiffLog,而 appsettings.Production.json 被 gitignore,生产环境需在服务器上手工补该键。
- 新增 新增租户到期自动停用后台服务,到期后自动置为过期并失效版本门控与授权缓存
- 新增 导出支持 Xlsx 格式,导出文件扩展名与 ContentType 跟随实际写出器格式
- 新增 SQL 升级脚本随发布自动执行
- 新增 租户 Logo 支持上传,新增文档菜单、外链菜单图标与文件管理图标
- 调整 破坏性变更:跟随框架移除
QueryBehavior,前端不再传behavior与ignoreTenant - 调整 小屏禁用分屏并统一小屏断点判定
- 优化 优化多语言并清理无用键,数据变更日志页链路追踪 ID 列移至用户名后
- 修复 开启
EnableDiffLog,修复数据变更日志恒空 - 修复 安全状态变更(密码 / 2FA 密钥 / 账号锁定)纳入数据变更日志
- 修复 租户详情成员列表串租户与成员显示名恒空
- 修复 修复雪花 ID 配置非法值
- 升级 升级依赖,发布 v3.6.0
v3.5.0 (2026-07-10)
- 新增 激活 OpenTelemetry 可观测性装配,链路可导出至 OTLP 后端
- 新增 新增链路追踪查询页,含时间线聚合查询与卡片化时间线视图
- 新增 新增权限变更日志独立页,授权写路径全链路接线并快照名称与操作 IP
- 调整 登录日志
TraceId口径统一收口到ITraceIdProvider - 修复 根治布局滚动模型,内容区定高内部滚动
- 修复 角色权限抽屉仅按有效授权判定勾选
- 升级 升级依赖,发布 v3.5.0
v3.4.0 (2026-07-08)
- 新增 接入 Gitee 第三方登录,含后端配置、种子与前端 Provider
- 移除 移除演示模式与演示环境写操作拦截
- 升级 升级依赖,发布 v3.4.0
v3.3.0 (2026-07-08)
- 调整 审计写入器与上下文引用迁移至框架新包
XiHan.Framework.Auditing - 优化 清理未使用的历史遗留前端组件
- 修复 控制中心修复超管进入平台管理,当前态收敛为单一事实源,命名统一
- 修复 导出全部只导出首页,请求页大小对齐框架最大页大小
- 升级 升级依赖,发布 v3.3.0
v3.2.0 (2026-07-06)
- 新增 新增
XiHan.BasicApp.AI模块,支持 AI Provider 库化管理与配置页 - 新增 新增知识库(RAG),含文档管理、检索试玩与 Provider 嵌入模型
- 新增 新增知识检索技能与 MCP Server,支持应用管理密钥
- 新增 新增提示词库与 AI 提示词管理页
- 新增 代码生成器支持代码高亮与表级结构字段暴露
- 新增 代码生成支持字典三分(字典 / 枚举 / 常量),外键关联不入生成代码
- 新增 代码生成即产出菜单与按钮权限代码片段,支持树表与主子表上下文
- 新增 聊天支持粘贴图片与文件直接发送,一条消息支持多附件
- 优化 秒传改为探测语义,未命中返回空不再报错
- 优化 默认不打印 SQL,appsettings 补主从配置示例与逐节注释
- 修复 登录 500,锁定时间标量投影类型硬转崩溃
- 修复 代码生成改用原生 Scriban 渲染,修复模板变量不替换与未找到可用模板
- 修复 响应信封判定改用
isSuccess主判据,修复空数据被整包透传 - 升级 升级依赖,发布 v3.2.0
v3.1.0 (2026-07-03)
- 新增 新增在线聊天系统,支持单聊、群聊与部门群
- 新增 聊天支持回复、编辑、限时撤回、已读回执、表情回应、转发与附件秒传
- 新增 聊天群治理与安全,支持群信息编辑、转让群主、成员禁言与敏感词拦截
- 新增 通知支持四渠道扇出投递,可达站内信、邮箱、短信与机器人
- 新增 新增 OAuth2 授权服务端,支持授权码、PKCE 与令牌轮换
- 新增 新增租户数据库级隔离,支持独立建库、连接串加密与初始化数据库
- 新增 消息网关配置迁入数据库并加密,短信实装阿里云与腾讯云真实发送
- 新增 新增用户职位管理、健康检查与日志保留清理定时任务
- 调整 消息网关未配置时 fail-closed,不再假成功
- 优化 仪表盘与小组件合并,聊天输入区与右键菜单优化
- 优化 顶部横幅公告升级,支持类型配色、关闭记忆与轮播
- 修复 聊天实时链路雪花 ID 精度丢失
- 修复 多语言文案裸 @ 导致白屏
- 修复 通知横幅顶部空白条及多项聊天交互问题
- 升级 配置真加密、存储密钥加密与短信验证码防刷等安全加固
- 升级 升级依赖,发布 v3.1.0
v3.0.1 (2026-06-27)
- 新增 新增代码生成模块与配套权限链
- 新增 消息中心重构,支持五类消息分级、角色与部门定向投递、强制阅读与运营闭环
- 新增 全栈国际化铺量,后端异常与枚举资源化,前端业务页中英双语
- 新增 表格支持服务端多字段动态排序、搜索时间区间与枚举多选
- 新增 新增工作台小组件看板与 Cron 表达式可视化组件
- 新增 超级管理员可进入所有租户并快捷登录
- 调整 分页查询统一改走 POST,查询对象作为请求体
- 调整 标准化表名与列名,种子数据按代码生成、演示与系统基线解耦
- 优化 枚举元数据整库取一次并全局语言监听,切换语言由多次请求降为一次
- 优化 修复 Cron 组件卡顿与浅色主题深色侧栏不变暗
- 升级 升级依赖
v3.0.0 (2026-06-20)
- 新增 上线第三方登录与邮箱全局唯一登录,配套控制中心与租户切换入口
- 新增 新增导出中心,全部列表页零配置获得同步导出,日志大表支持异步导出
- 新增 列表页全量铺开细粒度权限门控,导入导出与批量操作按资源逐一门控
- 新增 新增在线用户实时视图、个人 API 凭证、用户统计聚合与消息模板管理
- 新增 文件管理支持多文件并发上传、回收站三段式与下载访问计数
- 调整 线上发布与本地测试分离,异常统一化输出
- 调整 种子数据正式化并移除演示数据
- 优化 灵动岛重构为任务中心模型,支持进度环、三态形变与服务端任务
- 优化 偏好、搜索、表格与收藏夹同步由手动推送升级为实时推拉
- 优化 优化仪表盘、字典、菜单与登录页样式
v2.3.1 (2026-06-11)
- 新增 新增分屏与双栏对照功能,支持左右屏内容互换与分屏打开
- 新增 页面设置升级为用户设置,偏好支持后端同步与草稿式预览、保存、还原
- 新增 新增灵动岛开关、全屏水印与页面加载动画
- 调整 顶部刷新按钮改为整页刷新
- 优化 分屏交互打磨,互换时分割线固定,左右切换不再刷新
- 修复 修复分屏左右屏空隙背景不一致
v2.3.0 (2026-06-10)
- 新增 引入 Schema 驱动页面框架,数十个列表页迁移其上
- 新增 Schema 页内置高级搜索、列设置、视图管理、树形模式与导出
- 新增 落地字段级权限,新增管理页、服务端读脱敏引擎与写校验
- 新增 授权申请接入审批流并审批通过自动授权,新增权限委托
- 新增 完善多租户体系,含平台运维闸门、租户切换与套餐运行时门控
- 新增 新增动态取色、命令面板、灵动岛、菜单收藏夹、自主注册与找回密码
- 新增 个人中心重设计,头像上传落地,通知偏好全栈保存
- 调整 拆分用户、权限与个人中心等上帝服务为子聚合服务
- 调整 前端契约类型下沉 packages,查询改用类型安全条件
- 优化 权限、菜单、部门树与租户版本接入分布式缓存并补齐失效链路
v2.2.0 (2026-03-14)
- 新增 权限模型从 RBAC 升级为 RBAC 加轻量 ABAC,引入拒绝优先权限引擎
- 新增 接入统一授权变更事件与权限缓存版本失效机制,变更后即时生效
- 新增 前端全面重建,含偏好设置、多种布局模式、主题色系与图标选择器
- 新增 新增 OpenAPI 加密、离线图标、可复用表格组件与系统监控页
- 新增 补齐认证链路 2FA 与多端会话策略
- 调整 项目整体升级为 SaaS 形态并重构应用结构
- 调整 RBAC 收敛为聚合与关系仓储语义
- 修复 修复菜单图标与名称显示、刷新跳转 404、标签栏错位
v2.0.0 (2026-01-26)
- 新增 落地全新 RBAC 权限模型,完成认证授权链路与权限数据范围
- 新增 补齐核心业务服务,含日志、通知、用户会话、账号安全与风控
- 新增 接入代码生成能力并生成基础业务实体
- 调整 仓储与服务层整体重构,统一命名空间、主键与表名规范
- 优化 优化种子数据初始化与实体序列化,完善数据库配置
- 升级 升级底层框架依赖,发布 v2.0.0
v1.4.5 (2025-11-12)
- 调整 合并多批补丁与优化改动
- 优化 统一优化各系统实体的基础数据类型定义
- 升级 升级底层依赖,发布 v1.4.5
v1.4.3 (2025-10-31)
- 升级 升级底层依赖,发布 v1.4.3
v1.4.1 (2025-10-19)
- 升级 升级底层依赖,发布 v1.4.1
v1.3.6 (2025-10-18)
- 升级 升级框架依赖,发布 v1.3.6
v1.3.5 (2025-10-16)
- 优化 优化实体数据结构
- 优化 优化整体实现细节
- 升级 升级框架依赖,发布 v1.3.5
v1.3.0 (2025-09-20)
- 优化 优化整体实现细节
- 升级 升级框架依赖,发布 v1.3.0
v1.2.1 (2025-09-08)
- 新增 定义系统核心实体,搭建基础数据模型
- 新增 实体主键支持泛型 ID
- 优化 优化整体实现细节
- 升级 升级框架依赖,发布 v1.2.1
v0.11.1 (2025-06-25)
- 升级 升级底层框架依赖,发布 v0.11.1
v0.9.3 (2025-06-03)
- 优化 优化整体代码结构
- 移除 移除核心包中尚未实现的空壳子包
- 升级 升级底层框架依赖
v0.8.28 (2025-05-06)
- 优化 优化代码生成脚本模板与整体细节
- 升级 连续发布 v0.8.26 至 v0.8.28
v0.8.20 (2025-04-02)
- 升级 发布 v0.8.20
v0.8.18 (2025-03-19)
- 升级 同步依赖,发布 v0.8.18
v0.8.17 (2025-03-18)
- 优化 优化启动配置
v0.8.10 (2025-01-27)
- 优化 常规细节优化与打磨
v0.8.9 (2025-01-21)
- 升级 升级依赖包版本
v0.8.7 (2025-01-05)
- 新增 初始搭建基础应用框架与分层解决方案骨架
- 新增 新增权限模块与代码生成模块
- 新增 提供完整示例项目与 API 测试入口
- 优化 重命名项目以兼容 macOS
