Commit Graph

7751 Commits

Author SHA1 Message Date
Ayaan Zaidi
9e94a9e418 test(qa): allow telegram scenario timeout override 2026-05-01 11:20:11 +05:30
Peter Steinberger
97d42a9614 fix(voice-call): retry twilio answered updates 2026-05-01 06:47:34 +01:00
clawsweeper[bot]
173f959613 fix(bluebubbles): cache prefixed reply context aliases
* fix: BlueBubbles reply-context fallback cache-key regression

* fix(clawsweeper): address review for clawsweeper-commit-openclaw-openclaw-76930da7ebc7 (1)

---------

Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-30 22:44:21 -07:00
clawsweeper[bot]
1b6f2969aa fix(telegram): forward audioAsVoice payloads
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-30 22:42:54 -07:00
Peter Steinberger
b2aac178d6 fix: tighten meet voice-call setup checks 2026-05-01 06:40:22 +01:00
Peter Steinberger
464e573602 fix(voice-call): delegate cli calls to gateway 2026-05-01 06:35:36 +01:00
Ben
e8f9c3e6de fix(voice-call): stabilize Twilio STT startup (#75257)
Fix Twilio voice-call startup so accepted media streams register immediately, realtime transcription readiness gates only the initial greeting, and early inbound media is preserved while STT connects.

Fixes #75197.
Thanks @PfanP and @donkeykong91.
2026-05-01 06:25:36 +01:00
Peter Steinberger
1c300cec5d fix(auto-reply): keep group visible replies deliverable (#75382)
Summary:
- The PR updates auto-reply message-tool availability and fallback policy, qa-channel group target support, qa-lab scenario coverage, generated config metadata, docs, and the changelog for group visible replies.

ClawSweeper fixups:
- No separate fixup commits were needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head adbec93b8a.
- Required merge gates passed before the squash merge.

Prepared head SHA: adbec93b8a
Review: https://github.com/openclaw/openclaw/pull/75382#issuecomment-4357590733

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-01 05:07:03 +00:00
Cole
76930da7eb feat(bluebubbles): add reply-context API fallback for cache misses (#71820)
Merged via squash.

Prepared head SHA: 04f6a8740a
Co-authored-by: coletebou <12384893+coletebou@users.noreply.github.com>
Co-authored-by: omarshahine <10343873+omarshahine@users.noreply.github.com>
Reviewed-by: @omarshahine
2026-04-30 22:01:26 -07:00
Vyctor Huggo Przozwski
eabab1f64f fix(active-memory): expose memory tools to recall runs (#74592)
Fix Active Memory recall runs so plugin tool allowlists from composed Memory Core agents flow into embedded tool execution, restoring callable memory plugin tools during recall.\n\nCo-authored-by: vyctorbrzezowski <vyctorbrzezowski@users.noreply.github.com>
2026-05-01 05:48:59 +01:00
Peter Steinberger
54f44ec321 fix: restore Twilio Meet voice intro 2026-05-01 05:41:49 +01:00
Peter Steinberger
07bc320a8a fix: scope voicecall CLI activation 2026-05-01 05:32:18 +01:00
gavyngong
fd0ca5987b fix(nextcloud-talk): replace manual XOR with crypto.timingSafeEqual and fix length leak (#58097)
Merged via squash.

Prepared head SHA: 3cb82bce40
Co-authored-by: gavyngong <267269824+gavyngong@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-05-01 10:26:54 +08:00
Peter Steinberger
bd20f8e07e fix(discord): harden rate limit retries (#75338)
* fix(discord): harden rate limit retries

* fix(discord): guard voice upload fetches

* fix(discord): avoid stale rate limit requeues
2026-05-01 01:49:02 +00:00
Vignesh
b277ae3f4c [codex] Fix commitments safety and coverage (#75302)
* fix commitments safety and coverage

* Repair commitments safety PR review blockers

* fix(clawsweeper): address review for automerge-openclaw-openclaw-75302 (1)

* Repair commitments safety PR review blocker

---------

Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
2026-05-01 01:14:07 +00:00
Peter Steinberger
1ad50a36ac chore(release): forward-port 2026.4.29 fixes and bump 2026.4.30 2026-05-01 01:06:13 +01:00
Peter Steinberger
1e87f6bf70 fix(qa-lab): preserve gateway log offset order 2026-05-01 00:44:17 +01:00
Peter Steinberger
90419df663 [codex] Make external CLI credential discovery explicit (#75209)
* refactor(auth): make external CLI discovery explicit

* test(auth): update external cli discovery mocks

* test(auth): cover scoped external cli auth mocks

* [codex] Make external CLI credential discovery explicit

---------

Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
2026-04-30 20:32:55 +00:00
Peter Steinberger
bb3a0c9545 fix: quiet Discord slash command deploy rate limits 2026-04-30 21:12:53 +01:00
pashpashpash
027ea5f08b Isolate Codex app-server state per agent (#74556)
* fix(codex): isolate app-server home per agent

* fix(codex): isolate native Codex assets per agent

* fix(channels): mark inbound system events untrusted

* fix(doctor): warn on personal Codex agent skills

* test(doctor): cover personal Codex agent skills warning

* fix(codex): forward auth profiles to harness runs

* fix(codex): preserve auto auth for harness runs

* fix(codex): auto-select harness auth profiles

* test(codex): type harness auth mock

* feat(codex): select migrated skills

* fix(codex): satisfy migration selection lint

* docs: add codex isolation changelog
2026-05-01 04:49:02 +09:00
Peter Steinberger
54e6e3d7da fix(codex): time out silent app-server turns 2026-04-30 19:22:33 +01:00
keshavbotagent
388019f5b6 fix: preserve OpenAI Codex OAuth transport (#75111)
Preserve the existing wrapped OpenAI Codex stream so PI OAuth bearer injection reaches ChatGPT/Codex Responses, and scope native Codex payload sanitization to the ChatGPT backend.\n\nThanks @keshavbotagent.
2026-04-30 18:00:12 +01:00
NVIDIAN
797d574dfd fix(deepseek): expose V4 max thinking levels (#73008)
Merged via squash.

Prepared head SHA: ef561a59de
Co-authored-by: ai-hpc <183861985+ai-hpc@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-30 23:34:05 +08:00
Peter Steinberger
de1ac12f1c fix: keep telegram polling timeout above long poll 2026-04-30 16:11:42 +01:00
Peter Steinberger
32d429e647 test(signal): cover inbound prompt body contract 2026-04-30 16:06:37 +01:00
Peter Steinberger
b743506549 fix: reduce runtime mirror and signal group regressions 2026-04-30 15:59:03 +01:00
Peter Steinberger
29a35f04a9 fix(browser): use source config for proxy decisions 2026-04-30 15:56:49 +01:00
Peter Steinberger
a3228977fb test(signal): cover group mention gating defaults 2026-04-30 15:53:09 +01:00
Peter Steinberger
b40c679630 fix(signal): match group allowlists against group ids 2026-04-30 15:49:44 +01:00
Peter Steinberger
c5bc4b6892 fix: repair telegram transcript echo routing 2026-04-30 15:39:33 +01:00
Peter Steinberger
cf772079c6 fix(browser): share control runtime state 2026-04-30 15:35:42 +01:00
Peter Steinberger
44ad65f02b fix(signal): harden signal-cli installer downloads 2026-04-30 15:34:37 +01:00
Peter Steinberger
ac599c9e53 fix: retain local memory runtime deps 2026-04-30 15:22:26 +01:00
Peter Steinberger
3b0ed18b86 fix(signal): handle attachment and SSE regressions 2026-04-30 15:14:26 +01:00
Peter Steinberger
8b665e0d70 fix(slack): gate bot room relays on owner presence 2026-04-30 14:46:31 +01:00
Peter Steinberger
3766bbb674 fix(models): restore codex mini oauth route 2026-04-30 14:43:39 +01:00
Vincent Koc
f3145f6db8 fix(telegram): remove unused draft stream helper 2026-04-30 06:19:08 -07:00
Ayaan Zaidi
c9d9067931 test(telegram): cover message-only previews 2026-04-30 18:07:57 +05:30
Ayaan Zaidi
2a4dd89253 fix(telegram): remove native draft preview transport 2026-04-30 18:07:57 +05:30
cxy
62fb87641e fix(qqbot): unify slash command auth, c2cOnly gating, and file delivery (#73616)
* fix(qqbot): align clear-storage command with actual downloads directory

The /bot-clear-storage command previously targeted
~/.openclaw/media/qqbot/downloads/{appId}/, but inbound attachments
and outbound fallback downloads are stored directly under
~/.openclaw/media/qqbot/downloads/ without appId subdivision.

This mismatch caused the clear command to report 'no files to clean'
while downloaded files continued to occupy disk space.

Changes:
- Replace resolveQqbotDownloadsDirForApp(appId) with
  resolveQqbotDownloadsDir() that returns the downloads root
- Use getQQBotMediaPath('downloads') instead of manual path assembly
- Remove appId-based path validation (no longer needed)
- Update usage text to reflect the new scope

* refactor(qqbot): unify slash command auth and c2cOnly gating in registry

Previously, slash command authorization and group-chat rejection were
scattered across individual handlers and a hardcoded GROUP_EXCLUDED set.
This led to inconsistent behavior: commandAuthorized was hardcoded to
true in the pre-dispatch path, some handlers checked allowFrom while
others did not, and group users received no response for auth-gated
commands.

Changes:

1. Add resolveSlashCommandAuth() (new file slash-command-auth.ts)
   - Requires sender to appear in an explicit non-wildcard allowFrom
     list; wildcard ['*'] does not grant admin command access
   - Group messages use groupAllowFrom, falling back to allowFrom

2. Fix commandAuthorized in slash-command-handler.ts
   - Replace hardcoded 'true' with resolveSlashCommandAuth() call

3. Add c2cOnly field to SlashCommand interface
   - Commands declare c2cOnly: true instead of checking ctx.type
     inside their handler
   - Registry rejects c2cOnly commands in group chat before auth
     check, returning a user-friendly hint

4. Remove GROUP_EXCLUDED hardcoded set from register-basic.ts
   - /bot-help now filters by cmd.c2cOnly dynamically

5. Clean up handler-level auth and scene checks
   - Remove hasExplicitCommandAllowlist check from register-logs
   - Remove ctx.type !== 'c2c' guards from all c2cOnly handlers
   - Improve rejection message to mention the correct config field
     (allowFrom for c2c, groupAllowFrom for group)

6. Mark commands: bot-upgrade, bot-streaming, bot-logs,
   bot-clear-storage, bot-approve as c2cOnly: true

* fix(qqbot): pass allowQQBotDataDownloads when sending slash command file attachments

The /bot-logs command writes temporary log files to the QQBot data
downloads directory (~/.openclaw/qqbot/downloads/), but sendDocument
was called without allowQQBotDataDownloads: true. This caused
resolveOutboundMediaPath to reject the file path as outside the
allowed media roots, silently failing the file attachment while
the text reply was sent successfully.

Add { allowQQBotDataDownloads: true } to the sendDocument call in
slash-command-handler.ts so file-bearing slash command results
(currently only /bot-logs) can deliver their attachments.

* feat(qqbot): add /bot-me command to display sender user ID

Add a new /bot-me slash command that returns the sender's user ID
(openid). This helps users quickly find the value they need to add
to allowFrom or groupAllowFrom configuration for admin command
access.

Marked as c2cOnly since the user ID is sensitive information.

* feat(qqbot): update response timeout

* feat(qqbot): add engine import boundary test and bump version

- Add engine-import-boundary.test.ts to enforce that engine/ sources
  only import from openclaw/plugin-sdk/* and never reach into other
  openclaw internals directly. Scans all 110 source files recursively.
- Bump plugin version to 2026.4.27.

* fix(qqbot): unify slash command auth, c2cOnly gating, and file delivery (#73616) (thanks @cxyhhhhh)

---------

Co-authored-by: sliverp <870080352@qq.com>
2026-04-30 16:12:39 +08:00
Vincent Koc
f31311d104 fix(security): align QQBot log sanitizer with CodeQL
Aligns QQBot debug log newline removal with the CodeQL js/log-injection sanitizer model to close alert 232.
2026-04-30 01:10:26 -07:00
YueZhang
1e20babcf7 fix(memory-lancedb): get memory records through ltm list command (#67952)
* fix(mem-lancedb): get memory records through ltm list command

* code review

---------

Co-authored-by: zhangyue19921010 <zhangyue.1010@bytedance.com>
2026-04-30 16:01:51 +08:00
Vincent Koc
77f904d35c fix(security): emit QQBot debug logs as sanitized lines
Emits QQBot debug logs as CRLF-neutralized lines to remediate CodeQL alert 231.
2026-04-30 00:49:38 -07:00
JC
83753535eb fix(pdf): resolve standard fonts from pdfjs package root (#70936)
* fix(pdf): resolve standard fonts from pdfjs package root

Resolve PDF.js standard fonts via pdfjs-dist/package.json instead of a
relative ../../node_modules path so the fallback renderer does not depend
on emitted dist chunk layout.

Add focused regression coverage that asserts the forwarded
standardFontDataUrl matches the installed pdfjs-dist package root and
exists on disk.

* fix(pdf): resolve pdfjs standard fonts from package root

* fix(pdf): use PDF.js font URL separator

---------

Co-authored-by: Dr JCai <jingxiao.cai@gmail.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-30 00:38:48 -07:00
Vincent Koc
2d748e4ac1 fix(security): sanitize QQBot debug log values
Sanitizes QQBot debug log values to remediate CodeQL alert 230.
2026-04-30 00:37:05 -07:00
clawsweeper[bot]
fbc145440f fix(slack): offset presentation controls after native blocks
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 23:15:19 -07:00
clawsweeper[bot]
1a9763f578 fix(google): accept Windows ADC manifest paths
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:26:09 -07:00
clawsweeper[bot]
9189b16c1c fix(bedrock): expose Opus 4.7 max thinking
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:25:58 -07:00
clawsweeper[bot]
ebf05be742 fix(slack): preserve mixed interactive blocks
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:25:38 -07:00
clawsweeper[bot]
c6c518e6e9 fix(slack): cap select option values
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:25:29 -07:00