2026-10-20。结论:仍可复现,已提交 #146。具体嵌套 ID/caption 列同时配置 name + alias,模型校验通过,但实时元数据未公开新名称,DSL 校验返回 FIELD_NOT_FOUND。同一 QM 使用原名称可以正确执行,不能仅归因于整维度引用的 alias 写法。
start-foggy-runtime.ps1 和 JAR。Release 标记为 prerelease。051639bf738633cc63c2e4acfb5a4e91f0a3782c45bdcf767876abd465c7ff40。8c8e461b73224d8faddbc7573e550cb549901f05。内部 Java 项目版本为 9.3.0-SNAPSHOT,发行身份另外通过 JAR 校验值、实际进程命令行与监听 PID 确认。http://127.0.0.1:18068,PID 121696,全新 WorkDir/注册文件;公开 Chinook v1.4.5 数据副本,Namespace chinook、named datasource chinook-sqlite。API foggy-runtime-api/v1、schema 2026-06-06,none-dev-test-only,Console/FAP 关闭。18067、PID 92156、Launcher 0.1.25 未重启、未替换。安装、进程身份、原始响应与日志均在 evidence/launcher-0.1.26-qm-alias。
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,可能存在传递缺口;这是排查线索,具体根因待维护者确认。未修改产品代码。
minimal/*-commands.json、probes/*-commands.json;进程日志为 runtime.out.log、runtime.err.log。别名查询的核心诊断来自 CLI JSON 错误,不是根据日志猜测失败。checks/retest-qm-alias-launcher-0.1.26.py、checks/minimal-qm-alias-0.1.26.py;前者首次登记步骤要求全新测试注册状态,重复运行前应准备新的隔离实例,不能覆盖日常教学目录。121696 已停止、18068 已释放,原教学 PID 92156 继续监听 18067,见 cleanup.json。本次只验证 QM alias;未重新验收 #145 DISTINCT 排序或专用 members 接口,也未验证独立新 Codex 会话仅靠短提示词完成全过程。第十二章后续示例保持原可用名称,待 #146 修复后再验证切换。