Skip to content

fix(client): 把 downloadFabric() 提升为 Client 扩展,GUI 也能下载 Fabric 库 - #99

Merged
wangzhizhou merged 1 commit into
mainfrom
fix/client-download-fabric
Oct 23, 2026
Merged

wangzhizhou merged 1 commit into
mainfrom
fix/client-download-fabric

Conversation

@wangzhizhou

Copy link
Copy Markdown
Contributor

fix(client): 把 downloadFabric() 提升为 Client 扩展,GUI 也能下载 Fabric 库

现象:GUI 里选「客户端 · Fabric」启动失败(CLI 正常)。

根因:downloadFabric() 只写在 Launcher(CLI 用的实现)上,不在 Client 协议扩展里,
所以 GUIClient.startWithProcess() 只做了 download() + launch(),Fabric 的 loader 库
从来没被下载。classpath 里已经有 loader 主类(addon 解析成功),库却不在 → 启动即失败。

修复:

  • Client+Fabric.swift:新增 extension Client { mutating func downloadFabric(onEvent:) },
    与 downloadClient(onEvent:) 对称(结构化进度 LaunchProgress)。
  • Launcher:删掉重复实现,改为调用共享实现(CLI 行为不变,只是多了 onEvent 可选参数)。

验证:swift build / swift test 通过;后续由 app 侧 GUIClient 调用它(见 app 同名 PR)。

现象:GUI 里选「客户端 · Fabric」启动失败(CLI 正常)。

根因:`downloadFabric()` 只写在 `Launcher`(CLI 用的实现)上,**不在 `Client` 协议扩展里**,
所以 `GUIClient.startWithProcess()` 只做了 `download()` + `launch()`,Fabric 的 loader 库
从来没被下载。classpath 里已经有 loader 主类(`addon` 解析成功),库却不在 → 启动即失败。

修复:
- `Client+Fabric.swift`:新增 `extension Client { mutating func downloadFabric(onEvent:) }`,
  与 `downloadClient(onEvent:)` 对称(结构化进度 `LaunchProgress`)。
- `Launcher`:删掉重复实现,改为调用共享实现(CLI 行为不变,只是多了 `onEvent` 可选参数)。

验证:swift build / swift test 通过;后续由 app 侧 `GUIClient` 调用它(见 app 同名 PR)。
@wangzhizhou
wangzhizhou merged commit cb9ad0b into main Oct 23, 2026
8 checks passed
@wangzhizhou
wangzhizhou deleted the fix/client-download-fabric branch October 23, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant