历史记录:以下为 Launcher 0.1.24 初轮结果。2026-10-20 教学入口已切到 0.1.25,timeWindow 与 LAG 的当前验证和复跑方式见更新记录。旧失败证据不表示新版仍有这些问题。
日期:2026-10-20。正文:按时间分析。本轮真实调用公开 CLI,新增时间分析 TM/QM,验证自然月分组、跨年、年度与期间比较。
http://127.0.0.1:18067,Namespace chinook,数据源 chinook-sqlite,指向既有 Chinook SQLite 副本。沿用已运行的教学服务,没有重启。foggy-runtime-api/v1、schema 2026-06-06,securityMode=none-dev-test-only。本轮匿名查询;Console/FAP 未接入。capabilities、数据源绑定、连接、表结构和模型说明均保存到 evidence/chapter-11。正常采集入口每次重新检查能力、绑定、连接与公开字段。ChinookInvoiceTimeQueryModel,新增 TM 与 QM。单独建立时间分析查询面,原四个模型文件未变;物理来源仍为 Invoice,一行一张账单。原账单模型只有普通日期属性,尝试年月字段的校验返回 FIELD_NOT_FOUND,未执行该错误请求。随后按 Skill 的自维度模式建模:日期维度没有 tableName,从主表 InvoiceDate 取值;year、month、yearMonth 由作者控制的 SQLite dialectFormulaDef 定义。没有创建日历表或假造维表关联。
模型校验沿用本教学版本对已注册目录的处理:确认自己的 chinook-teaching Bundle 后,移除登记,校验六文件全部通过,再登记原目录、刷新并 describe。顺序及响应见 *-time-model-*.json;摘要和六文件哈希见 model-validation.json。查询在加载完成后单独运行。
实时元数据确认 invoiceDate$id 为 DATETIME,年份/月序号为 INTEGER,yearMonth 为 STRING。查询说明由引擎根据加载的代码生成,不需预先维护 Markdown。这里的 $id 是日期值,不是 InvoiceId。
请求位于 queries/chapter-11,执行清单见 query-manifest.json。所有用例对相同 payload 先 validate、后 execute,并检查未被分页截断。
| 请求 | 已核对的结果 |
|---|---|
01-monthly-totals.json |
2012 年 12 个月金额与张数逐项匹配第七章基线,合计 477.53、83 张 |
02-october-november.json |
日期范围 [2012-10-01, 2012-12-01),两个月各 7 张,金额分别为 42.62、37.62 |
03-cross-year-months.json |
2011-11 至 2012-02 保留四个年月组,金额依次为 23.76、37.62、37.62、37.62 |
04-annual-totals.json |
2011 年 469.58、83 张;2012 年 477.53、83 张;年度与月度合计一致 |
05-empty-months.json |
1990 年无记录,返回空列表,没有自动生成零值月份 |
calculate-chapter-11.py读取第二个用例的已校验、已执行响应,用 Python Decimal 计算十一月减十月,差额 -5.00,相对十月变化 -0.1173158141717503519474425153,展示为 -11.73%。工具产物见 comparison.json。这是查询结果上的工具运算,不是 Foggy timeWindow 的执行结果,也不是让 LLM 心算。
后续按用户要求完成了原因排查:简单 lag(invoiceAmount, 1) 已独立核对通过,不能将初轮失败概括为 LAG 不可用;原嵌套 SUM 有重复聚合问题,复合表达式与同层窗口依赖还涉及引擎分层/校验缺陷。timeWindow 同比的命名空间传递、月度环比计划及范围参数也已定位。详见专项排查。以下保留初轮证据,原五用例验收范围不变。
失败响应及命令保留,正常五用例复跑不包含这些探查。没有切换数据源、复制 Invoice 到默认库、调用私有接口或修改产品源码来掩盖错误。
| 探查 | 校验 | 执行与边界 |
|---|---|---|
probe-yoy.json |
通过 | QUERY_EXECUTE_FAILED,query.execute;比较计划执行出现 no such table: Invoice。普通聚合在命名数据源上正常,此现象提示比较计划的数据源处理需排查,尚未定位修复 |
probe-mom.json |
通过 | QUERY_EXECUTE_FAILED,query.execute;派生查询引用源输出中不存在的 invoiceDate$id |
probe-monthly-lag.json |
通过 | QUERY_EXECUTE_FAILED,query.execute;生成语句中 OVER 附着到复合表达式并出现 SQL 语法错误,不能据此宣称整套窗口计算已可用 |
三个错误均返回 safeToAutoRepair=false,没有自动修改数据或模型权限,未重试相同错误请求。timeWindow.value 的实际期间裁剪、上期缺失/零分母、跨年环比及滚动窗口等均没有因此获得验收。失败响应路径汇总于 acceptance 的 failedWindowProbes。
本章交付收敛为已通过的自然年月聚合与工具计算期间变化;原规划中的时间窗口能力保留待发行包修复后单独验收。不是把暂缓的 Text-to-SQL 与语义层多次生成对比换个名字执行。
verify-chapter-11.py以只读、immutable 方式读取 Chinook 原件的 Invoice 行,用日期字符串分组和 Decimal 核算五用例,再与由 CLI 结果计算的期间变化比较。原件与练习副本 SHA256 均保持固定值,既有四模型哈希与第十章验收一致。数值容许误差 1E-12,仅展示时舍入。
结果见 baseline.json 与 acceptance.json。acceptance 的 success 仅指上述五个查询、建模和计算范围;两个窗口能力标记均为 false,三个失败未计为通过用例。
在 lab 目录、模型已加载的前提下运行:
python -X utf8 .\checks\collect-chapter-11.py
python -X utf8 .\checks\calculate-chapter-11.py
python -X utf8 .\checks\verify-chapter-11.py
当前 Codex 会话实际编写模型、构造请求并执行 CLI;未另开干净会话只发正文三个短提示词做独立问答验收。未执行两路线正确性评测、生产权限或浏览器/FAP 验收。