Skip to content

[bug] 项目级 index repo ≥2 个时 xlings install_packages 静默失败(挡死 workspace 根级 [indices] 继承 + default 重定向组合) #238

Description

@Sunrisepeak

现象

同一工程的 .mcpp/.xlings.json 里注册 两个及以上 项目级 index repo 时,
xlings interface install_packages任意包安装静默失败:NDJSON 只有
{"exitCode":1,"kind":"result"},无任何 error 事件;mcpp 侧只能报出
error: fetch '<pkg>@<ver>' failed (exit 1),完全无法定位。

单 repo 一切正常。与 repo 名是否为内建 mcpplibs、URL 是否相同均无关:

index_repos 安装 compat:compat.imgui@1.92.8 结果
[compat] exit 0
[mcpplibs](装 mcpplibs:… 包) exit 0
[compat, mcpplibs](同 URL) 静默 exit 1
[compat, fmtlib](同 URL,无 mcpplibs) 静默 exit 1
[compat, mcpplibs](不同 URL) 静默 exit 1

复现(xlings 0.4.62,mcpp 0.0.97 发行包 vendored 同版本):

# 沙箱:XLINGS_PROJECT_DIR 下 .xlings.json 含两个 path repo(指向任意含 pkgs/ 的本地索引)
cd ~/.mcpp/registry && env PATH="$HOME/.mcpp/registry/subos/default/bin:$PATH" \
  XLINGS_HOME=$HOME/.mcpp/registry XLINGS_PROJECT_DIR=<sandbox> \
  ~/.mcpp/registry/bin/xlings interface install_packages \
  --args '{"targets":["compat:compat.imgui@1.92.8"],"yes":true}'
# → {"exitCode":1,"kind":"result"}   (无任何 error 事件)

触发路径与影响

mcpp 0.0.97 起 workspace 根级 [indices] 会被成员继承(#224)——mcpp-index 仓根一次
声明 default/compat/fmtlib/marzer/nlohmann 五个命名空间后,每个成员的 .xlings.json
都有 5 个 repo,所有未缓存包的安装全部失败。这实质上把 #224 的根级集中化 + R6 的
default 重定向组合用法(mcpp-index 的目标形态)挡死了:目前只能退回"每成员单命名空间
声明"(单 repo 恰好能用)。

期望

  1. 多项目级 index repo 正常工作(mcpp-index 的成员天然需要 default + compat 组合);
  2. 失败时至少发一个 error 事件(kind:"error", message),不要裸 exitCode=1——
    这次定位花了一整轮二分,全部信息只有一个数字。

环境

xlings 0.4.62(mcpp 0.0.97 vendored)· linux x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions