Skip to content

release: 3.11.0 - #103

Merged
ShenHaoCore merged 15 commits into
mainfrom
release/3.11.0
Oct 31, 2026
Merged

ShenHaoCore merged 15 commits into
mainfrom
release/3.11.0

Conversation

@ShenHaoCore

Copy link
Copy Markdown
Owner

定版 3.11.0(发布后审查修复批次:批量暂停/自动刷新/只读认证流/ETag/宽限期等 12 项修复,无迁移)。合并后打 v3.11.0 触发 CD。

ShenHaoCore and others added 15 commits October 31, 2026 07:16
test: cron-preview 生产鉴权契约补齐
…iff(审计发现:--ignore-cr-at-eol 后零差异,纯行尾漂移)
chore: .gitattributes 钉定行尾,消除 lock 文件幽灵 diff
- UserSecretsConfigurationSource 继承自 JsonConfigurationSource,按整类移除 Json 源时把 secrets 一并删掉,app 回退到共享 appsettings 默认值(localhost/CHANGE_ME)——本地开发文档承诺的 User Secrets 方式自该重构起从未真正生效
- 修复:只移除 Path 以 appsettings. 开头的宿主默认源,其余(secrets 等)保留
- 本机运行实测发现:启动 Bootstrapper 报 28P01(密码 CHANGE_ME 被拒);修复后 secrets 生效
- 新增契约测试:secrets 源存活且优先于共享默认,共享兜底键仍生效
…red-config

fix: 共享配置装配误删 user secrets 源(本地开发连接串失效)
真机浏览器验证发现:app.js 动态创建的 <time> 只设 datetime,未设 data-local-time,
refreshLocalTimes 的选择器找不到该元素,时间文本永远为空(详情面板只显示状态点、
Cron 预览不显示下次执行时间)。静态字符串断言测试覆盖不到 DOM 渲染,真机点击才暴露。

- 详情面板:<time> 补 data-local-time,无时间时显式输出 —
- Cron 预览:同样补属性
fix: 详情面板/Cron 预览动态时间不渲染(缺 data-local-time)
- data-submit-once 多提交按钮表单:禁用字段不进 FormData,处理器禁用第一个按钮(=暂停提交器)导致请求丢失 action 字段、批量暂停必然「未知操作」;恢复/触发则双击重复提交——改为先把 event.submitter 的 name/value 写入隐藏域再禁用全部按钮
- interactionOpen 查 .cron-editor:not([hidden]),而 hidden 在父行 tr 上——可操作模式恒判「交互中」,自动刷新两条路径全短路;改为查 .cron-row 并新增焦点在输入控件内不刷新守卫
- Cron 预览过期响应竞态:请求序号,慢的旧响应不再覆盖新表达式的预览
- flash dismiss 后 document 级 visibilitychange 监听以 AbortController 解绑
- /api/tasks ETag 改为排序后 (JobId, UpdatedAt.Ticks) 哈希 + 分页参数:旧「数量+秒级截断」指纹在同一秒连续两次写入时误命中 304(客户端拿过期缓存),且不同分页共用 ETag;304 分支补 X-Total-Count
- ReadOnlyGuardFilter 放行 /login /logout /api/auth——只读模式此前连登录提交与登出都被 403
- /error 按状态段给语义标题:401/403/429 不再被标成「服务器内部错误」
- 机器客户端 401 补 WWW-Authenticate: Basic realm="TaskRunner"(与 Dashboard/openapi 守卫一致)
- RunUnderBootstrapLockAsync 锁等待受默认 30s CommandTimeout 限制:并发首启遇长迁移超时崩溃而非等待——锁获取/持有期间 CommandTimeout=0,finally 恢复
- 滚动升级版本偏斜防护:Api 新版+Worker 旧版并行重启时旧进程发现集不含新任务,立即删除会误删配置并摘 recurring——RemoveMissingAsync 增加 10 分钟宽限期;prune 保留清单并入库中现存行
- PlatformSelfCheckJob 探针写删之间异常留 .self-check-*.tmp 永不回收——finally 兜底清理
- LogCleanupJob 单文件被占用/只读抛异常中断整轮清扫且统计失真——逐文件容错,汇总单列「失败 N 个」
- 测试 +8:ETag 同秒双写/分页、只读登录放行+写拦截、401 语义标题、Basic 质询头、宽限期两阶段、prune 保留清单、只读文件容错(Windows 场景)、自检探针无残留
fix: 发布后全量审查修复批次(12 项)
@ShenHaoCore
ShenHaoCore merged commit 1d63b5c into main Oct 31, 2026
3 checks passed
@ShenHaoCore
ShenHaoCore deleted the release/3.11.0 branch October 31, 2026 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant