返回正文目录

Launcher 0.1.26:QM alias 复测

2026-10-20。结论:仍可复现,已提交 #146。具体嵌套 ID/caption 列同时配置 name + alias,模型校验通过,但实时元数据未公开新名称,DSL 校验返回 FIELD_NOT_FOUND。同一 QM 使用原名称可以正确执行,不能仅归因于整维度引用的 alias 写法。

环境与安装

安装、进程身份、原始响应与日志均在 evidence/launcher-0.1.26-qm-alias。

操作与结果

  1. 按发行脚本启动独立实例,等待就绪,核对能力与进程身份。复制公开 SQLite 原件,登记数据源、绑定 Namespace、测试连接并探查五张相关表。
  2. 复制教学六个模型到独立目录,校验、加载、刷新。原字段艺术家分组对照返回 119 组。
  3. 在隔离模型副本复测原有三个 QM 别名方案;三个请求与 0.1.25 复现保持不变。四个模型文件校验通过,依次读取实时 JSON/Markdown,再校验查询。
  4. 缩减为一对 TM/QM,显式对艺术家 ID/caption 列配置相同的 name + alias,重做校验、加载、元数据读取及查询对照。
方案 模型校验/加载 元数据公开新名称 新名称查询 同 QM 原名称对照
整维度 ref 设置 alias 通过 否 FIELD_NOT_FOUND 正确执行
ID/caption 分别设置 alias 通过 否 FIELD_NOT_FOUND 正确执行
ID/caption 设置相同 name + alias 通过 否 FIELD_NOT_FOUND 正确执行
最小 TM/QM 的 name + alias 两文件通过 否 FIELD_NOT_FOUND 正确执行

每个原名称对照均返回 Iron Maiden,ID 90、明细 34 条、金额 33.66。所有被校验拒绝的请求均未继续执行。完整三方案结果见 summary.json,最小复现见 minimal/verification.json。

最小复现的关键配置:

{ ref: line.track.album.artist$id, name: 'albumArtistId', alias: 'albumArtistId' },
{ ref: line.track.album.artist$caption, name: 'albumArtistName', alias: 'albumArtistName' }

预期:JSON/Markdown 公开约定名称,DSL 的选择、筛选、分组与排序可使用它们;不支持的配置应在模型校验/加载时明确拒绝。

实际:元数据仍公开 artist$id、artist$caption,查询在 query.validate 阶段失败:

FIELD_NOT_FOUND
Field 'albumArtistId' not found in model 'MinimalArtistAliasQueryModel'.
Did you mean 'track.album.artist$id'?

明确失败位置是语义元数据/字段校验链路,尚未进入 SQL 执行。Release 源码中,QM 列配置保存 name/alias,而语义维度字段生成使用 TM 维度的 effectiveName,可能存在传递缺口;这是排查线索,具体根因待维护者确认。未修改产品代码。

证据与收尾

本次只验证 QM alias;未重新验收 #145 DISTINCT 排序或专用 members 接口,也未验证独立新 Codex 会话仅靠短提示词完成全过程。第十二章后续示例保持原可用名称,待 #146 修复后再验证切换。