openclaw/extensions
Sarah Fortune 48529f1a96
feat(onboard): offer codex migration after harness install (#81192)
Add a post-install seam so the wizard can prompt the user to import their
existing Codex CLI state (skills, archived config/hooks, advisory cached
plugins) through the existing `openclaw migrate codex` flow once the
harness plugin is in place. Fires on both fresh installs and repair runs;
the user can decline at any time.

Trigger sites, both routing through one helper:

- src/plugins/provider-auth-choice.ts: after
  `ensureCodexRuntimePluginForModelSelection` reports `installed: true`,
  dynamically import `offerPostInstallMigrations` and call it before the
  wizard moves on.
- src/commands/onboard-non-interactive/local/auth-choice.plugin-providers.ts:
  same call shape with `nonInteractive: true`, so the helper emits a hint
  line only and never mutates state.

Helper (src/wizard/setup.post-install-migration.ts) is generic, not
Codex-hardcoded — it resolves migration providers via the manifest
`migrationProviders` contract, filters to providers owned by plugins the
caller flags as installed in this onboarding step, runs `provider.detect`,
and on TTY hands accepted runs to `migrateDefaultCommand`. All detect,
prompt, and migrate failures are swallowed so onboarding never aborts on
this optional offer.

Also harden the Codex app-server subprocess lifecycle now that `detect()`
runs from a hotter onboarding path: isolate the plugin-install
`plugin/read` call (extensions/codex/src/migration/apply.ts) and have the
isolated request wait for child exit with a SIGKILL fallback
(extensions/codex/src/app-server/request.ts) so parents are not held open
by an orphaned codex binary.

Tests:

- src/wizard/setup.post-install-migration.test.ts (new, 10 cases)
- src/commands/onboard-non-interactive/local/auth-choice.plugin-providers.test.ts
  extended with hint-call assertions and a not-required-no-offer case.
2026-05-12 16:51:27 -07:00
..
acpx build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
active-memory test: fasten active memory log lines 2026-05-12 21:40:48 +01:00
alibaba chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
amazon-bedrock chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
amazon-bedrock-mantle test: dedupe bedrock mantle stream mock calls 2026-05-12 14:26:38 +01:00
anthropic chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
anthropic-vertex test: dedupe anthropic vertex stream mock calls 2026-05-12 14:50:30 +01:00
arcee chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
azure-speech test: guard extension app mock calls 2026-05-12 11:07:04 +01:00
bonjour test: advertise bonjour warning checks 2026-05-12 21:26:42 +01:00
brave test: dedupe brave fetch mock calls 2026-05-12 12:45:31 +01:00
browser test: shutter browser tab cleanup urls 2026-05-12 21:47:37 +01:00
byteplus chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
canvas build(canvas): stop tracking a2ui bundle hash (#81141) 2026-05-12 13:23:12 -07:00
cerebras chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
chutes chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
clickclack test: guard extension app mock calls 2026-05-12 11:07:04 +01:00
cloudflare-ai-gateway chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
codex feat(onboard): offer codex migration after harness install (#81192) 2026-05-12 16:51:27 -07:00
comfy chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
copilot-proxy chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
deepgram chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
deepinfra chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
deepseek chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
device-pair test: guard extension one-hit mock calls 2026-05-12 10:00:29 +01:00
diagnostics-otel test: dedupe diagnostics otel mock calls 2026-05-12 17:25:57 +01:00
diagnostics-prometheus chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
diffs test: dedupe diffs browser mock reads 2026-05-12 20:47:25 +01:00
discord test: erase discord progress labels 2026-05-12 21:46:17 +01:00
document-extract build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
duckduckgo chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
elevenlabs chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
exa chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
fal chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
feishu test: caption feishu streaming updates 2026-05-12 21:35:36 +01:00
file-transfer chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
firecrawl chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
fireworks chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
github-copilot test: guard extension provider mock calls 2026-05-12 11:11:04 +01:00
google test: tag provider unit assertions 2026-05-12 21:42:48 +01:00
google-meet test: clamp googlemeet cli registrations 2026-05-12 20:09:38 +01:00
googlechat test: deny googlechat body reads 2026-05-12 21:28:20 +01:00
gradium test: dedupe gradium speech fetch reads 2026-05-12 20:57:38 +01:00
groq chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
huggingface chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
image-generation-core chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
imessage test: guard extension provider mock calls 2026-05-12 11:11:04 +01:00
inworld chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
irc test: guard extension provider mock calls 2026-05-12 10:04:45 +01:00
kilocode chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
kimi-coding chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
line test: dedupe line webhook payload reads 2026-05-12 20:59:10 +01:00
litellm test: guard extension provider mock calls 2026-05-12 10:04:45 +01:00
llm-task test: guard extension provider mock calls 2026-05-12 11:11:04 +01:00
lmstudio test: dedupe lmstudio setup mock reads 2026-05-12 21:00:54 +01:00
lobster build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
matrix test: weave matrix message assertions 2026-05-12 21:49:38 +01:00
mattermost test: dedupe mattermost slash log reads 2026-05-12 21:07:04 +01:00
media-understanding-core build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
memory-core fix(memory-core): prevent staged dream candidates from leaking into MEMORY.md (#68774) 2026-05-12 14:07:43 -07:00
memory-lancedb test: ground memory lancedb hook checks 2026-05-12 21:21:01 +01:00
memory-wiki test: score memory wiki lint codes 2026-05-12 21:28:56 +01:00
microsoft build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
microsoft-foundry chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
migrate-claude chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
migrate-hermes test: stipulate hermes migration warnings 2026-05-12 21:15:01 +01:00
minimax test: dedupe minimax speech mock calls 2026-05-12 15:55:38 +01:00
mistral chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
moonshot chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
msteams test: dodge msteams graph shares 2026-05-12 21:32:50 +01:00
nextcloud-talk test: guard mixed extension mock calls 2026-05-12 10:10:52 +01:00
nostr test: dedupe nostr inbound mock calls 2026-05-12 15:53:31 +01:00
nvidia chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
oc-path build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
ollama test: screen ollama setup request probes 2026-05-12 21:34:42 +01:00
open-prose chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
openai test: tag provider unit assertions 2026-05-12 21:42:48 +01:00
opencode chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
opencode-go chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
openrouter test: dedupe openrouter media mock reads 2026-05-12 20:26:40 +01:00
openshell build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
perplexity chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
phone-control refactor: reduce plugin sdk surface 2026-05-10 12:37:10 +01:00
qa-channel test: dedupe qa channel inbound mock reads 2026-05-12 21:11:05 +01:00
qa-lab test: dedupe qa lab live gateway mock reads 2026-05-12 22:53:58 +01:00
qa-matrix test: dedupe qa matrix mock calls 2026-05-12 17:44:26 +01:00
qianfan chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
qqbot test: dedupe qqbot websocket mock calls 2026-05-12 15:46:33 +01:00
qwen test: guard extension messaging mock calls 2026-05-12 11:15:37 +01:00
runway chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
searxng chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
senseaudio chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
sglang chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
signal test: squelch signal client logs 2026-05-12 21:52:38 +01:00
skill-workshop test: tag provider unit assertions 2026-05-12 21:42:48 +01:00
slack test: offer slack monitor text 2026-05-12 21:50:13 +01:00
speech-core test: dedupe speech tts mock calls 2026-05-12 15:40:41 +01:00
stepfun chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
synology-chat test: joiner synology warning checks 2026-05-12 21:25:03 +01:00
synthetic chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
talk-voice refactor: reduce plugin sdk surface 2026-05-10 12:37:10 +01:00
tavily test: guard extension messaging mock calls 2026-05-12 11:15:37 +01:00
telegram test: reserve telegram fallback assertions 2026-05-12 21:37:25 +01:00
tencent chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
test-support build: refresh deps and route testbox through crabbox 2026-05-11 03:41:00 +01:00
thread-ownership test: guard thread ownership mock calls 2026-05-12 00:23:11 +01:00
tlon test: dedupe tlon guarded fetch calls 2026-05-12 14:04:38 +01:00
together chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
tokenjuice test: guard messaging extension mock calls 2026-05-12 10:16:36 +01:00
tts-local-cli chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
twitch build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
venice chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
vercel-ai-gateway chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
video-generation-core chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
vllm test: guard messaging extension mock calls 2026-05-12 10:16:36 +01:00
voice-call test: tag provider unit assertions 2026-05-12 21:42:48 +01:00
volcengine chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
voyage chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
vydra test: dedupe vydra fetch mock calls 2026-05-12 15:26:51 +01:00
web-readability build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
webhooks build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
whatsapp test: steady whatsapp status assertions 2026-05-12 21:38:32 +01:00
xai build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
xiaomi test: guard messaging extension mock calls 2026-05-12 10:16:36 +01:00
zai test: sequence zai model ids 2026-05-12 19:09:31 +01:00
zalo test: guard messaging extension mock calls 2026-05-12 10:16:36 +01:00
zalouser test: dedupe zalo group gating mock calls 2026-05-12 13:14:08 +01:00
.npmignore
AGENTS.md
CLAUDE.md
music-generation-providers.live.test.ts refactor: reduce plugin sdk surface 2026-05-10 12:37:10 +01:00
tsconfig.package-boundary.base.json
tsconfig.package-boundary.paths.json
video-generation-providers.live.test.ts refactor: reduce plugin sdk surface 2026-05-10 12:37:10 +01:00