Summary:
- Adds WhatsApp `@newsletter` target normalization, outbound allowFrom bypass, channel session routing, composing-presence suppression, docs/changelog updates, and focused tests.
- Reproducibility: yes. Source inspection on current main shows a `120363401234567890@newsletter` target normalizes to null before outbound send, and the current session route has only direct/group semantics.
ClawSweeper fixups:
- Included follow-up commit: fix(clownfish): address review for ghcrawl-156943-autonomous-smoke (1)
- Included follow-up commit: feat(whatsapp): support newsletter targets in message tool
Validation:
- ClawSweeper review passed for head 9ff3f88202.
- Required merge gates passed before the squash merge.
Prepared head SHA: 9ff3f88202
Review: https://github.com/openclaw/openclaw/pull/73393#issuecomment-4338584612
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Gemini 3.1 Pro Preview may emit parts with only thoughtSignature
and no text content, causing the stream to stall. Emit a
thinking_signature event to keep the stream active, and start
a thinking block when these parts arrive before any text.
Fixes#76071
Detect run-level timeouts that fire while a tool call is still active and keep them out of assistant model fallback.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary:
- The PR updates the Discord plugin with REST priority lanes and stale background drops, gateway send/member v ... normalization, explicit component forwarding, one-off component wait helpers, tests, and a changelog entry.
- Reproducibility: yes. The prior scheduler failure has a high-confidence source-level reproduction using one ... ne pending same-bucket request under fake timers, and the latest head adds a regression test for that path.
ClawSweeper fixups:
- Included follow-up commit: fix(discord): preserve option localizations
- Included follow-up commit: fix(discord): harden component sends
- Included follow-up commit: docs(changelog): note Discord Carbon parity hardening
- Included follow-up commit: fix(discord): harden Carbon parity
- Ran the ClawSweeper repair loop before final review.
Validation:
- ClawSweeper review passed for head 4fa634ef1a.
- Required merge gates passed before the squash merge.
Prepared head SHA: 4fa634ef1a
Review: https://github.com/openclaw/openclaw/pull/75363#issuecomment-4357438917
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
* fix: raise Gemini 2.5 minimal thinking budget from 128 to 512
Google raised the minimum thinkingBudget for Gemini 2.5 Pro and Flash
models to 512. The hardcoded minimal: 128 now causes a 400 INVALID_ARGUMENT
("The thinking budget 128 is invalid. Please choose a value between 512
and 24576.") on every heartbeat using gemini-2.5-flash-lite with minimal
thinking.
* test(google): assert thinkingBudget minimum of 512 for Gemini 2.5 models
Add parametrized tests covering minimal/low/medium budget tiers for
gemini-2.5-flash-lite, gemini-2.5-flash, and gemini-2.5-pro — ensures
the 128→512 floor change is regression-tested.
Pre-existing typecheck failure in src/agents/model-auth.ts (TS2322) is
unrelated; confirmed present on upstream main without our changes.
Tests validated: pnpm test extensions/google/transport-stream.test.ts (21 pass).
* test(google): fix it.each format string placeholder order
* fix(google): narrow Gemini 2.5 minimal budget floor to flash-lite only