hermes-agent/website/docs/user-guide/features
Teknium d5775fe988
feat(codex-runtime): skip unavailable plugins during migration (#25437)
Followup to PR #24182 — caught when scanning OpenClaw for recent codex
fixes we hadn't considered. OpenClaw learned the hard way (#80815) that
migrating plugins which codex itself reports as unavailable produces
config that fails at activation time.

Our /codex-runtime codex_app_server enable path queries codex's
plugin/list and migrates everything where installed=true. We were
trusting codex's installation state and ignoring its availability
field. So a plugin that's installed=true but availability=UNAVAILABLE
(broken local install) or REQUIRES_AUTH (OAuth expired or never
completed) would get an [plugins."<n>@openai-curated"] entry in
~/.codex/config.toml — and the user's first codex turn after enabling
the runtime would fail because codex refuses to activate it.

Fix: filter on availability in _query_codex_plugins(). Only emit
plugins where availability is empty (older codex versions without the
field — preserve backward compat) or explicitly AVAILABLE.

Tests:
  test_plugin_discovery_skips_unavailable_plugins — verifies 4 cases:
    - good-plugin (installed=True, availability=AVAILABLE) → migrated
    - broken-plugin (installed=True, availability=UNAVAILABLE) → skipped
    - auth-pending (installed=True, availability=REQUIRES_AUTH) → skipped
    - legacy-plugin (installed=True, no availability field) → migrated
      (older codex versions; preserve backward compat)

Docs:
  Added bullet to 'What's NOT migrated' list in the docs page calling
  out the availability filter and why.

Other OpenClaw codex PRs I reviewed but did NOT apply (with reasoning):
  - #81591 (load Codex for selectable models): we resolve runtime
    per-call already, no startup-time gating to fix
  - #81510 (cron compatibility): we documented cron as untested; their
    fix is for OpenClaw-specific cron orchestration shape
  - #81223 (rotate incompatible context-engine threads): we don't
    have a Lossless context engine equivalent
  - #80688 (constrain sandbox): we don't have an outer-sandbox concept
  - #80616 (release on turn_aborted): we already handle status=
    interrupted in turn/completed correctly
  - #80278 (expose activeModel in plugin SDK): not our surface
  - #80792 (default destructive_actions on): we don't expose that knob

56 codex-runtime migration tests still green (+1 new).
2026-05-13 22:20:27 -07:00
..
_category_.json feat: add documentation website (Docusaurus) 2026-03-05 05:24:55 -08:00
acp.md docs: update VS Code setup instructions for ACP Client integration 2026-05-05 14:16:30 -07:00
api-server.md docs: deep audit — fix stale config keys, missing commands, and registry drift (#22784) 2026-05-09 13:19:51 -07:00
batch-processing.md fix: normalize remaining reasoning effort orderings and add missing 'minimal' 2026-04-09 14:20:16 -07:00
browser.md docs(camofox): expand externally-managed sessions section (#24584) 2026-05-12 15:20:42 -07:00
built-in-plugins.md feat(plugins): run any LLM call from inside a plugin via ctx.llm (#23194) 2026-05-10 07:09:28 -07:00
code-execution.md docs(execute_code): document project/strict execution modes (#12073) 2026-04-18 01:53:09 -07:00
codex-app-server-runtime.md feat(codex-runtime): skip unavailable plugins during migration (#25437) 2026-05-13 22:20:27 -07:00
computer-use.md feat(computer-use): refresh cua-driver on hermes update + add install --upgrade (#24063) 2026-05-11 17:10:58 -07:00
context-files.md feat: progressive subdirectory hint discovery (#5291) 2026-04-05 12:33:47 -07:00
context-references.md docs: comprehensive documentation audit — fix stale info, expand thin pages, add depth (#5393) 2026-04-05 19:45:50 -07:00
credential-pools.md docs(anthropic): correct OAuth scope to Max plan + extra usage credits only (#17404) 2026-04-29 04:11:14 -07:00
cron.md feat(cron): routing intent — deliver=all fans out to every connected channel (#21495) 2026-05-08 04:17:21 -07:00
curator.md docs(curator): update CLI docs for synchronous-by-default manual run 2026-05-07 05:27:47 -07:00
delegation.md docs: two-week gap sweep — platforms, CLI, config, TUI, hooks, providers (#17727) 2026-04-29 20:32:37 -07:00
extending-the-dashboard.md feat(plugins): run any LLM call from inside a plugin via ctx.llm (#23194) 2026-05-10 07:09:28 -07:00
fallback-providers.md docs: deep audit — fix stale config keys, missing commands, and registry drift (#22784) 2026-05-09 13:19:51 -07:00
goals.md makes the Persistent Goals docs accessible in the docs nav (and llms.txt) (#18481) 2026-05-01 10:29:22 -07:00
honcho.md docs: deep audit — fix stale config keys, missing commands, and registry drift (#22784) 2026-05-09 13:19:51 -07:00
hooks.md test+docs: cover transform_llm_output hook + release author map 2026-05-07 05:46:05 -07:00
image-generation.md feat(image-gen): add GPT Image 2 to FAL catalog (#13677) 2026-04-21 13:35:31 -07:00
kanban-tutorial.md feat(kanban): add orchestrator board tools 2026-05-10 05:58:44 -07:00
kanban-worker-lanes.md feat(kanban): stranded_in_ready diagnostic for unclaimed tasks (#23578) 2026-05-10 21:58:44 -07:00
kanban.md refactor(kanban-orchestrator): drop hardcoded specialist roster, add Step-0 profile discovery 2026-05-10 12:59:11 -07:00
lsp.md docs(lsp): document follow-up fixes from #24630 (#24709) 2026-05-12 18:44:33 -07:00
mcp.md docs: deep quality pass — expand 10 thin pages, fix specific issues (#4134) 2026-03-30 20:30:11 -07:00
memory-providers.md docs: deep audit — fix stale config keys, missing commands, and registry drift (#22784) 2026-05-09 13:19:51 -07:00
memory.md docs: add Supermemory to memory providers docs, env vars, CLI reference 2026-04-06 22:15:58 -07:00
overview.md feat(tts): add Piper as a native local TTS provider (closes #8508) (#17885) 2026-04-30 02:53:20 -07:00
personality.md docs: document SOUL.md as primary agent identity (#1927) 2026-03-18 04:18:08 -07:00
plugins.md feat(video_gen): unified video_generate tool with pluggable provider backends (#25126) 2026-05-13 16:39:41 -07:00
provider-routing.md docs: fallback providers + /background command documentation 2026-03-15 06:24:28 -07:00
rl-training.md fix(docs): Add links to Atropos and wandb in user guide 2026-04-23 03:07:06 -07:00
skills.md docs(plugins): close the gaps \u2014 image-gen-provider-plugin guide + publishing a skill tap (#20800) 2026-05-06 08:40:05 -07:00
skins.md fix(tui): honor skin highlight colors (#20895) 2026-05-06 14:01:56 -07:00
spotify.md feat(spotify): wire setup wizard into 'hermes tools' + document cron usage (#15180) 2026-04-24 07:24:28 -07:00
tool-gateway.md docs(tool-gateway): rewrite as pitch-first marketing page (#20827) 2026-05-06 13:20:09 -07:00
tools.md docs: clarify that the Docker terminal backend is a single persistent container (#20003) 2026-05-04 20:09:31 -07:00
tts.md docs(voice): add Doubao speech integration examples (TTS + STT) 2026-05-05 13:54:33 -07:00
vision.md docs: two-week gap sweep — platforms, CLI, config, TUI, hooks, providers (#17727) 2026-04-29 20:32:37 -07:00
voice-mode.md docs(discord): fix Server Members Intent + SSRC-mapping drift; add /voice join slash Choice 2026-05-05 13:50:43 -07:00
web-dashboard.md feat(windows): close native-Windows install gaps — crash-free startup, UTF-8 stdio, tzdata dep, docs 2026-05-08 14:27:40 -07:00
web-search.md docs(web-search): explain auxiliary-model summarization for web_extract (#23211) 2026-05-10 06:40:23 -07:00