Vincent Koc
0a62c1e665
fix(telegram): derive media placeholders from MIME
...
Fixes #69793 .
Verification:
- repro before fix: `pnpm test:serial extensions/telegram/src/bot-message-context.body.test.ts -- --reporter=verbose` failed 3 new cases with `<media:image>` returned for non-image/mixed saved media
- `pnpm test:serial extensions/telegram/src/bot-message-context.body.test.ts -- --reporter=verbose` passed 9 tests after fix
- `pnpm exec oxfmt --check --threads=1 extensions/telegram/src/bot-message-context.body.ts extensions/telegram/src/bot-message-context.body.test.ts`
- `git diff --check`
- `OPENCLAW_TESTBOX=1 pnpm testbox:run --id tbx_01kqtnnhpg6rk1225tbb7109kf -- "pnpm check:changed"` passed
2026-05-04 16:46:58 -07:00
Peter Steinberger
d522a18971
fix: sync Codex app-server protocol ( #77578 )
...
* fix: sync codex app-server protocol
* docs: add codex protocol changelog
* fix: refresh codex protocol schemas
2026-05-05 00:43:07 +01:00
Peter Steinberger
15d3fd83bb
fix(openai-codex): match codex replay identity
2026-05-05 00:33:23 +01:00
mkdev11
27e467ad23
fix(openai-codex): avoid stale Responses replay state
2026-05-05 00:33:23 +01:00
Vincent Koc
8285786c22
fix(plugins): include json5 in memory runtime deps
...
* fix(plugins): include json5 in memory runtime deps
* chore(ci): allow bundled runtime json5 dep
2026-05-04 16:31:49 -07:00
Vincent Koc
edb697e389
test(extensions): refresh dependency-backed assertions
2026-05-04 16:17:51 -07:00
Peter Steinberger
c3c7c2df6f
fix(discord): prefer IPv4 for gateway startup
2026-05-04 23:52:45 +01:00
Vincent Koc
ce8bc1a3e3
fix(lint): cover diagnostic phase events
2026-05-04 15:40:00 -07:00
Vincent Koc
e39d3b4223
fix(mattermost): clarify model picker runtime behavior
2026-05-04 15:38:14 -07:00
Peter Steinberger
9f2c8a6ab6
fix: clarify slack socket retry errors
2026-05-04 23:26:25 +01:00
Vincent Koc
ac3cd1a0ca
Harden Codex harness control surfaces ( #77459 )
...
* fix(scripts): find codex protocol source from worktrees
* fix(test): keep codex harness docker caches writable
* fix(test): relax live codex cache mount permissions
* test(codex): add live docker harness debug output
* fix(test): detect numeric ci env in codex docker harness
* fix(codex): skip duplicate agent-command telemetry
* fix(tooling): skip sparse-missing oxlint tsconfig
* fix(tooling): route changed checks through testbox
* fix(qa): keep coverage json source-clean
* fix(test): preflight codex docker auth
* fix(codex): validate bind option values
* fix(codex): parse quoted command arguments
* fix(codex): reject extra control args
* fix(codex): use content for blank bound prompts
* fix(codex): decode local image file urls
* fix(codex): treat local media urls as images
* fix(codex): keep windows media paths local
* fix(codex): reject malformed diagnostics confirmations
* fix(codex): reject malformed resume commands
* fix(codex): reject malformed thread actions
* fix(codex): reject malformed turn controls
* fix(codex): reject malformed model controls
* fix(codex): resolve empty user input prompts
* fix(codex): enforce user input options
* fix(codex): reject ambiguous computer-use actions
* fix(codex): ignore stale bound turn notifications
* test(gateway): close task registries in gateway harness
* test(gateway): route cleanup through task seams
* fix(codex): describe current permission approvals
* fix(codex): disclose command approval amendments
* fix(codex): preserve approval detail under truncation
* fix(codex): propagate dynamic tool failures
* test(codex): align dynamic tool block contract
* fix(codex): reject extra read-only command operands
* fix(codex): escape command readout fields
* fix(codex): escape status probe errors
* fix(codex): narrow formatted thread details
* fix(codex): escape successful status summaries
* fix(codex): escape bound control replies
* fix(codex): escape user input prompts
* fix(codex): escape control failure replies
* fix(codex): escape approval prompt text
* test(codex): narrow escaped reply assertions
* test(codex): complete strict reply fixtures
* test(codex): preserve account fixture literals
* test(codex): align status probe fixtures
* fix(codex): satisfy sanitizer regex lint
* fix(codex): harden command readouts
* fix(codex): harden bound image inputs
* fix(codex): sanitize command failure replies
* test(codex): complete rate limit fixture
* test(tooling): isolate postinstall compile cache fixture
* fix(codex): keep app-server event ownership explicit
---------
Co-authored-by: pashpashpash <nik@vault77.ai >
2026-05-05 07:23:41 +09:00
Chunyue Wang
14aa98827a
fix(codex/app-server): stable mirror idempotency to prevent transcript loss ( #77046 )
...
* fix(codex/app-server): stable mirror idempotency to prevent transcript loss
* Changelog: note codex/app-server transcript mirror dedupe stabilization (#77046 )
2026-05-04 23:17:00 +01:00
Vincent Koc
57ca91ff38
fix(telegram): clarify model picker runtime scope
2026-05-04 15:15:32 -07:00
Peter Steinberger
343f859b90
fix: preserve visible Discord labeled replies
2026-05-04 23:13:18 +01:00
Satoshi
5572c8137c
fix(discord): preserve non-text payloads in reply scrub
2026-05-04 23:13:18 +01:00
Satoshi
e259938e96
fix: harden startup readiness and discord replies
...
(cherry picked from commit 3956672106b3387d42427a485a9ca01e77f3b78f)
2026-05-04 23:13:18 +01:00
Peter Steinberger
8ee08b2b77
chore: update dependencies
2026-05-04 23:07:09 +01:00
Pnant
a7b665cfed
fix(telegram): honor topic requireMention precedence
...
Telegram forum-topic requireMention config now takes precedence over persisted activation state, with focused regression coverage.\n\nFixes #49864.\nThanks @Panniantong.
2026-05-04 22:53:06 +01:00
hcl
d0cae0d950
fix(active-memory): skip sub-agent gracefully when no memory tools registered ( #77506 ) ( #77515 )
...
* fix(active-memory): skip sub-agent gracefully when no memory tools registered (#77506 )
When memory-core and memory-lancedb are both absent, the embedded
memory sub-agent would throw 'No callable tools remain after resolving
explicit tool allowlist', which propagated as a noisy warning through
the before_prompt_build hook. Catch this specific error in
runActiveMemorySubAgent and return an empty NONE result so the
gateway log stays clean and the sub-agent run is skipped without
disrupting the parent session.
* fix(active-memory): skip missing memory-tool subagent runs
* fix(active-memory): match inherited missing memory tool errors
* fix(active-memory): preserve policy-filtered memory errors
---------
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-05-04 16:47:38 -05:00
Vincent Koc
a4f2bf273a
fix(openai): default direct responses to sse
2026-05-04 14:37:07 -07:00
Peter Steinberger
4556707cb7
test(browser): mirror route URL guard in existing-session helper
2026-05-04 22:29:13 +01:00
Sally O'Malley
02ac7dc5a6
fix(openrouter): keep DeepSeek V4 reasoning effort valid ( #77423 )
...
Summary:
- The PR removes `max` from OpenRouter DeepSeek V4 thinking profiles, maps stale OpenRouter `max` overrides to `xhigh`, preserves direct DeepSeek behavior, and updates docs, tests, and changelog.
- Reproducibility: yes. Source inspection on current main shows OpenRouter DeepSeek V4 advertises `max` and se ... ffort: "max"`, matching the linked 400 logs; I did not need a live OpenRouter request for this assist pass.
Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Addressed earlier ClawSweeper review findings before merge.
- Included post-review commit in the final squash: docs(changelog): credit OpenRouter duplicate fix
- Included post-review commit in the final squash: fix(openrouter): keep DeepSeek V4 reasoning effort valid
Validation:
- ClawSweeper review passed for head becdea4223 .
- Required merge gates passed before the squash merge.
Prepared head SHA: becdea4223
Review: https://github.com/openclaw/openclaw/pull/77423#issuecomment-4372880583
Co-authored-by: sallyom <somalley@redhat.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-04 21:05:05 +00:00
Vincent Koc
e2eb8e3cfe
test(plugins): harden kitchen sink live gauntlet
2026-05-04 14:01:59 -07:00
Vincent Koc
a71f906837
fix(browser): guard existing-session screenshots
2026-05-04 13:56:33 -07:00
Vincent Koc
59b5058cdb
fix(active-memory): stabilize timeout partial recovery
2026-05-04 13:56:12 -07:00
Agustin Rivera
ef0dbcf49d
Guard current browser tab exports ( #75731 )
...
* fix(browser): guard current tab exports
* fix(browser): expand tab guard coverage
* fix(browser): guard tab reads
* fix(browser): guard screenshot route
* changelog: PR #75731
---------
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-05-04 14:07:17 -06:00
Syu
f2efe33afc
Fix Active Memory memory-only recall latency ( #75200 )
...
Summary:
- The PR adds a bounded latest-message search-query section to Active Memory recall prompts, regression coverage for metadata stripping, a changelog entry, and pending-final-delivery session slot reservations.
- Reproducibility: yes. for a source-level reproduction path: an eligible interactive turn reaches Active Memo ... om current releases, but I did not run a live gateway/provider reproduction under the read-only constraint.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(plugins): reserve final delivery session slots
Validation:
- ClawSweeper review passed for head 24bf408e75 .
- Required merge gates passed before the squash merge.
Prepared head SHA: 24bf408e75
Review: https://github.com/openclaw/openclaw/pull/75200#issuecomment-4354978044
Co-authored-by: SYU8384 <zhuqimo@gmail.com >
2026-05-04 20:05:15 +00:00
VACInc
8cf1800ee9
fix codex thread continuity
2026-05-04 20:48:51 +01:00
Devin Robison
edddb07f20
fix(qqbot): preserve framework command authorization ( #77453 )
...
* fix(qqbot): preserve framework command authorization
* Add changelog entry for PR #77453
2026-05-04 12:38:51 -06:00
hcl
dff437a1cb
fix(active-memory): skip colon-containing session-store channels to prevent crash with QQ c2c agent IDs ( #77402 )
...
Summary:
- The PR filters colon-containing store-derived Active Memory channel values before embedded recall resolution, adds a QQ c2c regression test, and records the user-facing changelog entry.
- Reproducibility: yes. Source inspection on current main shows a stored colon-containing `lastChannel` or `ch ... come the strong embedded recall channel, and the downstream bundled-plugin directory validator rejects `:`.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fixup! fix(active-memory): add changelog contributor credit (clawswee…
- PR branch already contained follow-up commit before automerge: fix(active-memory): skip colon-containing session-store channels
Validation:
- ClawSweeper review passed for head 4bf00dd6ac .
- Required merge gates passed before the squash merge.
Prepared head SHA: 4bf00dd6ac
Review: https://github.com/openclaw/openclaw/pull/77402#issuecomment-4372618783
Co-authored-by: HCL <chenglunhu@gmail.com >
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-04 18:37:05 +00:00
Vincent Koc
841eb81baf
chore: better explicit message on whatsapp
2026-05-04 11:30:36 -07:00
stain lu
74ab62c6a2
fix: pass claude cli thinking effort ( #77410 )
...
Summary:
- Adds a plugin-owned CLI backend argument rewrite hook and wires Anthropic `claude-cli` to translate non-off `/think` levels into Claude Code `--effort`, with docs, changelog, API baseline, and tests.
- Reproducibility: yes. Current main has a high-confidence source reproduction: choose `claude-cli`, set a non ... builds argv from backend args that contain no `--effort` even though `thinkLevel` exists on the run params.
Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.
Validation:
- ClawSweeper review passed for head be17754009 .
- Required merge gates passed before the squash merge.
Prepared head SHA: be17754009
Review: https://github.com/openclaw/openclaw/pull/77410#issuecomment-4372812685
Co-authored-by: stainlu <stainlu@newtype-ai.org >
2026-05-04 18:13:53 +00:00
Pavan Kumar Gondhi
ea75cd8971
Gate zalouser startup name matching [AI] ( #77411 )
...
* fix: gate zalouser startup name matching
* addressing codex review
* docs: add changelog entry for PR merge
2026-05-04 22:47:19 +05:30
Pavan Kumar Gondhi
37c0520a0b
fix(device-pair): require pairing scope for pair command [AI] ( #76377 )
...
* fix: restrict device pairing command access
* addressing review-skill
* addressing review-skill
* addressing codex review
* address codex review feedback
* addressing codex review
* addressing codex review
* addressing codex review
* addressing codex review
* docs: add changelog entry for PR merge
2026-05-04 22:12:06 +05:30
Vincent Koc
30e259b9c5
test(qa-lab): accept native Windows paths
2026-05-04 09:20:03 -07:00
Vincent Koc
9008031e96
fix(qa-channel): settle aborted bus polls
2026-05-04 09:20:03 -07:00
Vincent Koc
6c2573e37a
test(anthropic-vertex): accept native ADC home paths
2026-05-04 09:20:03 -07:00
Vincent Koc
2fe2dbdb7d
test(openshell): accept native symlink targets
2026-05-04 09:20:02 -07:00
Vincent Koc
3d3b0dad77
test(whatsapp): accept native Windows auth paths
2026-05-04 09:20:02 -07:00
Vincent Koc
15b9966781
test(telegram): accept native Windows session file paths
2026-05-04 09:20:02 -07:00
Vincent Koc
0dd30c804c
test(memory): cover native Windows paths and locks
2026-05-04 09:20:02 -07:00
Vincent Koc
fa1d826a41
test(matrix): cover native Windows file semantics
2026-05-04 09:20:02 -07:00
Vincent Koc
7c6bf331b8
test(feishu): accept native oversized body resets
2026-05-04 09:20:02 -07:00
Vincent Koc
4f2f5e0461
test(feishu): cover native Windows webhook and workspace paths
2026-05-04 09:20:02 -07:00
Vincent Koc
48a3a23d40
test(discord): accept native voice temp paths
2026-05-04 09:20:02 -07:00
Vincent Koc
40f92b8d78
test(diffs): use native viewer asset file URLs
2026-05-04 09:20:02 -07:00
Vincent Koc
981767516d
test(bluebubbles): accept native contact database paths
2026-05-04 09:20:02 -07:00
Vincent Koc
03d04c243b
test(acpx): cover Windows extension test paths
2026-05-04 09:20:02 -07:00
Eva
cb38535875
[plugin sdk] Project session extension slots ( #75609 )
...
Merged via squash.
Prepared head SHA: d9b670a867
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-05-04 08:04:27 -07:00
Pavan Kumar Gondhi
e3364ae3bd
fix(qqbot): keep private commands off framework surface [AI] ( #77212 )
...
* fix: keep private qqbot commands off framework surface
* addressing codex review
* docs: add changelog entry for PR merge
2026-05-04 20:23:51 +05:30