Commit Graph

38623 Commits

Author SHA1 Message Date
Peter Steinberger
f94d970cee fix: refresh Google Meet speech retry readiness 2026-04-30 02:45:44 +01:00
Vincent Koc
cab86dc325 fix(docs): allow partial i18n doc batches 2026-04-29 18:19:32 -07:00
Peter Steinberger
5e8c396bb8 docs: explain security autofix boundary 2026-04-30 02:11:36 +01:00
Peter Steinberger
64cb9c5b71 docs: document clawsweeper changelog gate 2026-04-30 02:08:54 +01:00
Peter Steinberger
6331fec05e test(scripts): align changed sdk routing expectation 2026-04-30 02:06:47 +01:00
hcl
1fb096f0e6 fix(models): unconditionally suppress stale openai-codex/gpt-5.4-mini inline entries (#74451) (#74655)
* fix(models): block stale openai-codex/gpt-5.4-mini inline entries via unconditional suppression (#74451)

Suppress explicitly user-configured openai-codex/gpt-5.4-mini inline entries
so a stale models config written by `openclaw doctor --fix` cannot bypass the
manifest capability block and cause repeated assistant-turn failures when the
runtime switches to that model on ChatGPT-backed Codex accounts.

Adds `unconditionalOnly` flag to `buildManifestBuiltInModelSuppressionResolver`
and a `shouldUnconditionallySuppress` helper. Inside `resolveExplicitModelWithRegistry`,
inline matches are now gated on unconditional suppressions (no `when` clause)
before returning. Conditional suppressions such as the qwen Coding Plan endpoint
guard remain bypassable by explicit user configuration, preserving the existing
`resolves explicitly configured qwen3.6-plus before Coding Plan built-in suppression`
behaviour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(changelog): add missing reporter attribution for #74451 models suppression fix

* docs: credit codex mini suppression contributors

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Shakker <shakkerdroid@gmail.com>
2026-04-30 02:02:23 +01:00
Fred blum
9b1bde2561 fix(voice-call): close webhook in-flight limiter fail-open on empty remote address (#74453)
* fix(voice-call): close in-flight limiter fail-open on empty remote address

The webhook in-flight limiter (createWebhookInFlightLimiter in
src/plugin-sdk/webhook-request-guards.ts) returns true unconditionally
when tryAcquire is called with an empty key — that is its by-contract
fail-open path used to mean 'caller is opting out of the limiter'.

The voice-call webhook handler reached that path silently: it computed
'req.socket.remoteAddress ?? ""' and passed the empty string straight
into tryAcquire. Whenever req.socket.remoteAddress was absent (closed
socket, edge proxy quirk), the limiter became a no-op and the request
proceeded directly to readBody without any concurrency cap.

Fix: when remoteAddress is missing, log a warning and fall back to a
constant non-empty key ('__voice_call_no_remote__') so all such
requests share one in-flight bucket instead of bypassing the limiter
entirely. The bucket size stays maxInFlightPerKey (default 8), which
is the right defense-in-depth posture against slow-body attacks
arriving with stripped IP info.

Scoped to voice-call only. Other consumers of the SDK helper
(bluebubbles via openclaw/plugin-sdk/webhook-ingress) are not changed
to avoid drive-by edits to plugins this PR does not own. The shared
SDK contract (empty key = bypass) is left as-is and documented
implicitly by the fix's comment block.

The existing 8-concurrent test in webhook.test.ts continues to assert
the limiter engages on the happy path; no new test added since the
private handleRequest path is not unit-test exposed and the change is
two-line auditable from the diff alone.

* test(voice-call): cover missing webhook remote address limiter

* test: align changed package sdk routing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-30 01:02:14 +00:00
Peter Steinberger
10a9654674 docs: update clawsweeper automerge workflow 2026-04-30 02:00:07 +01:00
Peter Steinberger
78fc27fe7d docs: document shipped app sdk 2026-04-30 01:59:04 +01:00
Peter Steinberger
6863694a22 fix(status): resolve packaged channel setup loader 2026-04-30 01:58:02 +01:00
Peter Steinberger
80ec402d0f test(sdk): remove redundant fake transport cast 2026-04-30 01:54:58 +01:00
clawsweeper[bot]
3bd6b54f0b fix: compatibility gaps in the new Google Vertex ADC manifest evidence
Tighten Google Vertex ADC manifest evidence to canonical project env vars and canonical ADC fallback paths only.

Local proof:
- OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test src/agents/model-auth.profiles.test.ts src/plugins/manifest-registry.test.ts src/secrets/provider-env-vars.dynamic.test.ts
- pnpm exec oxfmt --check --threads=1 docs/plugins/manifest.md extensions/google/openclaw.plugin.json src/agents/model-auth-env.ts src/agents/model-auth.profiles.test.ts src/plugins/manifest.ts
- git diff --check origin/main...HEAD

CI note: checks-node-core-support-boundary was red on an unrelated tooling assertion in test/scripts/test-projects.test.ts for packages/sdk/src/index.test.ts routing; that file and scripts/test-projects.mjs are unchanged from origin/main.
2026-04-30 01:52:09 +01:00
Vincent Koc
5a631e1ee9 fix(docs): bound i18n codex prompt cleanup 2026-04-29 17:47:58 -07:00
Peter Steinberger
a548d8e1ea docs(discord): tag Cloudflare cooldown changelog 2026-04-30 01:47:02 +01:00
Peter Steinberger
9c22a0133b docs(discord): clarify application id account scope 2026-04-30 01:47:02 +01:00
Peter Steinberger
485b875d72 fix(discord): allow configured application ids 2026-04-30 01:47:02 +01:00
Peter Steinberger
a81e3ee888 fix(discord): bound application summary probes 2026-04-30 01:47:02 +01:00
Peter Steinberger
950a9b5500 fix(discord): cool down Cloudflare 429 responses 2026-04-30 01:47:02 +01:00
Peter Steinberger
d4e88e7a2f test: align sdk gateway event e2e 2026-04-30 01:44:47 +01:00
Peter Steinberger
cd0fb36c1c docs: clarify app sdk documentation 2026-04-30 01:39:55 +01:00
Peter Steinberger
d86c5775b8 test: cover sdk gateway integration 2026-04-30 01:39:49 +01:00
clawsweeper[bot]
e9fcbe1533 fix: changed explicit-path handling regression (#74672)
* fix: changed explicit-path handling regression

* fix: preserve unicode adc fallback paths

---------

Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Shakker <shakkerdroid@gmail.com>
2026-04-30 01:36:59 +01:00
Peter Steinberger
08c4af0ddf fix(msteams): accept conversation id allowlists 2026-04-30 01:35:42 +01:00
Peter Steinberger
c397486648 fix(test): configure kitchen sink before enable 2026-04-30 01:35:13 +01:00
Peter Steinberger
1ead1b2d18 refactor(channels): finish turn kernel migration 2026-04-30 01:31:00 +01:00
Peter Steinberger
442e14e359 docs(config): document queue backlog alias 2026-04-30 01:30:51 +01:00
Peter Steinberger
cf125c125a test(plugins): align release validation fixtures 2026-04-30 01:25:54 +01:00
Peter Steinberger
30a2b3049a feat: default active steering to batched delivery 2026-04-30 01:22:43 +01:00
Peter Steinberger
fabfab2b84 test: avoid volatile model availability assertions 2026-04-30 01:22:05 +01:00
Vignesh
b20eea92d8 changelog: Add inferred follow-up commitments for agents
Move commitment changelog entry to unreleased.
2026-04-29 17:21:14 -07:00
Peter Steinberger
70ddeef0e8 test: align model list expectations 2026-04-30 01:18:18 +01:00
Peter Steinberger
52b57d0953 fix(cli): scope packaged compile cache 2026-04-30 01:16:38 +01:00
Peter Steinberger
0b59964ec9 fix(google): support Vertex authorized_user ADC 2026-04-30 01:13:25 +01:00
Peter Steinberger
601596bfe2 docs: refresh plugin sdk api baseline 2026-04-30 01:04:51 +01:00
Peter Steinberger
68c99616a3 docs: add 2026.4.27 changelog highlights 2026-04-30 01:03:57 +01:00
Peter Steinberger
692211a758 chore: refresh sdk workspace lock importer 2026-04-30 01:01:53 +01:00
Vincent Koc
e5c608f804 docs: clarify i18n locale visibility 2026-04-29 17:00:48 -07:00
Peter Steinberger
172bc9d043 fix(plugin-sdk): keep test contracts publishable 2026-04-30 01:00:15 +01:00
Peter Steinberger
59982c2aa5 chore: update macOS appcast for 2026.4.27 2026-04-30 00:56:13 +01:00
Peter Steinberger
b113d92c6f docs: clarify managed proxy routing hooks 2026-04-30 00:55:52 +01:00
Peter Steinberger
b7c3e19ed6 fix: mark channel system events untrusted 2026-04-30 00:51:24 +01:00
Peter Steinberger
29de89a8d9 fix: align SDK wait and protocol contracts 2026-04-30 00:51:24 +01:00
Peter Steinberger
204d200be3 fix: preserve SDK run event outcomes 2026-04-30 00:51:24 +01:00
Peter Steinberger
43f6c8b01a feat: add OpenClaw SDK package 2026-04-30 00:51:24 +01:00
Peter Steinberger
01254500df fix(cli): preserve lazy command parent flags 2026-04-30 00:48:46 +01:00
Mike Harsh
36bb723dfb fix(github-copilot): support GUI/RPC wizard auth flow (#73290)
Merged via squash.

Prepared head SHA: aea7d6650c
Co-authored-by: indierawk2k2 <18598712+indierawk2k2@users.noreply.github.com>
Co-authored-by: shanselman <2892+shanselman@users.noreply.github.com>
Reviewed-by: @shanselman
2026-04-29 16:45:31 -07:00
Blasius Patrick
d30b8dccfd fix(pi-embedded): strip [tool calls omitted] from user-facing text (#74578)
* fix(pi-embedded): strip [tool calls omitted] from user-facing text

The internal replay placeholder '[tool calls omitted]' was leaking
into channel output (e.g. Telegram) after aborted tool calls.

Fix: strip the placeholder early in sanitizeUserFacingText so all
channels are protected by default. The replay transcript path in
turns.ts is unaffected — it uses the placeholder internally.

Fixes #74573.

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>

* fix(pi-embedded): preserve whitespace when stripping placeholder

* test(pi-embedded): document replay placeholder sanitization

* fix(pi-embedded): strip consecutive replay placeholders

---------

Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-29 23:20:19 +00:00
Vincent Koc
845dd2a7d5 chore(ci): add provider runtime CodeQL quality shard
Adds a focused non-security CodeQL quality shard for provider runtime and model catalog contracts.
2026-04-29 16:15:38 -07:00
Shakker
6662dcf209 refactor: reuse provider auth lookup maps 2026-04-30 00:13:13 +01:00
Shakker
e327c96ce6 fix: preserve spawned workspace in models command 2026-04-30 00:13:13 +01:00