Open-source personal AI assistant
Complete changelog with every version since the first release.
May 24, 2026
👍 (Like tapback) resolves an approval as allow-once and 👎 resolves as deny, with the explicit-approver allowlist read from channels.imessage.allowFrom; allow-always stays on the manual /approve <id> allow-always text fallback. Mirrors the WhatsApp behavior from #85477.USER.md/SOUL.md files.agents.defaults.imageQuality preference for choosing token-efficient, balanced, or high-detail media handling.openclaw meeting-notes CLI access, and Discord voice as the first live source.configPath, Telegram wildcard topic defaults, local-time backup archive names, Termux home fallback, include-path validation, secret-scanner-safe placeholder guidance, Gemini CLI/Antigravity media guidance, and macOS VM auto-login guidance. Thanks @NorseGaud, @yudistiraashadi, @huangqian8, @VibhorGautam, @maweibin, @tianxingleo, @IgnacioPro, and @xzcxzcyy-claw.May 24, 2026
USER.md/SOUL.md files.agents.defaults.imageQuality preference for choosing token-efficient, balanced, or high-detail media handling.openclaw meeting-notes CLI access, and Discord voice as the first live source.configPath, Telegram wildcard topic defaults, local-time backup archive names, Termux home fallback, include-path validation, secret-scanner-safe placeholder guidance, Gemini CLI/Antigravity media guidance, and macOS VM auto-login guidance. Thanks @NorseGaud, @yudistiraashadi, @huangqian8, @VibhorGautam, @maweibin, @tianxingleo, @IgnacioPro, and @xzcxzcyy-claw.May 24, 2026
openclaw meeting-notes CLI access, and Discord voice as the first live source.configPath, Telegram wildcard topic defaults, local-time backup archive names, Termux home fallback, include-path validation, secret-scanner-safe placeholder guidance, Gemini CLI/Antigravity media guidance, and macOS VM auto-login guidance. Thanks @NorseGaud, @yudistiraashadi, @huangqian8, @VibhorGautam, @maweibin, @tianxingleo, @IgnacioPro, and @xzcxzcyy-claw.May 23, 2026
AGENTS.md and TOOLS.md, keeping persona, identity, user, memory, heartbeat, and setup files out of delegated workers by default. (#85283) Thanks @100yenadmin.openclaw-landable-bug-sweep so bugbash sweeps stay focused on small paper-cut fixes.docker and blacksmith. (#85302) Thanks @hxy91819.openclaw-landable-bug-sweep for producing five small, reviewed, CI-green OpenClaw bugfix PRs from issue/PR sweeps.May 21, 2026
cat SKILL.md && printf ... && <skill-wrapper> allowlist compatibility path so skill files must be loaded with the read tool and only the real skill executable is auto-allowed.IDENTITY.md, USER.md, and SOUL.md profile context in realtime voice session instructions by default, with voice.realtime.bootstrapContextFiles: [] available to disable it. (#84499) Thanks @fuller-stack-dev.@openai/codex 0.132.0 and refresh the app-server model-list docs for the new catalog.agents.list[].experimental.localModelLean so lean local-model mode can be enabled for one configured agent instead of globally.params.provider routing policy for OpenRouter requests, with model and agent params overriding the defaults. Thanks @amknight.openclaw tasks maintenance --json so retained and reconcile candidates explain backing-session, cron, CLI, and wedged-subagent state. (#84691) Thanks @efpiva.durationSeconds control and remove prompt-injected duration hints, so music_generate reports MiniMax duration as an unsupported override instead of suggesting MiniMax can enforce track length. Fixes #84508. Thanks @neeravmakwana.7.0.0-rc12.rolldown-plugin-dts:fake-js CommonJS dts warnings emitted while bundling the intentionally-inlined zod/v4/locales/*.d.cts files, so pnpm build output stays readable after the 0.25.1 plugin bump. Thanks @romneyda.openclaw nodes commands so stdout stays parseable. (#84684) Thanks @TurboTheTurtle.May 21, 2026
cat SKILL.md && printf ... && <skill-wrapper> allowlist compatibility path so skill files must be loaded with the read tool and only the real skill executable is auto-allowed.IDENTITY.md, USER.md, and SOUL.md profile context in realtime voice session instructions by default, with voice.realtime.bootstrapContextFiles: [] available to disable it. (#84499) Thanks @fuller-stack-dev.@openai/codex 0.132.0 and refresh the app-server model-list docs for the new catalog.agents.list[].experimental.localModelLean so lean local-model mode can be enabled for one configured agent instead of globally.params.provider routing policy for OpenRouter requests, with model and agent params overriding the defaults. Thanks @amknight.openclaw tasks maintenance --json so retained and reconcile candidates explain backing-session, cron, CLI, and wedged-subagent state. (#84691) Thanks @efpiva.durationSeconds control and remove prompt-injected duration hints, so music_generate reports MiniMax duration as an unsupported override instead of suggesting MiniMax can enforce track length. Fixes #84508. Thanks @neeravmakwana.7.0.0-rc12.rolldown-plugin-dts:fake-js CommonJS dts warnings emitted while bundling the intentionally-inlined zod/v4/locales/*.d.cts files, so pnpm build output stays readable after the 0.25.1 plugin bump. Thanks @romneyda.openclaw nodes commands so stdout stays parseable. (#84684) Thanks @TurboTheTurtle.May 21, 2026
IDENTITY.md, USER.md, and SOUL.md profile context in realtime voice session instructions by default, with voice.realtime.bootstrapContextFiles: [] available to disable it. (#84499) Thanks @fuller-stack-dev.@openai/codex 0.132.0 and refresh the app-server model-list docs for the new catalog.agents.list[].experimental.localModelLean so lean local-model mode can be enabled for one configured agent instead of globally.params.provider routing policy for OpenRouter requests, with model and agent params overriding the defaults. Thanks @amknight.7.0.0-rc12.@openclaw/fs-safe to 0.2.7 so OpenClaw's default Python-helper-off policy keeps best-effort Node write fallbacks for private stores, secret writes, run logs, and media attachments on Linux/macOS.models.providers.*.models[*].compat.thinkingFormat values during doctor --fix so stale provider model config can validate after upgrade. Fixes #77803.agents.defaults.model.primary.May 20, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.openclaw skills install and openclaw skills update to target shared managed skills with --global. (#74466) Thanks @Marvae.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.openclaw browser evaluate --timeout-ms so long-running page functions can extend both the evaluate action and request timeout budgets. (#83447) Thanks @eefreenyc.May 19, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.openclaw skills install and openclaw skills update to target shared managed skills with --global. (#74466) Thanks @Marvae.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.openclaw browser evaluate --timeout-ms so long-running page functions can extend both the evaluate action and request timeout budgets. (#83447) Thanks @eefreenyc.May 20, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.openclaw skills install and openclaw skills update to target shared managed skills with --global. (#74466) Thanks @Marvae.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.openclaw browser evaluate --timeout-ms so long-running page functions can extend both the evaluate action and request timeout budgets. (#83447) Thanks @eefreenyc.May 18, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.openclaw skills install and openclaw skills update to target shared managed skills with --global. (#74466) Thanks @Marvae.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.openclaw browser evaluate --timeout-ms so long-running page functions can extend both the evaluate action and request timeout budgets. (#83447) Thanks @eefreenyc.May 18, 2026
/stop and /btw handling, progress drafts, final reply recovery, and Discord progress/final-message delivery were tightened.@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev.May 18, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.defineToolPlugin plus openclaw plugins build, validate, and init for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories.May 18, 2026
@openclaw/proxyline to 0.3.3.OPENCLAW_IMAGE_APT_PACKAGES as the runtime-neutral image build arg for extra apt packages while keeping OPENCLAW_DOCKER_APT_PACKAGES as a legacy fallback. (#62431) Thanks @urtabajev./readyz sidecar gating. (#83301) Thanks @samzong.autoreview while preserving the Codex-first fallback behavior.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.defineToolPlugin plus openclaw plugins build, validate, and init for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories.obsidian CLI and require its registered binary instead of the third-party obsidian-cli.May 18, 2026
autoreview while preserving the Codex-first fallback behavior.blockedByDialog when an action opens a modal, and allow browser dialog --dialog-id to answer pending dialogs.defineToolPlugin plus openclaw plugins build, validate, and init for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories.obsidian CLI and require its registered binary instead of the third-party obsidian-cli.interactive/Slack directive producer APIs as deprecated.proxy.tls.caFile CA trust for proxy endpoint TLS. (#79171) Thanks @jesse-merhi.openclaw qa suite --runtime-parity-tier and wire the standard Codex-vs-Pi tier into release checks separately from optional/live-only/soak lanes. Fixes #80337. Thanks @100yenadmin.May 17, 2026
autoreview while preserving the Codex-first fallback behavior.defineToolPlugin plus openclaw plugins build, validate, and init for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories.obsidian CLI and require its registered binary instead of the third-party obsidian-cli.interactive/Slack directive producer APIs as deprecated.proxy.tls.caFile CA trust for proxy endpoint TLS. (#79171) Thanks @jesse-merhi.openclaw qa suite --runtime-parity-tier and wire the standard Codex-vs-Pi tier into release checks separately from optional/live-only/soak lanes. Fixes #80337. Thanks @100yenadmin.May 17, 2026
security.audit.suppressions for intentionally accepted audit findings, keeping suppressed matches out of the active summary while preserving them in JSON output with an active suppression notice. (#76949) Thanks @100menotu001.music_generate tool, including fal MiniMax/ACE/Stable Audio endpoints and OpenRouter Lyria audio output.openclaw-mac configure-remote, skips onboarding when config is already complete, supports direct LAN/Tailnet gateway URLs, allows private same-origin Control UI loads, and owns the SSH tunnel process when SSH is selected.xai/* models and xAI media/tool providers authenticate without XAI_API_KEY.openclaw cron run --wait with timeout and poll interval controls, plus exact cron.runs --run-id filtering so automation can block on one queued manual run. (#81929) Thanks @ificator.resolvedSkills across warm gateway turns while keying reuse by the redacted effective config, reducing redundant skill snapshot rebuilds without crossing config-gated skill boundaries. (#81451) Thanks @solodmd.messages.groupChat.unmentionedInbound: "room_event", so always-on unmentioned room chatter can run as quiet context and speak visibly only via the message tool. (#81317) Thanks @obviyus.image_generate through the shared async media-generation task lifecycle in session-backed chats, with task status, duplicate guarding, and message-tool completion delivery matching music/video.May 16, 2026
xai/* models and xAI media/tool providers authenticate without XAI_API_KEY.openclaw cron run --wait with timeout and poll interval controls, plus exact cron.runs --run-id filtering so automation can block on one queued manual run. (#81929) Thanks @ificator.resolvedSkills across warm gateway turns while keying reuse by the redacted effective config, reducing redundant skill snapshot rebuilds without crossing config-gated skill boundaries. (#81451) Thanks @solodmd.messages.groupChat.ambientTurns: "room_event" handling so always-on ambient chatter can run as quiet room context and speak visibly only via the message tool. (#81317) Thanks @obviyus.resolveSessionTarget channel hook so scheduled announcements resolve consistently against the same Telegram session conversation registry as inbound turns. Fixes #81229. Thanks @giodl73-repo.identify retries to the originating socket generation so retries triggered after a reconnect do not identify against a fresh socket. Fixes #82225. Thanks @giodl73-repo.agents.defaults edits. Fixes #82237. Thanks @giodl73-repo.May 16, 2026
xai/* models and xAI media/tool providers authenticate without XAI_API_KEY.openclaw cron run --wait with timeout and poll interval controls, plus exact cron.runs --run-id filtering so automation can block on one queued manual run. (#81929) Thanks @ificator.resolvedSkills across warm gateway turns while keying reuse by the redacted effective config, reducing redundant skill snapshot rebuilds without crossing config-gated skill boundaries. (#81451) Thanks @solodmd.messages.groupChat.ambientTurns: "room_event" handling so always-on ambient chatter can run as quiet room context and speak visibly only via the message tool. (#81317) Thanks @obviyus.gog serve after the Gateway is closing. Thanks @frankekn.tools/call AbortSignal through createPluginToolsMcpHandlers().callTool into plugin tool.execute, so host cancellation actually cancels in-flight plugin tool calls instead of letting them run to completion. Fixes #82424. (#82443) Thanks @joshavant.groupAllowFrom for channel schemas that reject it, so package-swap doctor repairs do not fail on externalized Slack configs./stop@bot messages onto the control lane without cached bot metadata and match gateway stop requests across raw/canonical session aliases. (#82298) Thanks @VACInc.May 16, 2026
resolvedSkills across warm gateway turns while keying reuse by the redacted effective config, reducing redundant skill snapshot rebuilds without crossing config-gated skill boundaries. (#81451) Thanks @solodmd.messages.groupChat.ambientTurns: "room_event" handling so always-on ambient chatter can run as quiet room context and speak visibly only via the message tool. (#81317) Thanks @obviyus.npm start, package script checks, sharded lint locking, Vitest root project coverage, and plugin-SDK declaration build cache metadata so release/package validation does not silently skip or ship stale surfaces.mcp.servers.<name>.codex.agents list and accept codex.defaultToolsApprovalMode (auto/prompt/approve) for native Codex approval defaults; OpenClaw strips the codex block before handing mcp_servers config to Codex. (#82180) Thanks @sercada.input_tokens - cached_tokens at zero and reconstruct totalTokens from input + output + cached components so Responses-API streams report consistent usage when providers under-report input_tokens relative to cached_tokens.package.json openclaw.extensions metadata during install, discovery, and post-update payload smoke instead of silently dropping invalid entries.input_file bytes before trusting declared MIME headers, rejecting spoofed image or zip payloads before they become agent-visible text.manifest.json instead of letting wrong-shaped session rows crash support bundle export.allowFrom entries into explicit groupAllowFrom allowlists during openclaw doctor --fix, preserving current group access without adding runtime fallback-transition flags.May 15, 2026
contextInjection, bootstrapMaxChars, and bootstrapTotalMaxChars, inheriting from agents.defaults when omitted. Fixes #69966. Thanks @BunsDev.@openclaw/proxyline and drop root proxy-agent, https-proxy-agent, and minimatch dependencies.pnpm ui:i18n:report baseline report for hardcoded-copy focus areas and locale fallback metadata. (#81320) Thanks @samzong.codex-review skill for Codex closeout reviews, including local dirty-work and PR-branch review helpers that rerun until no accepted/actionable findings remain and avoid unsupported inline prompts with --base.codex-cli backend and repair legacy codex-cli/* model refs to the Codex app-server route on openai/*.contextTokenBudget plus source/reference metadata on llm_output and sanitized model_call_* hook events/contexts so plugin cost and context-health alerts can use agent-level context caps. Fixes #64327. Thanks @BunsDev.StatusReactionController into WhatsApp message turns (queued → thinking → tool → done/error lifecycle, on par with Telegram and Discord), add deploy/build/concierge emoji categories with tool-token routing, and replace the status reaction defaults with self-explanatory emoji (🧠 thinking, 🛠️ tool, 💻 coding, 🌐 web, ⏳ stallSoft, ⚠️ stallHard, ✅ done, ❌ error, 🗜️ compacting) so stall and lifecycle reactions read as status indicators instead of emotional commentary. Fixes #59077. (#80612) Thanks @gado-ships-it.May 14, 2026
@openclaw/proxyline and drop root proxy-agent, https-proxy-agent, and minimatch dependencies.pnpm ui:i18n:report baseline report for hardcoded-copy focus areas and locale fallback metadata. (#81320) Thanks @samzong.codex-review skill for Codex closeout reviews, including local dirty-work and PR-branch review helpers that rerun until no accepted/actionable findings remain and avoid unsupported inline prompts with --base.codex-cli backend and repair legacy codex-cli/* model refs to the Codex app-server route on openai/*.StatusReactionController into WhatsApp message turns (queued → thinking → tool → done/error lifecycle, on par with Telegram and Discord), add deploy/build/concierge emoji categories with tool-token routing, and replace the status reaction defaults with self-explanatory emoji (🧠 thinking, 🛠️ tool, 💻 coding, 🌐 web, ⏳ stallSoft, ⚠️ stallHard, ✅ done, ❌ error, 🗜️ compacting) so stall and lifecycle reactions read as status indicators instead of emotional commentary. Fixes #59077. (#80612) Thanks @gado-ships-it.web_app buttons in generic message presentation payloads, allowing openclaw message send --presentation to render Telegram Web App inline buttons for private chats. (#81356) Thanks @jzakirov.OPENCLAW_HEAVY_CHECK_LOCK_SCOPE=worktree so high-capacity local worktrees can use independent heavy-check locks while shared locks remain the default. Fixes #80729. (#80734) Thanks @samzong.May 14, 2026
acp.fallbacks so ACP turns can try configured backup runtime backends when the primary backend is unavailable before any output is emitted. (#69542) Thanks @kaseonedge.message at runtime, keeping update and doctor output aligned with the OpenAI happy path. Thanks @pashpashpash.@tencent-weixin/openclaw-weixin@2.4.3 with the matching package integrity. (#81730) Thanks @scotthuang.agents.defaults.subagents.model before target agent primary models during sessions_spawn, so model-scoped runtimes such as claude-cli stay attached to default child runs. Fixes #81395. (#81783) Thanks @joshavant.May 14, 2026
acp.fallbacks so ACP turns can try configured backup runtime backends when the primary backend is unavailable before any output is emitted. (#69542) Thanks @kaseonedge.agents.defaults.subagents.model before target agent primary models during sessions_spawn, so model-scoped runtimes such as claude-cli stay attached to default child runs. Fixes #81395. (#81783) Thanks @joshavant.requireMention is active, avoiding failed media-download replies for messages that should be ignored. Fixes #81181. (#81785) Thanks @joshavant.USERPROFILE in the sandbox blocked home roots so credential-bearing binds (such as .codex, .openclaw, or .ssh under the Windows user profile) are denied even when HOME points at a different shell home. (#63074) Thanks @luoyanglang.^[A-Z_][A-Z0-9_]*$ strings, and resolve config-backed provider apiKey values only through structured env SecretRefs (secrets.providers[id] / secrets.defaults), so unrelated env vars cannot accidentally become provider credentials. Thanks @sallyom.--openai-api-key) through the onboarding wizard so they reach provider auth methods via ctx.opts, letting --openai-api-key "$OPENAI_API_KEY" skip the redundant "use existing env var?" prompt in non-interactive harnesses. (#81669) Thanks @sjf.REASON_CODE_MESSAGES strings so plan/result rows read as labels instead of sentence fragments. (#81705) Thanks @sjf.May 14, 2026
acp.fallbacks so ACP turns can try configured backup runtime backends when the primary backend is unavailable before any output is emitted. (#69542) Thanks @kaseonedge.USERPROFILE in the sandbox blocked home roots so credential-bearing binds (such as .codex, .openclaw, or .ssh under the Windows user profile) are denied even when HOME points at a different shell home. (#63074) Thanks @luoyanglang.^[A-Z_][A-Z0-9_]*$ strings, and resolve config-backed provider apiKey values only through structured env SecretRefs (secrets.providers[id] / secrets.defaults), so unrelated env vars cannot accidentally become provider credentials. Thanks @sallyom.--openai-api-key) through the onboarding wizard so they reach provider auth methods via ctx.opts, letting --openai-api-key "$OPENAI_API_KEY" skip the redundant "use existing env var?" prompt in non-interactive harnesses. (#81669) Thanks @sjf.REASON_CODE_MESSAGES strings so plan/result rows read as labels instead of sentence fragments. (#81705) Thanks @sjf.Location headers as unfollowable redirects instead of failing Slack media downloads.setup.providers[].envVars credentials during provider discovery while keeping the deprecated providerAuthEnvVars fallback. (#81542) Thanks @JARVIS-Glasses.CODEX_HOME isolates ~/.codex while inherited HOME intentionally keeps .agents discovery and subprocess user-home state available.May 13, 2026
<media:image> placeholder text for media-only native image sends while preserving the internal echo key that prevents self-echo duplicate replies. (#81209) Thanks @homer-byte.sessions_send or gateway send, so agent-to-agent messages no longer fail when the target agent has not started yet.deltaText/replace frames so SDK clients can consume assistant updates without local diffing. (#80725) Thanks @samzong..env OpenClaw paths cannot leak into Linux containers. Fixes #80381. (#81105) Thanks @brokemac79.@wecom/wecom-openclaw-plugin@2026.5.7 and update existing managed npm installs instead of failing on the package directory. Fixes #79884. (#80390) Thanks @brokemac79.May 13, 2026
deltaText/replace frames so SDK clients can consume assistant updates without local diffing. (#80725) Thanks @samzong..env OpenClaw paths cannot leak into Linux containers. Fixes #80381. (#81105) Thanks @brokemac79.@wecom/wecom-openclaw-plugin@2026.5.7 and update existing managed npm installs instead of failing on the package directory. Fixes #79884. (#80390) Thanks @brokemac79.--version for git installs and install from the checked-in lockfile, preventing recent dependency pins from tripping pnpm's minimum-release-age gate during tag installs.May 13, 2026
@openclaw/codex package to use its private task-runtime SDK helper, fixing MODULE_NOT_FOUND during migrated OpenAI/Codex beta runs.Skip for now and bulk-selection rows work even when planned items start preselected.image_generate available when OpenAI auth lives in the agent's auth-profile store instead of environment variables.└─ prefix, making the parent-child relationship clear. Fixes #77628. (#78623) Thanks @chinar-amrutkar.max_completion_tokens and max_tokens on inbound /v1/chat/completions requests so client-provided token caps reach the upstream provider via streamParams.maxTokens, with max_completion_tokens taking precedence when both are sent. Thanks @Lellansin.May 12, 2026
image_generate available when OpenAI auth lives in the agent's auth-profile store instead of environment variables.image_generate available when OpenAI auth lives in the agent's auth-profile store instead of environment variables.└─ prefix, making the parent-child relationship clear. Fixes #77628. (#78623) Thanks @chinar-amrutkar.max_completion_tokens and max_tokens on inbound /v1/chat/completions requests so client-provided token caps reach the upstream provider via streamParams.maxTokens, with max_completion_tokens taking precedence when both are sent. Thanks @Lellansin.openclaw models auth login --provider openai start the ChatGPT/Codex account login by default, while --method api-key remains the explicit OpenAI API-key setup path.google/gemini-3.1-pro-preview for Gemini 3.1 testing.openclaw models auth login --set-default provider auth flows before writing config, so Gemini testing targets google/gemini-3.1-pro-preview.May 12, 2026
image_generate available when OpenAI auth lives in the agent's auth-profile store instead of environment variables.image_generate available when OpenAI auth lives in the agent's auth-profile store instead of environment variables.└─ prefix, making the parent-child relationship clear. Fixes #77628. (#78623) Thanks @chinar-amrutkar.max_completion_tokens and max_tokens on inbound /v1/chat/completions requests so client-provided token caps reach the upstream provider via streamParams.maxTokens, with max_completion_tokens taking precedence when both are sent. Thanks @Lellansin.openclaw models auth login --provider openai start the ChatGPT/Codex account login by default, while --method api-key remains the explicit OpenAI API-key setup path.google/gemini-3.1-pro-preview for Gemini 3.1 testing.openclaw models auth login --set-default provider auth flows before writing config, so Gemini testing targets google/gemini-3.1-pro-preview.