2026-10-25,Launcher 0.1.42 / CLI 0.1.25。此为本地发现记录,未提交 GitHub issue。它不阻塞第二十九章单文件接入。
http://127.0.0.1:18368,Namespace file-invoices,匿名开发测试,Console/FAP 关闭。51937008ec05283631ff4c88222e5489fa4ce960c7ff270370110b84495cce44,源码提交 a35722565a36a1aec18d3dbba32ef8faa87dbe31。按发行包脚本启动,进程命令行另存证据。files-sqlite 指向 data/files.sqlite,含 file_invoices;targets-sqlite 指向 data/targets.sqlite,含 external_targets。前者没有 external_targets,后者没有 file_invoices,没有 ATTACH 或联邦数据库配置。FileInvoiceQueryModel 使用 Namespace 绑定的 files-sqlite;FileRemoteTargetModel.tm 显式 dataSourceName:'targets-sqlite',其 QM 单独查询正确返回四条教学目标。两个模型都经校验、刷新、describe。完整实际请求先按客户汇总文件账单,再以外部目标为左侧 LEFT JOIN。字段均来自已公开元数据或阶段输出。执行:
foggy-runtime --output json --base-url http://127.0.0.1:18368 --namespace file-invoices compose validate --script lab/files/queries/13-cross-source.fsscript
foggy-runtime --output json --base-url http://127.0.0.1:18368 --namespace file-invoices compose preview --script lab/files/queries/13-cross-source.fsscript
foggy-runtime --output json --base-url http://127.0.0.1:18368 --namespace file-invoices compose execute --script lab/files/queries/13-cross-source.fsscript
公开 Compose 手册说明不支持跨数据源 JOIN,列出 JOIN_CROSS_DATASOURCE。本例预期在校验阶段指出两侧来源不同,并提示先整理到同一可执行数据源或使用另行支持的对齐机制。
实际 validate、preview 均 success=true、valid=true。 生成普通 SQL,将 external_targets 与 file_invoices 放在同一个 CTE/JOIN 中。随后 execute 失败:
error.code=COMPOSE_EXECUTE_FAILED
error.phase=compose.execute
safeToAutoRepair=false
[SQLITE_ERROR] SQL error or missing database (no such table: file_invoices)
失败表位于账单库,不在目标库;与生成 SQL 在目标数据源上整体执行的表现一致。外层诊断却仍显示 Namespace 绑定的 files-sqlite,不能仅据该诊断判断实际执行连接。这里未用“缺表”推断单模型配置失败:双方独立查询已经通过。
问题定位为跨源合同未提前校验,不以公开文档未承诺联邦 JOIN 为由要求任意跨源执行;错误也应向 AI 解释来源冲突,避免引导补建业务表。
只将目标 QM 改为同一 files-sqlite 中的 FileLocalTargetQueryModel,对照请求按 validate → preview → execute 通过,四位目标客户中三位匹配,金额分别为 24.75、25.84、24.77;教学代码 00999 未匹配,实际金额为空。该对照由准备层复制目标,不是原生跨源查询。
实际校验 · 预览 · 执行错误 · 正常对照 · 目标单独查询 · 关键日志 · 重启前完整日志。
关键日志保存的是本次 CLI 退出码与 Runtime 结构化错误;服务 stdout/stderr 未找到对应独立异常堆栈,没有拼接其他请求的日志。请求在校验通过后才执行,执行失败后没有绕过验证或尝试私有接口。没有改动原教学端口、业务模型或源数据库。