2026-10-23。教学服务和默认启动入口已升级到 Launcher 0.1.38 预发布版 / CLI 0.1.25。时间系列第 17—21 章已同步并复审,数据与模型未改。
| 项目 | 值 |
|---|---|
| Runtime / PID | http://127.0.0.1:18067 / 6580,监听 PID 与加载 JAR 已核对 |
| 源码提交 | bf688e6e449156d307798a835f42b4a24415c96b |
| JAR SHA256 | 78f1959faa23e6236d76a42174b272d2b09cb2b59859388f9e0469bb59a05bed |
| 默认入口 | start-runtime.ps1,校验 JAR 后调用发行包原启动脚本 |
| 持久工作目录 | lab/runtime/work,保留已有数据源与 Bundle 注册 |
| 模式 | lite、none-dev-test-only,Console/FAP 关闭 |
六个发行文件重新核对摘要并通过 SHA256SUMS。升级前 18067 未监听,未凭历史 PID 停止进程。按原 README/脚本启动,wait-ready 后核对实际监听进程,再更新默认入口和启动记录。
四个 Namespace 绑定恢复:chinook、chinook-calendar、time-business、time-role-repro-035。三个教学数据库与原模型哈希不变,Bundle 名称、Namespace、路径、watch/enabled 不变。
40 次 CLI 查询执行、2 次 HTTP 执行、3 项预期拒绝通过。 查询先校验,Compose 另存 preview;数值与已独立核对的原基线比较。
| 范围 | CLI 执行次数 |
|---|---|
| 17:环比、同比、YTD/MTD、LAG、滚动及默认警告 | 12 |
| 18:日期角色、日历、同期/工作日、跨年周与年度关联 | 8 |
| 19:期末三种截止、流水和日均 | 6 |
| 20:完成/等待、异常、零分母、日期差及一秒阈值 | 10 |
| 21:主例与两个观察期边界 | 3 |
| 基础账单明细回归 | 1 |
两次 HTTP 验证分别在 query、Compose 中启用显式 NULL。三项非法请求为 SQLite 微秒单位、不存在字段、JOIN 右侧缺失键,均在校验阶段拒绝且未执行。
本轮还确认:
X-Foggy-Null-Output: explicit 正确保留选中字段的空值。此前独立发行包的 31 项检查见隔离复测。两轮统计分开,不当作唯一用例总数,也不扩大为全书或跨数据库验收。
五章的版本与链接已同步;精简正文中的旧版计数和重复环境说明,保留创建、加载与查询的分步结构。第二十章简要说明显式 NULL,提示词仍是一两句自然语言,不要求读者手工补接口参数。
现有项目的只读复跑:
python lab/checks/verify-teaching-0.1.38.py
升级记录 · 验收 JSON · 最新验证目录 · 读者复审
服务保持运行。旧发行文件与 evidence 保留;没有修改引擎源码、全局 CLI 或 Skill 定制,也没有进行干净 AI 会话、Console/FAP 或其他数据库验收。