fix: use managed codex binary for source migration (#81582) · openclaw/openclaw@3fd64a2
fuller-stack
·
2026-05-14
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -361,10 +361,16 @@ focused channel/runtime subpaths, `config-contracts`, `string-coerce-runtime`,
|
361 | 361 | </Accordion> |
362 | 362 | |
363 | 363 | <Accordion title="Reserved bundled-helper subpaths"> |
364 | | -There are currently no reserved bundled-helper SDK subpaths. Owner-specific |
365 | | -helpers live inside the owning plugin package, while reusable host contracts |
366 | | -use generic SDK subpaths such as `plugin-sdk/gateway-runtime`, |
367 | | -`plugin-sdk/security-runtime`, and `plugin-sdk/plugin-config-runtime`. |
| 364 | +These private compatibility surfaces are reserved for their owning bundled |
| 365 | +plugin. New reusable host contracts should use generic SDK subpaths such as |
| 366 | +`plugin-sdk/gateway-runtime`, `plugin-sdk/security-runtime`, and |
| 367 | +`plugin-sdk/plugin-config-runtime`. |
| 368 | + |
| 369 | +| Subpath | Key exports | |
| 370 | +| --- | --- | |
| 371 | +| `plugin-sdk/codex-mcp-projection` | Codex-owned user MCP server projection helper for the bundled Codex app-server harness | |
| 372 | +| `plugin-sdk/codex-native-task-runtime` | Codex-owned detached task runtime helpers for native subagent mirroring | |
| 373 | + |
368 | 374 | </Accordion> |
369 | 375 | </AccordionGroup> |
370 | 376 | |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -441,6 +441,9 @@ export async function buildCodexMigrationPlan(
|
441 | 441 | "Codex app-backed plugins were planned without source app accessibility verification. Re-run with --verify-plugin-apps to force a fresh source app/list check before planning native plugin activation.", |
442 | 442 | ] |
443 | 443 | : []), |
| 444 | + ...(source.plugins.some((plugin) => plugin.sourceKind === "cache") |
| 445 | + ? ["Codex cached plugin bundles remain manual-review only."] |
| 446 | + : []), |
444 | 447 | ...(source.pluginDiscoveryError |
445 | 448 | ? [ |
446 | 449 | `Codex app-server plugin inventory discovery failed: ${source.pluginDiscoveryError}. Cached plugin bundles, if any, are advisory only.`, |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -140,7 +140,7 @@ function sourceAppCacheKey(fixture: { codexHome: string }): string {
|
140 | 140 | start: { |
141 | 141 | transport: "stdio", |
142 | 142 | command: "codex", |
143 | | -commandSource: "config", |
| 143 | +commandSource: "managed", |
144 | 144 | args: ["app-server", "--listen", "stdio://"], |
145 | 145 | headers: {}, |
146 | 146 | env: { |
@@ -242,6 +242,14 @@ describe("buildCodexMigrationProvider", () => {
|
242 | 242 | method: "plugin/list", |
243 | 243 | requestParams: { cwds: [] }, |
244 | 244 | }); |
| 245 | +expectRecordFields((mockCallArg(appServerRequest) as { startOptions?: unknown }).startOptions, { |
| 246 | +command: "codex", |
| 247 | +commandSource: "managed", |
| 248 | +env: { |
| 249 | +CODEX_HOME: fixture.codexHome, |
| 250 | +HOME: path.dirname(fixture.codexHome), |
| 251 | +}, |
| 252 | +}); |
245 | 253 | expect( |
246 | 254 | appServerRequest.mock.calls.some( |
247 | 255 | ([arg]) => (arg as { method?: string }).method === "plugin/install", |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -245,7 +245,7 @@ function sourceCodexAppServerStartOptions(codexHome: string): CodexAppServerStar
|
245 | 245 | return { |
246 | 246 | transport: "stdio", |
247 | 247 | command: "codex", |
248 | | -commandSource: "config", |
| 248 | +commandSource: "managed", |
249 | 249 | args: ["app-server", "--listen", "stdio://"], |
250 | 250 | headers: {}, |
251 | 251 | env: { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。