Skip to content

Agent:接入 OpenClaw,配置主模型与备用链并提供安装入口 - #1088

Open
GodD6366 wants to merge 39 commits into
yetone:mainfrom
GodD6366:feat/openclaw-agent
Open

GodD6366 wants to merge 39 commits into
yetone:mainfrom
GodD6366:feat/openclaw-agent

Conversation

@GodD6366

@GodD6366 GodD6366 commented Oct 7, 2026 •

Copy link
Copy Markdown

行为变化

在 Agent 页和 CLI 中接入 OpenClaw,支持发现、安装入口、接入/断开,以及主模型与有序备用模型的配置。模型链编辑器保留在本 PR:主模型和备用列表共同决定 OpenClaw 的模型选择,是同一个接入功能的配置入口。

  • 发现本机及 WSL 的 OpenClaw;未安装时在「安装其他 Agent」中提供官方安装脚本,展示不会执行安装器或创建配置。
  • 写入 magpie 供应商、模型目录和默认模型,保留用户自己的供应商、频道及其他配置。主模型和备用模型支持 magpie 路由组及原生 provider/model,编辑后自动保存,可排序和清空;写入失败保留原值。
  • 编辑默认/唯一 Agent 的有效模型,保留其他 Agent 的覆盖;断开时恢复未被外部修改的原值。逐会话选择不变。
  • JSON/JSONC 保留注释与排版。其他 JSON5 语法在首次编辑时规范化并备份原文;断开后值一致则逐字节还原,值变化则保留用户修改并删除过期备份,下次接入重新备份当前原文。
  • 遵循 OpenClaw 配置路径、~ 展开及只读/Nix 标记;损坏配置和 $include 均拒绝写入。采用官方彩色图标,补齐中、英、繁中、日、德文案。

设计及源代码:Agent wiring、internal/agent/openclaw.go、internal/gui/api.go、internal/gui/assets/app.js。

Review 修复与验证

当前 head:bb5eca3e15cabf72d21fae2e86ab80c17a0777c8,已合入上游 5774c790bdd62533179b705a1dba8c19cff5d481。

OpenClaw 修复(独立提交 532d2125)及本次合并结果:

  • 合并最新 main 时解决了唯一的脚本预算冲突:保留主线的 1,469,000 字节预算,OpenClaw 不再额外提高预算。合并后总量为 1,451,460 字节,app.js 为 1,261,359 字节,均在各自预算内。主线的窗口返回合并刷新与 OpenClaw 编辑器都保留。
  • Sync 保留反向代理地址后,stash 的 provider after 现在从实际落盘内容读取,使记录与配置一致。Disconnect 能删除新建的 provider,或恢复用户原有的 provider。
  • macOS/Linux 安装标签改为可翻译的 script;删除独立 npm 入口,仅提供会准备所需 Node.js 版本的官方安装脚本。
  • 只读/Nix 标记通过 at.getenv 读取。状态/配置路径中的 ~ 按有效 OpenClaw home 展开,OPENCLAW_HOME 自身的 ~ 按系统 home 展开;共享环境变量校验也接受这些路径。WSL 继续忽略 Windows 的路径与只读标记。
  • 对应行为已更新到 Agent wiring 设计文档。

本次冲突合并检查

  • 唯一手动冲突为 internal/gui/core_budget_test.go,完整保留主线预算;相对新 main,该文件已无差异。合并未另加产品行为。
  • go test -tags nogui ./... -count=1 -timeout=45m -p 4 全部通过,64 个有测试的包成功;Agent 351.754 秒、Gateway 404.356 秒、GUI 72.254 秒。
  • macOS/arm64、Linux/arm64 nogui、Windows/arm64 的 go vet 和构建全部通过。
  • Playwright 1.63.0 的 Chromium 定向 GUI 检查串行执行,33 项通过,0 失败:openclaw-models、agent-update-all、window-back-once。模型链覆盖五种语言、web/desktop、420/1100px;窗口返回刷新覆盖中英文及 window/panel。
  • WebKit 本轮未能完成:可用运行时出现加载/等待按钮稳定超时;独立 HTML 单按钮(不加载 Magpie)也复现相同点击超时,阻塞的运行已中止。早先与 Go 检查并行时,Chromium 的更新用例另有一次滚动位置断言 30 vs 0;完整独立串行运行通过,未修改源码或测试来绕过断言。
  • gofmt -l 无输出,git diff --check 通过;相对新 main 的 27 个 PR 文件通过 UTF-8/NUL 检查。未运行完整 GUI 套件及物理 Linux/Windows/WSL 验收,未改变本地运行中的应用或真实配置。

上一轮 Review 修复检查(b08e48fe)

  • 最终重跑 go test -tags nogui ./... -count=1 -timeout=45m -p 4 全部通过(Go 1.27.1;Agent 393 秒、Gateway 400 秒、GUI 63 秒)。
  • 三平台 go vet 与构建通过:macOS/arm64、Linux/arm64 nogui、Windows/arm64。
  • OpenClaw、反向代理、脚本预算、安装命令和路径校验定向测试通过;并发同步/模型切换与代理场景的 -race 检查通过。
  • Chromium/WebKit GUI 58 项通过,0 失败/跳过:模型链 40 项(5 种语言、420/1100px、web/desktop、两个引擎)及更新/安装入口 18 项。
  • 修复前两个 review 测试均复现失败。对最终测试用 Go overlay 换回旧生产代码,代理测试四例均出现 stash 与实际 provider 不一致、断开仍留下 magpie provider;路径展开测试也失败。修复后通过。
  • gofmt -l 无输出,git diff --check 通过;相对当时 main 11173c8 的 28 个改动文件均通过 UTF-8/NUL 检查。

全量检查发现的上游测试问题

main 11173c8a 的 TestCodexFittedImagesPastTheBudget 假设按第一张 PNG 的体积设置预算会恰好保留 10 张,但图片压缩体积不同,本机实际保留 11 张,后续两轮重制 19 张。原断言在 -race -count=20 下每次都失败。

独立提交 b08e48fe 只修正该测试:按上一轮实际保留数量检查重制数量,同时要求非空的部分缓存且不超过字节预算,Gateway 运行逻辑不变。修正后 20 次 -race 通过;overlay 故意绕过缓存命中时仍失败(重制 30 张,保留 11 张),确认复用保证没有被放宽。修改后的测试也通过三平台 vet。

所有 Go 检查均使用临时 HOME,固定 GOPATH/GOMODCACHE/GOCACHE。本轮未替换运行中的本地 Magpie,未执行安装脚本,未重跑完整 GUI 套件、真实供应商模型请求或物理 Linux/Windows/WSL 验收。macOS 有现有 SDK/链接警告。

维护者已确认

最新 review 已接受 github.com/titanous/json5 v1.0.0 和两个官方安装地址。该 review 还记录了 OpenClaw 2026.10.4 沙盒验证:连接、fallback 链与断开配置通过官方校验,JSON5 原文逐字节还原。


🎬 界面预览

CI 用这个 PR 的代码构建并真实运行 magpie(沙盒环境,配置了真实的 DeepSeek key),按改动自动操作、截图和录屏 · b7d5012 · 运行记录

改动(按代码):Agent 页新增 OpenClaw:未安装时出现在「安装其他 Agent」里,提供官方安装脚本与官方彩色图标;接入后在该 Agent 的面板中新增「配置模型」——主模型加可排序、可清空的降级模型链,内联选择并即时保存。

Note

沙盒里看不到:沙盒没有安装 OpenClaw,也没有 ~/.openclaw/openclaw.json,因此看不到 OpenClaw 的 Agent 行与接入后的「配置模型」编辑器(主模型/降级模型选择弹窗、上移、移除、添加、校验与写入失败提示)——这些需要真实接入 OpenClaw 才会渲染;这里只能看到未安装时的安装入口。

播放录屏

▶️ 点图打开录屏(可暂停、拖动)· 直接下载 mp4 · 红线是鼠标轨迹,红色圆环是点击

OpenClaw 的安装入口

展开前的「安装其他 Agent」

展开前的「安装其他 Agent」

展开后的「安装其他 Agent」列表

展开后的「安装其他 Agent」列表

Requested by @GodD6366. Register OpenClaw locally and in WSL, maintain
its magpie provider/catalog and default primary, and restore only values
magpie owns on disconnect. Respect config paths, JSON5 and read-only
configs. Keep OpenClaw's official colours in the Agents tab.

Verified in a temporary HOME with pinned Go caches: OpenClaw regressions,
go vet, macOS build, Linux nogui build and Windows cross-build. The touched
GUI and ja/de locale tests pass in Chromium and WebKit (10 tests).
TestOpenClawRegistered fails with "OpenClaw is missing from Agents" when
the registration is removed, then passes after restoring it.

The full nogui Go suite fails only TestPluginHTTP2TakesTheProxy on this
machine (Bun 1.3.14, status 0 RangeError). The same failure reproduces on
unmodified upstream main f1821f4.
@GodD6366
GodD6366 deployed to ui-preview October 7, 2026 02:20 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 7, 2026
Add the vendor installers for macOS/Linux and Windows so an uninstalled OpenClaw is not filtered out of Install another agent. Listing it does not create or change OpenClaw's configuration.\n\nThe fresh-home regression failed without the installer entry on all three platforms and passes with it; the full agent package and an isolated web API/UI smoke check also pass.
@GodD6366
GodD6366 deployed to ui-preview October 7, 2026 02:50 — with GitHub Actions Active

GodD6366 commented Oct 7, 2026 •

Copy link
Copy Markdown
Author

Fixed the fresh-machine discovery gap in 9f6ccef: an uninstalled/unconfigured OpenClaw now appears under “Install another agent”, with the official coloured icon and vendor installer command (macOS/Linux shell, Windows PowerShell).

Root cause: installsOf intentionally filters out agents without installation commands; OpenClaw was registered but had no vendorInstall entry. The previous preview accurately exposed this omission, rather than a recording-only issue.

Verification:

  • The fresh-home regression and installer-command checks first failed on macOS, Linux and Windows, then passed with the fix.
  • go test -tags nogui ./internal/agent -count=1 passes.
  • An isolated real web UI, with no OpenClaw CLI on PATH and no .openclaw directory, shows OpenClaw in the install list; the coloured SVG loads without a monochrome mask. Listing does not create its configuration.
  • git diff --check passes.

Installation commands are copied from OpenClaw’s official installation guide. No installer was executed and no live agent configuration was changed.

The new UI preview run completed successfully and the PR description now includes its screenshots and video. I downloaded and inspected the published media: the installation screenshot and the video at approximately 00:05 visibly show OpenClaw, its red coloured icon and the vendor installation command under “Install another agent”. The sandbox does not install OpenClaw, so the installed-agent connection flow remains outside this recording.

github-actions Bot added a commit that referenced this pull request Oct 7, 2026
@GodD6366 GodD6366 changed the title agents, gui: connect OpenClaw to magpie while preserving its own models Agent:接入 OpenClaw,保留自有模型并提供安装入口 Oct 7, 2026
@GodD6366
GodD6366 deployed to ui-preview October 7, 2026 03:29 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 7, 2026
Merge upstream main at 6d7b574, retaining its Claude sign-in verification commands and the OpenClaw command. Add the two OpenClaw error translations required by upstream Traditional Chinese support.

Verified in temporary HOME with pinned Go caches: go vet, macOS build, Linux nogui build, Windows build, all agent tests, and 27 Chromium/WebKit checks across English, Chinese, Traditional Chinese, Japanese and German. Before the translations, the existing zh-TW check failed with the two missing OpenClaw keys. The full nogui Go suite fails only at TestPluginHTTP2TakesTheProxy with the existing Bun status=0 RangeError.
@GodD6366
GodD6366 deployed to ui-preview October 8, 2026 03:21 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 8, 2026
…ne#1088)

Merge upstream main at ad3b7fe after its Air reference was inserted where the OpenClaw paragraph lived. Keep both descriptions and move OpenClaw into its own subsection with its verification command, reducing conflicts with new agent entries.

On this merged tree, go vet and macOS, Linux nogui and Windows builds pass. Sandboxed TestOpenClaw, TestAir, TestCopilot and TestSealed checks pass in the agent, gateway and provider packages. The GUI assets are unchanged from 6c49756, where 27 Chromium/WebKit checks passed. The previous full Go run failed only at the Bun HTTP/2 proxy test, reproduced on unchanged upstream 6d7b574.
@GodD6366
GodD6366 deployed to ui-preview October 8, 2026 03:26 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 8, 2026
@yetone

yetone commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Thanks for the PR and the follow-up. Before a full review: this PR adds a new dependency (github.com/titanous/json5 v1.0.0 in go.mod), and per docs/contributors.md a new dependency stops the review until the maintainer has looked at it. I've flagged it to @yetone. If OpenClaw's config can be read without it (it's JSON5; the repo already has tidwall/jsonc for comments and trailing commas), dropping the dependency would let the review go ahead straight away.

@GodD6366

GodD6366 commented Oct 8, 2026

Copy link
Copy Markdown
Author

Thanks for flagging the dependency. I checked whether the existing parsers can replace it, and I recommend keeping a JSON5 decoder for this adapter.

OpenClaw supports JSON5 beyond comments and trailing commas. Its official minimal configuration already uses unquoted object keys, and its configuration reader uses the json5 parser. This is vendor-supported input, rather than an extra format invented by the PR.

I tested the literal minimal configuration from those docs with both parsers in an isolated temporary HOME:

  • encoding/json after tidwall/jsonc.ToJSON fails with invalid character 'a' looking for beginning of object key string.
  • titanous/json5 decodes it successfully.
  • Separate unquoted-key, single-quoted-string and hexadecimal-number examples fail through jsonc and pass through json5. The PR also covers JSON5 configuration editing/restoration and numeric types in TestOpenClawJSON5AndUnsafeConfigs and TestOpenClawJSON5Numbers.

The existing YAML decoder is not equivalent either: in the same comparison it rejects a valid JSON5 escaped single-quoted string and accepts a tagged YAML value that JSON5 rejects. Calling OpenClaw's CLI would change the current config-file-only integration into one requiring an installed executable; evaluating the file as JavaScript would accept executable expressions rather than validate JSON5 data.

For the added dependency's scope, go list -deps reports only github.com/titanous/json5 as non-standard-library code in its runtime dependency closure. Its production imports are standard-library packages; otto and godebug in the module manifest are used by the library's own tests, not linked into magpie. The version is pinned to v1.0.0 with module checksums.

A JSON5-capable parser is necessary to handle OpenClaw's documented configuration syntax. This particular library is an implementation choice, but the existing dependencies are not a drop-in replacement. Keeping it avoids limiting the integration to JSONC or introducing a custom parser. This explanation is for the maintainer's dependency review; I am not treating that review as waived.

@GodD6366
GodD6366 deployed to ui-preview October 11, 2026 03:20 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 11, 2026
@GodD6366
GodD6366 deployed to ui-preview October 12, 2026 14:48 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 12, 2026
GodD6366 added a commit to GodD6366/magpie that referenced this pull request Oct 13, 2026
@GodD6366
GodD6366 force-pushed the feat/openclaw-agent branch 2 times, most recently from e014d44 to 963386a Compare October 13, 2026 04:20
GodD6366 added a commit to GodD6366/magpie that referenced this pull request Oct 13, 2026

GodD6366 commented Oct 13, 2026 •

Copy link
Copy Markdown
Author

@yetone 已同步最新 main(e1b70c13)并解决 #1088 的冲突,最终 head 为 94b5392e,GitHub 显示 mergeable=true。OpenClaw 改动与主线新增的 DevEco 内容均已保留;逐文件核对上传后的 Git blob SHA,远端 diff 仅包含原有 16 个 OpenClaw 相关文件,没有额外删除。gofmt、JavaScript 语法、diff 空白和冲突标记检查通过。本次 Test CI 状态是 action_required,尚未执行,需要维护者批准运行。请你方便时再看一下,尤其是前面提到的 github.com/titanous/json5 依赖是否可以接受。

@GodD6366
GodD6366 deployed to ui-preview October 15, 2026 05:53 — with GitHub Actions Active
@GodD6366

Copy link
Copy Markdown
Author

@yetone 已合入刚拉取的 main 8b89b2e36c4ae5b98e6672e86ec0ab1cdd7af77f,解决新的冲突并推送。当前 head 为 c64a0e24cf3dcd70f7b355891eb72f767f37cbac,GitHub 已确认 MERGEABLE,请方便时在这个 head 再看一下。

这次冲突在 app.js 尾部:主线把启动逻辑迁到 start.js,Usage 的初始化迁到插件页面。解决时保留主线的新启动顺序和插件初始化,只留下 OpenClaw 模型链函数,避免重复启动。已逐字节核对:OpenClaw 模型链函数与修复前一致,start.js 和 Usage 插件页面与 main 一致。相对当前 main 的 diff 仍为 24 个 OpenClaw 相关文件,+1962 / -27,全部通过 UTF-8/NUL 检查。

本轮验证:

  • GUI 66 项通过,0 失败/跳过:Chromium/WebKit;模型链覆盖 en/zh/zh-TW/ja/de、420/1100px、web/desktop,另检查连接、页面恢复、共享选择器和翻译。
  • 临时 HOME、固定 Go 缓存:OpenClaw/Connect/Disconnect、GUI API 定向测试及完整 agentenv 包测试通过;agent/agentenv/gui/cli 的 nogui vet、仓库 nogui 构建通过。
  • JavaScript 语法、gofmt、diff 和冲突标记检查通过。
  • 未重跑全量 Go/GUI 套件、跨平台运行或真实供应商请求。本次 UI preview 刚入队:运行记录,尚未把它计为通过。

之前 JSON5 备份生命周期修复和模型链功能保持不变。新增 JSON5 依赖及 vendorInstall 的两条官方安装地址,仍请维护者确认;本次同步不视作这些事项已获批准。

github-actions Bot added a commit that referenced this pull request Oct 15, 2026
Merge main b030317. Resolve the sole conflict in docs/reference.md by retaining both OpenClaw and the upstream MothX provider-scoped agent entries. Existing OpenClaw behavior is preserved.

Verified with isolated HOME and pinned Go caches: OpenClaw/MothX and GUI API tests, complete agentenv tests, scoped nogui vet and repository nogui build. All 55 selected Chromium/WebKit GUI checks passed, including model chains across five languages, web/desktop and narrow/wide layouts, connection, shared picker and translations. JS syntax, gofmt, UTF-8/NUL/conflict and diff checks passed. Full suites, cross-platform runtime and real-vendor requests were not rerun.
@GodD6366
GodD6366 deployed to ui-preview October 15, 2026 16:35 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 15, 2026
@GodD6366

Copy link
Copy Markdown
Author

@yetone 再提醒一下 #1088,方便时请帮忙复查当前 head 4b13e4d104737116b7a461cdb80024fa0154b105,谢谢。

你上次已确认 JSON5 过期备份问题修复、模型链 GUI 的覆盖可以接受;目前仍待你确认新增的 github.com/titanous/json5 依赖,以及 vendorInstall 中两条官方安装地址。后续主线冲突也已解决,GitHub 当前显示 MERGEABLE。请看看这些待决项是否可以接受;如还需要补充验证或调整,我们再跟进。

Sync upstream ccb2eea into the local OpenClaw branch. The merge has no conflicts and retains OpenClaw integration. This commit is for local build and runtime replacement only.
@yetone

yetone commented Oct 18, 2026

Copy link
Copy Markdown
Owner

正在复查当前 head 4b13e4d104737116b7a461cdb80024fa0154b105(依赖 titanous/json5、vendorInstall 的两条安装地址,并在合入最新 main 后跑完整测试)。其他会话请勿同时复查这个 PR。

@yetone yetone left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢持续跟进。本轮在 head 4b13e4d10 合并 origin/main d783df46c 后的树上逐行审了一遍,并跑了构建、vet、全量测试和 GUI 测试。两项之前悬而未决的问题已经可以结案,但还有两个测试红、三处需要改的地方,所以这次先 request changes。

已确认没问题的

  • github.com/titanous/json5:BSD-3 许可,运行时只依赖标准库,用到的只是一个小的 decoder。上游不怎么维护,已知的 bug #7 在出错时会拒绝解析(fail closed),不会写坏文件。自己写一个窄版 JSON5 解析也不会更安全,所以接受这个依赖。
  • 两个安装地址:https://openclaw.ai/install.sh 和 install.ps1 与 openclaw/openclaw 的 README、docs.openclaw.ai/install 一致,是官方地址。
  • 真实 OpenClaw 2026.10.4 沙盒试用(Node 24.22.0,沙盒 HOME 加 OPENCLAW_STATE_DIR):
    • magpie 写出的已连接、带 fallback 链、已断开三种配置都通过了 openclaw config validate --json。
    • openclaw models list 列出了 primary 和 fallback#1。
    • Disconnect 后 JSON5 原文件逐字节还原。
  • gofmt、go vet(darwin、linux、windows)和三平台构建都通过。
  • 涉及的 GUI 测试在 chromium 和 webkit 下、所有语言 167/167 通过:openclaw-models、agent-connect*、agent-connected-unfolded、agent-models-picker、claude-picker-*、editor-picker-clicks、picker-rail-current、gui-de、gui-ja、gui-zh-tw。

需要改的

  1. TestCoreScriptBudget 红(由本 PR 引起)。 核心脚本 1,450,937 字节,超出预算 1,447,000(main 是 1,446,845)。请把 OpenClaw 专用的 GUI 代码挪进插件,或者在 internal/gui/core_budget_test.go 里提高预算,并在注释里写明原因和新数字。

  2. TestReverseProxyIsStillMagpie 红(由本 PR 引起)。 origin/main 上单独跑是绿的,本 PR 上 nginx 和 local 两个子测试都失败:

    proxy_kept_test.go:141: /.config/magpie/stash.json is back on this machine's gateway
    

    原因:openclawWriteChain 里的 remember(openclawProvider, openclawProviderAt(at.gw())) 会把 after 记进 stash,这时用的是本机网关地址 http://127.0.0.1:3591/v1。openclaw.json 本身保住了反向代理地址,但 stash.json 里 openclaw.config:.openclaw/openclaw.json 这条记录的 models.providers.magpie.after.baseUrl 又变回了 127.0.0.1。Sync 之后,记录的值和文件里实际写的值不一致,之后的漂移判断和 Disconnect 还原都会以错的值为准。请让记录的 after 和实际写进文件的 provider 块保持一致(用户放在反向代理后面时也一样)。改完后跑 go test -run TestReverseProxyIsStillMagpie ./internal/agent/ 确认。

  3. Via: "shell" 不在 app.js 的 VIA 表里。 GUI 用的是 t(VIA[c.via] || c.via),所以界面上会显示一个没翻译的原文 "shell"。请和 claude、opencode、codex 一样用 "script"。

  4. {Via: "npm", Command: "npm i -g openclaw"} 这条安装方式建议去掉。

    • 它和官方写法 npm install -g openclaw@latest --allow-scripts=openclaw 不一样。
    • OpenClaw 需要 Node >=24.16 <25 或 >=26.1,而 Node 22 现在很常见,装完也跑不起来。
    • 它也绕过了 npmInstall 先装好 Node 的流程,以及 Windows 上对 npm.cmd 的处理(PowerShell 会拦 npm.ps1)。

    官方安装脚本本身会处理 Node,只留它就够了。如果一定要保留 npm,请照搬官方命令,并走 npmInstall。

  5. (次要)

    • writable() 里用的是 os.Getenv,应改用 at.getenv,否则在 WSL 下读到的是 Windows 这边的环境变量。
    • OPENCLAW_STATE_DIR 和 OPENCLAW_CONFIG_PATH 里的 ~ 没有像 OpenClaw 那样展开。

本次运行记录

  • 树:4b13e4d10 合并 origin/main d783df46c(干净合并)。
  • 构建、格式、vet:go build(darwin、linux、windows)通过,gofmt -l 无输出,go vet 三个平台都通过。
  • 全量测试:set -o pipefail; go test -timeout 45m ./... 的结果是:
    • internal/gui 因上面第 1 条失败。
    • internal/agent 和 internal/gateway 在机器负载约 300 时撞到 45 分钟超时,没有断言失败。之后单独重跑 internal/agent,只有上面第 2 条失败。
    • 其余包全部 ok。
  • GUI:上面列出的文件在 chromium 和 webkit 下、en/zh/zh-TW/ja/de 全部通过。
  • 真实 OpenClaw:只在沙盒 HOME 里试用,没有动过真实的 ~/.openclaw。

请修完 1 到 4 后 push,我会在新的 head 上重新审一遍。

Record the provider actually written after Sync keeps a remote gateway or
reverse proxy, so Disconnect can restore the original provider. Expand
OpenClaw tilde paths through the shared environment guard and use the
place-local reader for read-only flags. Offer only the vendor installer
with the translated script label.

Raise the core script budget by 5,000 bytes to 1,452,000 for the inline
OpenClaw model-chain editor (4,092 added bytes; total 1,450,937); retain
the existing app.js budget. Update the agent-wiring reference.

The proxy and budget tests failed before the fix. The new proxy/tilde
regressions also fail with the original production sources via Go overlay.
Targeted tests, proxy/concurrent-edit race tests, all three platform
vet/build checks and 58 Chromium/WebKit GUI checks pass in isolated homes.
The full Go suite passes agent and gui, but exposes the upstream image
cache test's fixed-count assumption (19 refits rather than 20); that
separate test-only correction follows. No live app/config was replaced.
The upstream cache test assumes ten images fit in a budget based on the
first encoded PNG. The fixtures have different compressed sizes, and Go
1.27.1 retains eleven, so turns two and three legitimately refit nineteen.
The assertion failed on every run with -race -count=20.

Check each turn refits only the entries absent from the prior cache, while
requiring a nonempty partial cache and enforcing the same byte budget.
Gateway production code and documented behavior are unchanged.

The corrected test passes -race -count=20. With a Go overlay that bypasses
cache hits it fails again: thirty refits with eleven entries retained.
Gateway vet passes on darwin, linux and windows. The final full-suite
result is recorded in PR yetone#1088.
@GodD6366
GodD6366 deployed to ui-preview October 18, 2026 17:15 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 18, 2026
@yetone

yetone commented Oct 18, 2026

Copy link
Copy Markdown
Owner

正在复查新 head b08e48fef1cf4056c3611b48813b90c87736a5a8(针对 16:47 那轮 review 的修改),合入最新 main 后跑完整测试。

@yetone

yetone commented Oct 19, 2026

Copy link
Copy Markdown
Owner

18:11 认领复查新 head b08e48fef 的会话之后没有更新,这边接手:已在 b08e48fef 合入 origin/main 的树上逐项核对上一轮的 1 到 5,定向测试已通过(TestCoreScriptBudget、TestReverseProxyIsStillMagpie、OpenClaw、install、appdir)。现在开始跑全量 Go 测试和 GUI 测试,跑完再给结论。

Merge yetone/magpie main at 5774c79
for PR yetone#1088. The only conflict was coreScriptBudget: keep upstream's
1,469,000-byte budget unchanged. The merged core is 1,451,460 bytes;
app.js is 1,261,359 bytes within its existing 1,269,000-byte budget.
Keep upstream's loadBack refresh coalescing and all OpenClaw review fixes.
No new production behavior is introduced by the manual resolution.

Verified on the exact merged tree, Go 1.27.1, macOS arm64:
- go test -tags nogui ./... -count=1 -timeout=45m -p 4: all 64 packages
  with tests passed; agent 351.754s, gateway 404.356s, GUI 72.254s.
- go vet and go build: darwin/arm64, linux/arm64 with nogui,
  windows/arm64. Go checks used temporary HOME and pinned caches.
- Playwright 1.63.0, Chromium: 33 tests passed, none failed/cancelled,
  across openclaw-models, agent-update-all and window-back-once;
  model-chain coverage includes all five languages, web/desktop,
  420px/1100px. Run sequentially after Go checks.
- gofmt -l and git diff --check clean; all 27 PR files are UTF-8 with
  no NUL bytes relative to the new upstream base.

Validation limits: WebKit could not complete on this host. Its same
loading/click-stability timeouts reproduce with standalone HTML and a
single button, outside magpie, on available bundled runtimes. Aborted
those blocked runs. An earlier concurrent Chromium run also hit the
existing update test's scroll-position assertion (30 vs 0); the complete
isolated Chromium run above passed without source or test changes.
Full GUI suite and physical Linux/Windows/WSL were not run; existing
macOS SDK/link warnings remain. No live config or installed app changed.
@GodD6366
GodD6366 deployed to ui-preview October 19, 2026 03:27 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 19, 2026
Sync upstream b9d1cd3 after the latest OpenClaw PR branch. Both merges are conflict-free and retain OpenClaw functionality. This commit is for the local build and runtime replacement.
@GodD6366
GodD6366 requested a review from yetone October 20, 2026 13:04
@GodD6366
GodD6366 deployed to ui-preview October 21, 2026 15:17 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 21, 2026

This branch was successfully deployed

1 active deployment
ui-preview — b7d50120 Deployed Oct 21, 2026 by GodD6366 via record #1198
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.

2 participants