Skip to content

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

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

GodD6366 wants to merge 44 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),按改动自动操作、截图和录屏 · e04b60e · 运行记录

改动(按代码):Agent 页新增 OpenClaw:未安装时在「安装其他 Agent」里给出官方安装脚本入口,检测到后以官方彩色图标出现在 Agent 列表,并在详情面板里提供「配置模型」——主模型与可排序、可清空的备用模型链,改动即时保存。

Note

沙盒里看不到:沙盒没有安装 OpenClaw(也没有它的配置),所以 Agent 列表中的 OpenClaw 行、它的「详情」面板与「配置模型」主模型/降级模型编辑器、上移/移除/添加降级模型、保存失败的内联错误,以及只读或 $include 配置的提示都无法展示。

播放录屏

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

安装列表里的 OpenClaw

展开后的安装入口列表

展开后的安装入口列表

Agent 列表与其余下的 Agent

展开后的 Agent 列表与未设置的 Agent

展开后的 Agent 列表与未设置的 Agent

⚠️ 有 1 步没能照计划执行
  • Agent 列表与其余下的 Agent · shot #agents .list: nothing visible matches #agents .list (0 in the page)

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

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
Match raw JSON separator escaping to the active encoding/json implementation. Keep the native toolbar on macOS 27, where toolbar and plain corners match, and sample panel focus in the same main-thread turn to avoid unrelated focus changes.

Account for the 4072-byte shared OpenClaw model editor in both core script budgets without extra headroom. Validation: production go vet and full go test with a temporary HOME and pinned Go caches passed (45m timeout); focused JSON tests passed with jsonv2 and nojsonv2; native window and core budget tests passed. Existing 52 browser regressions passed with unchanged UI assets.
Preserve upstream core script budgets and include the measured 4092-byte OpenClaw primary/fallback editor used by the Agents page and tray panel, without extra headroom. Retain the local JSON and macOS compatibility fixes.

Validation: isolated-HOME targeted OpenClaw, core script budget and raw JSON tests passed with pinned Go caches. All 40 Chromium/WebKit OpenClaw cases and four translation-key checks passed. No full suite, app rebuild, installation or remote push performed.
@GodD6366
GodD6366 deployed to ui-preview October 26, 2026 16:13 — with GitHub Actions Active
github-actions Bot added a commit that referenced this pull request Oct 26, 2026
Resolve the documentation and environment-variable conflicts while retaining OpenClaw and upstream agent integrations.\n\nValidation: git diff --check; conflict-marker scan; go test -tags nogui ./internal/agentenv -count=1 -timeout=60s.\nThe combined agent package run reached 1289 passes and one unrelated environment-dependent failure.
@GodD6366
GodD6366 deployed to ui-preview October 27, 2026 03:50 — with GitHub Actions Active
@GodD6366

Copy link
Copy Markdown
Author

@yetone 已将最新 main(2e165fe9)合入并推送,当前 head 为 e04b60e8,请方便时再复查一下 #1088。

这次解决了 docs/reference.md 和 internal/agentenv/agentenv.go 的冲突,同时保留 OpenClaw 与主线新增的 PenguinHarness 内容。已完成冲突标记检查、gofmt、git diff --check,并通过 internal/agentenv 测试(2 passed)。internal/agent 合并后测试结果为 1289 passed、1 个环境相关失败;PR 的 UI preview 当前仍在运行。

麻烦以新 head 为准确认合并状态;如还需要补充调整或验证,我会继续跟进,谢谢。

github-actions Bot added a commit that referenced this pull request Oct 27, 2026

This branch was successfully deployed

1 active deployment
ui-preview — e04b60e8 Deployed Oct 27, 2026 by GodD6366 via record #1200
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