Skip to content

Commit 9911ea5

Browse files
committed
Auto-merge upstream openclaw/openclaw
2 parents a86cedc + 24a5ba7 commit 9911ea5

358 files changed

Lines changed: 32985 additions & 21716 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.oxfmtrc.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"pnpm-lock.yaml/",
2121
"src/gateway/server-methods/CLAUDE.md",
2222
"src/auto-reply/reply/export-html/",
23+
"src/canvas-host/a2ui/a2ui.bundle.js",
2324
"Swabble/",
2425
"vendor/",
2526
],

CHANGELOG.md

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,33 @@
22

33
Docs: https://docs.openclaw.ai
44

5-
## Unreleased
5+
## 2026.4.11
66

77
### Changes
88

9-
- Tools/video_generate: allow providers and plugins to return URL-only generated video assets so agent delivery and `openclaw capability video generate --output ...` can forward or stream large videos without requiring the full file in memory first. (#61988) Thanks @xieyongliang.
9+
- Dreaming/memory-wiki: add ChatGPT import ingestion plus new `Imported Insights` and `Memory Palace` diary subtabs so Dreaming can inspect imported source chats, compiled wiki pages, and full source pages directly from the UI. (#64505)
10+
- Control UI/webchat: render assistant media/reply/voice directives as structured chat bubbles, add the `[embed ...]` rich output tag, and gate external embed URLs behind config. (#64104)
11+
- Tools/video_generate: add URL-only generated asset delivery, typed `providerOptions`, reference audio inputs, per-asset role hints, `adaptive` aspect-ratio support, and a higher image-input cap so video providers can expose richer generation modes without forcing large files into memory. (#61987, #61988) Thanks @xieyongliang.
12+
- Feishu: improve document comment sessions with richer context parsing, comment reactions, and typing feedback so document-thread conversations behave more like chat conversations. (#63785)
13+
- Microsoft Teams: add reaction support, reaction listing, Graph pagination, and delegated OAuth setup for sending reactions while preserving application-auth read paths. (#51646)
14+
- Plugins: allow plugin manifests to declare activation and setup descriptors so plugin setup flows can describe required auth, pairing, and configuration steps without hardcoded core special cases. (#64780)
15+
- Ollama: cache `/api/show` context-window and capability metadata during model discovery so repeated picker refreshes stop refetching unchanged models, while still retrying after empty responses and invalidating on digest changes. (#64753) Thanks @ImLukeF.
1016
- Models/providers: surface how configured OpenAI-compatible endpoints are classified in embedded-agent debug logs, so local and proxy routing issues are easier to diagnose. (#64754) Thanks @ImLukeF.
17+
- QA/parity: add the GPT-5.4 vs Opus 4.6 agentic parity report gate with shared scenario coverage checks, stricter evidence heuristics, and skipped-scenario accounting for maintainer review. (#64441) Thanks @100yenadmin.
1118

1219
### Fixes
1320

21+
- OpenAI/Codex OAuth: stop rewriting the upstream authorize URL scopes so new Codex sign-ins do not fail with `invalid_scope` before returning an authorization code. (#64713) Thanks @fuller-stack-dev.
22+
- Audio transcription: disable pinned DNS only for OpenAI-compatible multipart requests, while still validating hostnames, so OpenAI, Groq, and Mistral transcription works again without weakening other request paths. (#64766) Thanks @GodsBoy.
23+
- macOS/Talk Mode: after granting microphone permission on first enable, continue starting Talk Mode instead of requiring a second toggle. (#62459) Thanks @ggarber.
24+
- Control UI/webchat: persist agent-run TTS audio replies into webchat history and preserve interleaved tool card pairing so generated audio and mixed tool output stay attached to the right messages. (#63514) Thanks @bittoby.
1425
- WhatsApp: honor the configured default account when the active listener helper is used without an explicit account id, so named default accounts do not get registered under `default`. (#53918) Thanks @yhyatt.
15-
- QA/packaging: stop packaged CLI startup and completion cache generation from reading repo-only QA scenario markdown by routing QA command registration through a narrow facade. (#64648) Thanks @obviyus.
16-
- QA/packaging: ship the bundled QA scenario pack in npm releases and keep `openclaw completion --write-state` working even if QA setup is broken, so missing QA content only degrades QA instead of breaking broader CLI startup-adjacent flows. Thanks @vincentkoc.
26+
- ACP/agents: suppress commentary-phase child assistant relay text in ACP parent stream updates, so spawned child runs stop leaking internal progress chatter into the parent session. Thanks @vincentkoc.
27+
- Agents/timeouts: honor explicit run timeouts in the LLM idle watchdog and align default timeout config so slow models can keep working until the configured limit instead of using the wrong idle window.
28+
- Config: include `asyncCompletion` in the generated zod schema so documented async completion config no longer fails with an unrecognized-key error. (#63618)
29+
- Google/Veo: stop sending the unsupported `numberOfVideos` request field so Gemini Developer API Veo runs do not fail before OpenClaw can complete the intended Google video generation path. (#64723) Thanks @velvet-shark.
30+
- QA/packaging: stop packaged CLI startup and completion cache generation from reading repo-only QA scenario markdown, ship the bundled QA scenario pack in npm releases, and keep `openclaw completion --write-state` working even if QA setup is broken. (#64648) Thanks @obviyus.
1731
- Codex/QA: keep Codex app-server coordination chatter out of visible replies, add a live QA leak scenario, and classify leaked harness meta text as a QA failure instead of a successful reply. Thanks @vincentkoc.
18-
- Control UI/webchat: persist agent-run TTS audio replies into webchat history before finalization so tool-generated audio reaches webchat clients again. (#63514) thanks @bittoby
19-
- macOS/Talk Mode: after granting microphone permission on first enable, continue starting Talk Mode instead of requiring a second toggle. (#62459) Thanks @ggarber.
20-
- OpenAI/Codex OAuth: stop rewriting the upstream authorize URL scopes so new Codex sign-ins do not fail with `invalid_scope` before returning an authorization code. (#64713) Thanks @fuller-stack-dev.
21-
- Google/Veo: stop sending the unsupported `numberOfVideos` request field so Gemini Developer API Veo runs do not fail before OpenClaw can complete the intended Google video generation path. (#64723) thanks @velvet-shark
2232

2333
## 2026.4.10
2434

@@ -36,11 +46,13 @@ Docs: https://docs.openclaw.ai
3646
- Gateway: add a `commands.list` RPC so remote gateway clients can discover runtime-native, text, skill, and plugin commands with surface-aware naming and serialized argument metadata. (#62656) Thanks @samzong.
3747
- Models/providers: add per-provider `models.providers.*.request.allowPrivateNetwork` for trusted self-hosted OpenAI-compatible endpoints, keep the opt-in scoped to model request surfaces, and refresh cached WebSocket managers when request transport overrides change. (#63671) Thanks @qas.
3848
- Feishu: standardize request user agents and register the bot as an AI agent so Feishu deployments identify OpenClaw consistently. (#63835) Thanks @evandance.
49+
- Docs i18n: chunk raw doc translation, reject truncated tagged outputs, avoid ambiguous body-only wrapper unwrapping, and recover from terminated Pi translation sessions without changing the default `openai/gpt-5.4` path. (#62969, #63808) Thanks @hxy91819.
50+
- Gateway: split startup and runtime seams so gateway lifecycle sequencing, reload state, and shutdown behavior stay easier to maintain without changing observed behavior. (#63975) Thanks @gumadeiras.
51+
- Control UI/webchat: normalize assistant `MEDIA:`/reply/voice directives into structured bubble rendering, rename the unreleased rich web shortcode to `[embed ...]`, and surface session runtime roots so hosted web content is written to the correct document path instead of guessed local files.
3952
- Matrix/partial streaming: add MSC4357 live markers to draft preview sends and edits so supporting Matrix clients can render a live/typewriter animation and stop it when the final edit lands. (#63513) Thanks @TigerInYourDream.
4053
- Control UI/dreaming: simplify the Scene and Diary surfaces, preserve unknown phase state for partial status payloads, and stabilize waiting-entry recency ordering so Dreaming status and review lists stay clear and deterministic. (#64035) Thanks @davemorin.
4154
- Agents: add an opt-in strict-agentic embedded Pi execution contract for GPT-5-family runs so plan-only or filler turns keep acting until they hit a real blocker. (#64241) Thanks @100yenadmin.
4255
- Agents/OpenAI: add provider-owned OpenAI/Codex tool schema compatibility and surface embedded-run replay/liveness state for long-running runs. (#64300) Thanks @100yenadmin.
43-
- Docs i18n: chunk raw doc translation, reject truncated tagged outputs, avoid ambiguous body-only wrapper unwrapping, and recover from terminated Pi translation sessions without changing the default `openai/gpt-5.4` path. (#62969, #63808) Thanks @hxy91819.
4456
- Dreaming/memory-wiki: add ChatGPT import ingestion plus new `Imported Insights` and `Memory Palace` diary subtabs so Dreaming can inspect imported source chats, compiled wiki pages, and full source pages directly from the UI. (#64505)
4557

4658
### Fixes

apps/ios/CHANGELOG.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
# OpenClaw iOS Changelog
22

3-
## Unreleased
3+
## 2026.4.11 - 2026-04-11
44

5-
### Added
6-
7-
### Changed
8-
9-
### Fixed
5+
Maintenance update for the current OpenClaw release.
106

117
## 2026.4.10 - 2026-04-10
128

docs/gateway/configuration-reference.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2895,6 +2895,8 @@ See [Plugins](/tools/plugin).
28952895
enabled: true,
28962896
basePath: "/openclaw",
28972897
// root: "dist/control-ui",
2898+
// embedSandbox: "scripts", // strict | scripts | trusted
2899+
// allowExternalEmbedUrls: false, // dangerous: allow absolute external http(s) embed URLs
28982900
// allowedOrigins: ["https://control.example.com"], // required for non-loopback Control UI
28992901
// dangerouslyAllowHostHeaderOriginFallback: false, // dangerous Host-header origin fallback mode
29002902
// allowInsecureAuth: false,
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
# GPT-5.4 / Codex Parity Maintainer Notes
2+
3+
This note explains how to review the GPT-5.4 / Codex parity program as four merge units without losing the original six-contract architecture.
4+
5+
## Merge units
6+
7+
### PR A: strict-agentic execution
8+
9+
Owns:
10+
11+
- `executionContract`
12+
- GPT-5-first same-turn follow-through
13+
- `update_plan` as non-terminal progress tracking
14+
- explicit blocked states instead of plan-only silent stops
15+
16+
Does not own:
17+
18+
- auth/runtime failure classification
19+
- permission truthfulness
20+
- replay/continuation redesign
21+
- parity benchmarking
22+
23+
### PR B: runtime truthfulness
24+
25+
Owns:
26+
27+
- Codex OAuth scope correctness
28+
- typed provider/runtime failure classification
29+
- truthful `/elevated full` availability and blocked reasons
30+
31+
Does not own:
32+
33+
- tool schema normalization
34+
- replay/liveness state
35+
- benchmark gating
36+
37+
### PR C: execution correctness
38+
39+
Owns:
40+
41+
- provider-owned OpenAI/Codex tool compatibility
42+
- parameter-free strict schema handling
43+
- replay-invalid surfacing
44+
- paused, blocked, and abandoned long-task state visibility
45+
46+
Does not own:
47+
48+
- self-elected continuation
49+
- generic Codex dialect behavior outside provider hooks
50+
- benchmark gating
51+
52+
### PR D: parity harness
53+
54+
Owns:
55+
56+
- first-wave GPT-5.4 vs Opus 4.6 scenario pack
57+
- parity documentation
58+
- parity report and release-gate mechanics
59+
60+
Does not own:
61+
62+
- runtime behavior changes outside QA-lab
63+
- auth/proxy/DNS simulation inside the harness
64+
65+
## Mapping back to the original six contracts
66+
67+
| Original contract | Merge unit |
68+
| ---------------------------------------- | ---------- |
69+
| Provider transport/auth correctness | PR B |
70+
| Tool contract/schema compatibility | PR C |
71+
| Same-turn execution | PR A |
72+
| Permission truthfulness | PR B |
73+
| Replay/continuation/liveness correctness | PR C |
74+
| Benchmark/release gate | PR D |
75+
76+
## Review order
77+
78+
1. PR A
79+
2. PR B
80+
3. PR C
81+
4. PR D
82+
83+
PR D is the proof layer. It should not be the reason runtime-correctness PRs are delayed.
84+
85+
## What to look for
86+
87+
### PR A
88+
89+
- GPT-5 runs act or fail closed instead of stopping at commentary
90+
- `update_plan` no longer looks like progress by itself
91+
- behavior stays GPT-5-first and embedded-Pi scoped
92+
93+
### PR B
94+
95+
- auth/proxy/runtime failures stop collapsing into generic “model failed” handling
96+
- `/elevated full` is only described as available when it is actually available
97+
- blocked reasons are visible to both the model and the user-facing runtime
98+
99+
### PR C
100+
101+
- strict OpenAI/Codex tool registration behaves predictably
102+
- parameter-free tools do not fail strict schema checks
103+
- replay and compaction outcomes preserve truthful liveness state
104+
105+
### PR D
106+
107+
- the scenario pack is understandable and reproducible
108+
- the pack includes a mutating replay-safety lane, not only read-only flows
109+
- reports are readable by humans and automation
110+
- parity claims are evidence-backed, not anecdotal
111+
112+
Expected artifacts from PR D:
113+
114+
- `qa-suite-report.md` / `qa-suite-summary.json` for each model run
115+
- `qa-agentic-parity-report.md` with aggregate and scenario-level comparison
116+
- `qa-agentic-parity-summary.json` with a machine-readable verdict
117+
118+
## Release gate
119+
120+
Do not claim GPT-5.4 parity or superiority over Opus 4.6 until:
121+
122+
- PR A, PR B, and PR C are merged
123+
- PR D runs the first-wave parity pack cleanly
124+
- runtime-truthfulness regression suites remain green
125+
- the parity report shows no fake-success cases and no regression in stop behavior
126+
127+
```mermaid
128+
flowchart LR
129+
A["PR A-C merged"] --> B["Run GPT-5.4 parity pack"]
130+
A --> C["Run Opus 4.6 parity pack"]
131+
B --> D["qa-suite-summary.json"]
132+
C --> E["qa-suite-summary.json"]
133+
D --> F["qa parity-report"]
134+
E --> F
135+
F --> G["Markdown report + JSON verdict"]
136+
G --> H{"Pass?"}
137+
H -- "yes" --> I["Parity claim allowed"]
138+
H -- "no" --> J["Keep runtime fixes / review loop open"]
139+
```
140+
141+
The parity harness is not the only evidence source. Keep this split explicit in review:
142+
143+
- PR D owns the scenario-based GPT-5.4 vs Opus 4.6 comparison
144+
- PR B deterministic suites still own auth/proxy/DNS and full-access truthfulness evidence
145+
146+
## Goal-to-evidence map
147+
148+
| Completion gate item | Primary owner | Review artifact |
149+
| ---------------------------------------- | ------------- | ------------------------------------------------------------------- |
150+
| No plan-only stalls | PR A | strict-agentic runtime tests and `approval-turn-tool-followthrough` |
151+
| No fake progress or fake tool completion | PR A + PR D | parity fake-success count plus scenario-level report details |
152+
| No false `/elevated full` guidance | PR B | deterministic runtime-truthfulness suites |
153+
| Replay/liveness failures remain explicit | PR C + PR D | lifecycle/replay suites plus `compaction-retry-mutating-tool` |
154+
| GPT-5.4 matches or beats Opus 4.6 | PR D | `qa-agentic-parity-report.md` and `qa-agentic-parity-summary.json` |
155+
156+
## Reviewer shorthand: before vs after
157+
158+
| User-visible problem before | Review signal after |
159+
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------- |
160+
| GPT-5.4 stopped after planning | PR A shows act-or-block behavior instead of commentary-only completion |
161+
| Tool use felt brittle with strict OpenAI/Codex schemas | PR C keeps tool registration and parameter-free invocation predictable |
162+
| `/elevated full` hints were sometimes misleading | PR B ties guidance to actual runtime capability and blocked reasons |
163+
| Long tasks could disappear into replay/compaction ambiguity | PR C emits explicit paused, blocked, abandoned, and replay-invalid state |
164+
| Parity claims were anecdotal | PR D produces a report plus JSON verdict with the same scenario coverage on both models |

0 commit comments

Comments
 (0)