Commit Graph

18297 Commits

Author SHA1 Message Date
Shakker f4e332a72e fix: tighten Buzz mention disambiguation 2026-08-02 10:30:32 +01:00
Shakker 6d7e371b0e perf: keep Buzz plain sends on the fast path 2026-08-02 10:30:32 +01:00
Shakker fe6960342f fix: reject unresolved Buzz mention text 2026-08-02 10:30:32 +01:00
Shakker 4c6e1f0d4c fix: resolve non-ASCII Buzz member mentions 2026-08-02 10:30:32 +01:00
Shakker c8d5d8ea34 fix: satisfy strict Buzz mention resolution 2026-08-02 10:30:32 +01:00
Shakker 0ee44d551a feat: guide Buzz room targeting and mentions 2026-08-02 10:30:32 +01:00
Shakker 12b924c4d0 test: cover Buzz mention boundaries 2026-08-02 10:30:32 +01:00
Shakker 09bdcf3eb1 fix: resolve Buzz mentions on reply delivery 2026-08-02 10:30:32 +01:00
Shakker 8fb9dcd54e feat: emit native Buzz mention tags 2026-08-02 10:30:32 +01:00
Shakker c4d355133f feat: resolve Buzz room member mentions 2026-08-02 10:30:31 +01:00
Dallin Romney af77477a2a fix(qa): generated-image evidence waits despite successful delivery (#117799)
* fix(qa): observe generated images from outbound media

* fix(qa): preserve generated image producer evidence
2026-08-02 17:24:35 +08:00
Dallin Romney 652b0b96e2 qa: deduplicate producer and fallback evidence (#117806) 2026-08-02 17:20:32 +08:00
clawsweeper[bot] c8688051ed fix(whatsapp): log terminal inbound media failures (#117717)
* fix(whatsapp): log terminal inbound media failures

* fix(whatsapp): log terminal inbound media failures

* fix(whatsapp): surface media enrichment failures

* test(whatsapp): preserve caught media errors

---------

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 17:13:16 +08:00
Peter Steinberger d6aafb3dfc refactor(whatsapp): split inbox lifecycle coverage (#117910)
* test(whatsapp): split inbox lifecycle coverage

* test(whatsapp): import metadata cache type
2026-08-02 02:09:47 -07:00
Peter Steinberger 0138f5b5e3 fix: stop lost cancellations, false success, and stuck Codex compaction (#117902)
* fix(inference): preserve cancellation, lifecycle, and Codex completion ownership

* test(qa): settle visible replies on the active channel transport
2026-08-02 02:03:57 -07:00
Peter Steinberger a154b4faea refactor: consolidate Teams and error helpers (#117907) 2026-08-02 02:02:17 -07:00
zengLingbiao 83c6a51b0e fix(msteams): cancel unread Graph error response bodies (#117664)
* fix(msteams): cancel unread Graph error response bodies

* fix(msteams): release every guarded Graph response safely

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-02 17:01:30 +08:00
Yuval Dinodia 86c3486721 fix(imessage): rewind the recovery cursor when chat.db is replaced at the same path (#117788)
* fix(imessage): rewind the recovery cursor when chat.db is replaced at the same path

A restored, rebuilt, or symlink-retargeted chat.db keeps the configured
pathname, so it keeps the same recovery-cursor identity while its rowid
sequence restarts far below the persisted high-water. Startup then seeded
since_rowid with the stale value and imsg, which emits only rows above it,
suppressed every inbound message in the replacement database, including
messages arriving after the restart.

loadIMessageRecoveryCursor now takes the startup watermark and reconciles
the stored cursor against it. A cursor above the database's current
MAX(ROWID) cannot belong to the file now at that path, so the persisted
high-water rewinds to the new watermark and the monitor tails the
replacement database instead of skipping it.

* fix(imessage): rewind the recovery cursor for an empty rebuilt chat.db

A successful MAX(ROWID) on an empty message table yields null, the same value the watermark read returns for an unreadable database, so an empty rebuilt chat.db kept the stale high-water and suppressed its first rows. Return 0 for a readable empty table and keep null for an unavailable one.

* fix(imessage): preserve first row during empty database startup

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-02 17:00:01 +08:00
Peter Steinberger f599ff520d feat(browser): relay CDP compat for Puppeteer clients (chrome-devtools-mcp) (#117915)
* feat(browser): relay CDP compat for Puppeteer clients

Answer Target.getBrowserContexts with the always-empty context list so
puppeteer.connect() (chrome-devtools-mcp) can drive the paired Chrome
through the extension relay without the remote-debugging prompt. Serve
DevTools-style /json/list descriptors (id + type), which also makes the
HTTP tab-list fallback see extension-profile tabs, and add
`openclaw browser extension cdp` to print the relay endpoint and auth
header for external CDP clients.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(browser): avoid map-spread in relay target descriptors

oxc(no-map-spread): build the /json/list descriptor object explicitly
instead of spreading RelayTabInfo inside map().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-02 01:59:44 -07:00
Vincent Koc fcaa9d4842 Merge pull request #117896 from openclaw/fix/google-realtime-tool-ownership-20260802 2026-08-02 16:40:44 +08:00
Peter Steinberger f5c985d92c fix(memory): remove interrupted Dreaming sessions after Gateway restart (#117885)
* fix(memory): clean interrupted Dreaming sessions after Gateway restart

* test(sessions): preserve historical timestamps in lifecycle fixtures

* test(plugins): remove duplicate registry handle mock from main

* style(sessions): format lifecycle conformance assertion
2026-08-02 01:17:31 -07:00
Vincent Koc 5be95ad4ba fix(google): bound native realtime tool ownership 2026-08-02 15:59:47 +08:00
Vincent Koc b620caabcb Merge pull request #117490 from codex/qa402-google-live-session-activation-deadline
fix(google): honor Gemini Live new-session activation deadlines
2026-08-02 15:50:02 +08:00
Peter Steinberger 1e9a620a28 refactor(gateway): remove deferred channel load flag; 503 plugin routes until runtime ready (#117852)
* refactor(gateway): remove deferred channel load flag; 503 plugin routes until runtime ready

* test(agents): make setup middleware load intent explicit

* test(gateway): pin webhook startup routing outside SPA
2026-08-02 00:36:21 -07:00
Peter Steinberger ac28f4d558 fix: release channel delivery resources reliably (#117855)
* fix(channels): consolidate delivery lifecycle ownership

* test(msteams): match release mock contract

* test(plugin-sdk): satisfy promise executor lint

* chore(plugin-sdk): regenerate API baseline for delivery-correlation + fetch-runtime exports
2026-08-02 00:24:47 -07:00
Peter Steinberger dc38411ca4 test: consolidate WhatsApp monitor suites (#117854)
* test: consolidate WhatsApp monitor suites

* test: preserve WhatsApp max-lines ratchet path
2026-08-02 00:20:17 -07:00
wangyan2026 70394e190c [AI] fix(line): downgrade row-overflow tables to ordered bullet text (#117481)
Add tableRowCap() pre-check before Flex conversion so row-overflow
tables route through formatOversizedTableAsBullets() + segments instead
of being silently truncated by the renderer's slice(0,10/12).

- tableHasInlineMarkup() reuses renderTableCell's canonical hasMarkup
- processLineMessage checks row count before convertTableToFlexBubble
- convertTableToFlexBubble shares tableHasInlineMarkup for layout decision
- Delivery-boundary tests in auto-reply-delivery.test.ts
- Runtime artifact tests with LINE SDK provider-facing proof

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 00:11:23 -07:00
Peter Steinberger 7068bc2ffe fix(telegram): serialize approval ingress sessions (#117861)
* fix(telegram): serialize approval ingress sessions

* fix(telegram): narrow approval session tuples

* fix(ingress): return lane reconciliation result

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 23:57:31 -07:00
Peter Steinberger 523907b5ec fix(telegram): retain every message in multipart delivery receipts (#117863) 2026-08-01 23:37:41 -07:00
Peter Steinberger 131b9e3904 refactor(voice): share realtime session lifecycle (#117865)
* refactor(voice): share realtime session lifecycle

* test(voice): normalize abort rejection
2026-08-01 23:35:57 -07:00
Peter Steinberger f7ddcdbf26 refactor: consolidate standard raw-event ingress monitors (#117859)
* refactor(ingress): consolidate standard raw-event monitors

* fix(ingress): preserve monitor callback typing

* fix(ingress): keep standard profile within line limits

* chore(plugin-sdk): regenerate API baseline for shared ingress profile
2026-08-01 23:32:28 -07:00
Peter Steinberger 996b1e1e86 refactor(plugins): remove oauth pass-through wrappers (#117867) 2026-08-01 23:28:59 -07:00
Peter Steinberger 7c6c512759 fix(zalo): surface delivery failures and preserve accepted receipts (#117864) 2026-08-01 23:23:26 -07:00
Peter Steinberger 0d13becf73 fix(zalouser): propagate delivery failures and preserve partial receipts (#117860) 2026-08-01 23:19:47 -07:00
Peter Steinberger e7f1202bbb refactor(whatsapp): consolidate QA message extraction (#117836) 2026-08-01 23:18:09 -07:00
clawsweeper[bot] 749226265c fix(whatsapp): preserve source direction for automatic reactions (#117697)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-01 23:16:08 -07:00
NIO df8cc5a458 fix(tlon): cancel unread channel-ops and SSE connect bodies (#111275)
* fix(tlon): cancel unread channel-ops and SSE connect bodies

* fix(tlon): own guarded response cleanup across transports

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-01 23:09:51 -07:00
Peter Steinberger 8ae21a6ae5 refactor(approvals): share native channel factory routing (#117811)
* refactor(approvals): share native channel factory routing

* fix(approvals): pin routed factory target types

* refactor(approvals): isolate forwarding factory entrypoint

* refactor(plugin-sdk): rename flat approval params type; budget +1 for routed approval factory

* chore(plugin-sdk): regenerate API baseline for routed approval factory

* fix(channels): bind approval authorizer references for lint
2026-08-01 23:08:36 -07:00
Peter Steinberger d1372b9abd test(telegram): consolidate inbound cache fixtures (#117844) 2026-08-01 23:07:53 -07:00
Peter Steinberger a9662914b0 fix(telegram): reject unauthorized command media before any download (#117821)
* fix(telegram): reject unauthorized command media before download

* fix(telegram): reject all unauthorized command media before download
2026-08-01 23:00:25 -07:00
Jiatai Wang bacc5071db fix(msteams): rename SharePoint uploads on name conflict (#113560)
Bot-generated files reuse names (openclaw runtime emits image-1.png every
generation), so Graph's default conflictBehavior=replace overwrote the prior
same-named driveItem in place. Because Teams caches file cards by driveItem
URL, channels kept showing the stale file and earlier content was lost from
OpenClawShared.

Force @microsoft.graph.conflictBehavior=rename on the simple upload so
SharePoint mints a uniquely-named driveItem (fresh name/eTag/URL) on
collision. The existing getDriveItemProperties re-read by item id already
surfaces the new name/URL to the Teams file card, so no downstream change is
needed.

Closes #112368

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 22:59:44 -07:00
Peter Steinberger de6bd7d1bc fix(copilot): prevent invalid Claude tool IDs from causing retries (#117789)
* fix(copilot): normalize Claude tool IDs before requests

* fix(copilot): preserve typed payload and stream contracts

* fix(copilot): preserve unique paired Anthropic tool IDs
2026-08-01 22:59:12 -07:00
Josh Avant b3a1d97ed7 fix(agents): scope harness preflight fallback (#117256)
* fix(agents): scope harness preflight fallback

* test(plugin-sdk): record scoped preflight contract

* test(agents): lock fallback approval boundary

* fix(agents): bind preflight scope to selected harness
2026-08-02 00:42:26 -05:00
Peter Steinberger 03c28795f8 fix(matrix): bot ignores valid plain-text room mentions (#117764)
* fix(matrix): recognize native plain-text room mentions

* fix(matrix): reject Unicode account-prefix mention spoofing

* fix(matrix): enforce complete native mention account boundaries

* fix(matrix): recognize full user ID command mentions
2026-08-01 22:18:56 -07:00
Peter Steinberger ddf54f264b refactor(qqbot): deduplicate outbound dispatch test fixtures (#117837)
* test(qqbot): deduplicate outbound dispatch fixtures

* test(qqbot): clarify outbound media fixture matrix

* test(qqbot): type outbound media delivery modes
2026-08-01 22:18:15 -07:00
Peter Steinberger 35a1777f68 refactor(providers): consolidate catalog setup helpers (#117824)
* refactor(providers): consolidate catalog setup helpers

* fix(huggingface): narrow discovered model entries
2026-08-01 22:17:52 -07:00
Peter Steinberger 72f1e2f97c test(memory-lancedb): consolidate plugin API fixtures (#117833) 2026-08-01 22:15:29 -07:00
Peter Steinberger 59a6abd065 test: consolidate embedded agent and channel suites (#117826)
* test: consolidate embedded agent and channel suites

* test: type reply reconciliation table rows

* test: preserve raw telegram config fixture
2026-08-01 22:14:32 -07:00
Peter Steinberger 846bef946d fix(channels): tighten probe and delivery lifecycles (#117812)
* fix(channels): tighten probe and delivery lifecycles

* test(zalo): type probe fetch mocks
2026-08-01 22:12:24 -07:00
Peter Steinberger ceb8a8b3a1 fix(telegram): preserve transient getFile responses when retrying media (#117798)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 22:11:26 -07:00