Commit Graph

15697 Commits

Author SHA1 Message Date
Peter Steinberger
4a05a087a1 refactor(config): retire flat streaming keys from the last six channel schemas via doctor migration (#105709)
* refactor(config): retire flat streaming keys from the last six channel schemas

signal, irc, nextcloud-talk, whatsapp, googlechat, and mattermost now accept
only the nested streaming.{chunkMode,block.enabled,block.coalesce} shape
(mattermost also drops scalar/boolean streaming); flat spellings migrate via
each channel's defineChannelAliasMigration doctor contract with root seeding
for their wholesale-replace account merges.

* feat(channels): warn once per key when the deprecated flat streaming fallback is used

Bundled schemas now reject the flat delivery keys, so the streaming.ts
fallback only serves external SDK plugin configs; emit a once-per-process
per-key subsystem warning and pin the removal plan to the next release train.

* chore(config): regenerate bundled channel config metadata for nested-only streaming

* docs: describe nested-only channel streaming config and the SDK flat-key deprecation window

* fix(whatsapp): seed migrated named-account streaming from the accounts.default layer

WhatsApp resolution layers accounts.default shared config between root and
named accounts, so doctor-materialized account streaming objects now inherit
default-account settings over root ones; mattermost schema test moves to the
nested-only shape with explicit rejection coverage; scope flat-key deprecation
notes to the pending Matrix/Feishu migrations.

* fix(whatsapp): resolve the default account case-insensitively when seeding migrated streaming

* chore(plugin-sdk): repin API baseline for nested-only channel streaming types
2026-07-12 15:27:28 -07:00
Alix-007
7c72fef247 fix(signal): add timeouts to container REST requests (#104122)
* fix(signal): add timeouts to container REST requests

* fix(signal): use idle timeouts for container response bodies

* fix(signal): remove redundant timeout release

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-07-12 16:59:14 -04:00
Vincent Koc
c25cd32c28 refactor(plugins): trim private helper exports (#105687) 2026-07-12 22:26:14 +02:00
qingminlong
bf642ef287 fix(signal): surface daemon errors split across output chunks (#104152)
* fix(signal): preserve daemon log lines across chunks

* test(signal): cover split utf-8 daemon output

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 13:02:40 -07:00
yourslewis
9ee9f3e544 fix(slack): prevent duplicate reply controls (#101474)
* fix(slack): dedupe mirrored reply controls

Co-authored-by: yourslewis <5415708+yourslewis@users.noreply.github.com>
Co-authored-by: Chloe <chloe@openclaw.ai>

* fix(slack): avoid spread in control row keys

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: yourslewis <5415708+yourslewis@users.noreply.github.com>
Co-authored-by: Chloe <chloe@openclaw.ai>
2026-07-12 13:01:31 -07:00
Peter Steinberger
5ab07fde4a fix(openai): preserve authored openai-completions through provider normalization (#105539) 2026-07-12 12:37:33 -07:00
Peter Steinberger
6556d1d173 refactor(config): declarative doctor alias-migration DSL with inheritance-aware account seeding (#105636)
* fix(config): seed inherited root streaming into doctor-materialized account streaming objects

* feat(plugin-sdk): add defineChannelAliasMigration doctor alias-migration DSL

* refactor(plugins): migrate channel doctor contracts onto the alias-migration DSL

* refactor(config): drop the prod-unused offMode legacy notice option

* fix(config): make account streaming seeding opt-in for wholesale-replace channels

* test(imessage): keep account streaming account-local for deep-merge runtime
2026-07-12 12:28:42 -07:00
Eden
5fd7b5c40a fix(line): skip confirm/buttons templates with blank required fields (#105520)
* fix(line): skip confirm/buttons templates with blank required fields

* test(line): cover surrounding-text preservation when skipping blank directives

* fix(line): omit optional blank button titles

Co-authored-by: 許元豪 <146086744+edenfunf@users.noreply.github.com>

* fix(line): reject blank button action labels

Co-authored-by: 許元豪 <146086744+edenfunf@users.noreply.github.com>

* docs(changelog): note LINE template fix

Co-authored-by: 許元豪 <146086744+edenfunf@users.noreply.github.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 12:25:52 -07:00
zw-xysk
71accce06a fix(slack): keep dm metadata reads read-only (#103468)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: zw-xysk <zw-xysk@users.noreply.github.com>
2026-07-12 12:18:50 -07:00
qingminlong
8a595dafe4 fix(matrix): preserve UTF-8 bootstrap output tails (#105475)
* fix(matrix): preserve UTF-8 in bootstrap output tails

* fix(matrix): satisfy deps output tail types

* docs(changelog): note Matrix UTF-8 tail fix

Co-authored-by: qingminlong <0668001063@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 12:12:55 -07:00
Peter Steinberger
74e42892b6 fix: delay narrated channel progress and remove default title (#105607)
* fix(channels): delay narrated progress drafts

* chore: keep release changelog unchanged
2026-07-12 12:06:38 -07:00
Peter Steinberger
619a68e97e fix(qa): repair agentic runtime parity mocks (#105500)
* fix(qa): repair agentic runtime parity mocks

* fix(qa): scope terminal media parity evidence

* fix(qa): require one image call for media fallback

* fix(qa): bind terminal media proof to image step

* fix(qa): require image capture agreement

* fix(qa): allow skipped parity steps
2026-07-12 19:53:05 +02:00
dwc1997
2ebf0422db fix(discord): keep realtime partial transcript tail UTF-16 safe (#104896)
* fix(discord): keep realtime partial transcript tail UTF-16 safe

* refactor(discord): isolate realtime transcript merging

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 18:47:05 +01:00
Peter Steinberger
2d86d07f73 test(discord): verify identity probe deadline behavior (#105541)
* test(discord): verify identity probe deadline behavior

* test(discord): keep timeout rejection message agnostic
2026-07-12 18:33:50 +01:00
Marcus Castro
80d11f1246 refactor(whatsapp): use runtime context for connection controllers (#104949)
* refactor(whatsapp): replace connection controller registry

* fix(whatsapp): remove controller context import cycle
2026-07-12 14:22:57 -03:00
Marcus Castro
6787c2f653 refactor(whatsapp): reuse SDK dedupe cache (#104962) 2026-07-12 14:15:53 -03:00
Peter Steinberger
9ebf9a2e89 fix(qa-lab): tuple-narrow Slack progress markers in live test types
#103995 added mutate callbacks that destructure the marker array; under
indexed-access checking string[] elements are string | undefined, failing
check-test-types on main and every PR. The some() guard already proves all
three markers exist, so narrow to a tuple.
2026-07-12 10:01:43 -07:00
efrazer-oai
d09d200293 fix(slack): show commentary independently of tool progress (#103995)
* fix(slack): separate commentary progress from tools

* fix(slack): preserve legacy preamble defaults

* test(slack): add live commentary progress proof

* fix(slack): support scoped progress drafts

* test(slack): harden commentary progress proof

* test(slack): type commentary matrix cases

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 17:52:53 +01:00
Vincent Koc
7e52cbf234 refactor(memory): remove unused size classifier (#105526) 2026-07-12 18:39:52 +02:00
Vincent Koc
10853e82fd refactor(workspaces): remove unused migration helper (#105522) 2026-07-12 18:28:17 +02:00
Vincent Koc
007f714dca fix(openai): preserve image routing before catalog load (#105518)
* fix(openai): handle image providers without model catalogs

* test(openai): use exported config contract

* test(openai): model provider overlays before catalog load
2026-07-12 18:27:57 +02:00
Peter Steinberger
8573f9e016 test(msteams): align stream failure trace (#105509) 2026-07-12 17:19:03 +01:00
Alix-007
bfb4557c83 fix(discord): add timeouts to directory lookup requests (#104290) 2026-07-12 11:54:14 -04:00
Alix-007
2f3517c73f fix(qqbot): add timeout to remote media URL fetches (#103018)
* fix(qqbot): add timeout to remote media URL fetches

* fix(qqbot): use response header media timeout

---------

Co-authored-by: llagy009 <0668001470@xydigit.com>
2026-07-12 11:53:00 -04:00
Peter Steinberger
a24eab8488 fix(qa): read runtime parity transcripts from sqlite (#105495)
* fix(qa): read runtime parity transcripts from sqlite

* test(qa): track parity temp directories

* docs(agents): note PR head refresh sequence
2026-07-12 16:48:35 +01:00
Jesse Merhi
90008b081b fix(signal): preserve native quote replies from agent sends (#105347)
* fix(signal): persist native reply context

* fix(signal): retain implicit native reply context

* fix(signal): inherit current reply in message tool

* fix(signal): preserve implicit reply provenance

* fix(signal): match equivalent reply targets

* test(signal): narrow threading context

* fix(signal): retain effective reply mode

* fix(signal): preserve explicit reply provenance

* fix(signal): carry reply provenance

* fix(signal): retain reply context on no-op merge

* fix(signal): honor disabled implicit replies

* fix(signal): keep reply policy plugin-local

* docs(changelog): note Signal native quote replies
2026-07-13 01:41:20 +10:00
Peter Steinberger
30cc87a8a6 test(qa): model Codex compaction in parity mock (#105493)
* test(qa): model codex compaction in parity mock

* docs(agents): record gh branch lookup syntax
2026-07-12 16:37:39 +01:00
Alix-007
20f19d8d5c fix(minimax): apply request policy to media generation requests (#102072)
* fix(minimax): apply request policy to media generation requests

* fix(minimax): include image request policy

* fix(minimax): apply request policy to follow-up media fetches

* fix(minimax): preserve retries for guarded media fetches
2026-07-12 11:29:57 -04:00
Peter Steinberger
3b0d3574e3 fix(qa): keep mock memory embeddings offline (#105488) 2026-07-12 16:28:46 +01:00
Vincent Koc
e313a2431c refactor(brave): remove obsolete testing alias (#105486) 2026-07-12 17:16:47 +02:00
Alix-007
bbac74685d fix(dashscope): apply request policy to video requests (#102094)
* fix(dashscope): apply request policy to video requests

* fix(dashscope): apply request policy to task follow-ups
2026-07-12 11:11:15 -04:00
Vincent Koc
761839343a refactor(tencent): localize preview model reference (#105482) 2026-07-12 17:03:26 +02:00
Galin Iliev
787ed383f5 fix: Microsoft Teams streaming keeps chunk after whitespace collapse (#102357)
* fix(msteams): preserve streaming delta after whitespace collapse

* fix(msteams): clear stale stream text on rewrite fallback

* test(msteams): update delivery trace stream mock

---------

Co-authored-by: Peter Steinberger <steipete@openai.com>
2026-07-12 08:01:19 -07:00
Vincent Koc
3d1f5ffd54 refactor(voice-call): retire runtime config compatibility (#105476)
* refactor(voice-call): rename config migration module

* refactor(voice-call): retire runtime config compatibility
2026-07-12 16:47:40 +02:00
Vincent Koc
551e484598 refactor(clawrouter): localize default base URL (#105474) 2026-07-12 16:47:15 +02:00
Peter Steinberger
a97300bad8 fix(qa): preserve Codex mock routing (#105444)
* fix(qa): preserve Codex mock routing

* fix(qa): satisfy extension lint
2026-07-12 15:25:07 +01:00
NIO
92db88e36b fix(github-copilot): bound Copilot token exchange fetch timeout (#104488)
* fix(github-copilot): bound Copilot token exchange fetch timeout

* fix(github-copilot): harden token exchange deadline

Co-authored-by: hugenshen <hu.genshen@xydigit.com>

* chore: remove release-owned changelog entry

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 15:24:39 +01:00
Vincent Koc
79ca96cd66 refactor(nostr): centralize metrics state (#105408) 2026-07-12 16:22:02 +02:00
Peter Steinberger
7ca827eba2 fix(qa): align mock catalog with selected models (#105401)
* fix(qa): align mock catalog with selected models

* test(qa): verify selected refs reach mock server
2026-07-12 15:21:19 +01:00
Peter Steinberger
b16be75cf2 fix(whatsapp): preserve disconnect errors (#105399) 2026-07-12 15:17:34 +01:00
Peter Steinberger
5b2ae5df9d test(browser): align existing-session document mock (#105398)
* test(browser): align existing-session document mock

* test(browser): type document evaluator mock

* test(browser): type document evaluator mock
2026-07-12 15:16:46 +01:00
Vincent Koc
046bf2468d refactor(meta): remove unused stream helper export (#105443) 2026-07-12 16:09:01 +02:00
Vincent Koc
de5e15efc3 refactor(google-meet): remove obsolete Chrome testing alias (#105416) 2026-07-12 15:53:16 +02:00
Vincent Koc
8c236c320d refactor(transcription): remove obsolete testing aliases (#105406) 2026-07-12 15:43:24 +02:00
Vincent Koc
6f9a607b90 refactor(google): remove obsolete Gemini testing alias (#105400) 2026-07-12 15:36:04 +02:00
Vincent Koc
161525d43c refactor(cloudflare-ai-gateway): remove obsolete testing alias (#105394) 2026-07-12 15:27:41 +02:00
Michael Appel
dc6befc072 fix(browser): bind wait predicates to allowed documents (#101852)
* fix(browser): bind waits to allowed documents

Co-authored-by: Michael Appel <3399869+mmaps@users.noreply.github.com>

* fix(browser): guard document-bound wait predicates

Co-authored-by: Michael Appel <3399869+mmaps@users.noreply.github.com>

* fix(browser): satisfy wait guard gates

* test(browser): update lint suppression baseline

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 13:27:51 +01:00
Peter Steinberger
c6dc5bc764 fix(canvas): hosted pages fail on macOS with scoped Gateway auth (#105336)
* fix(canvas): harden hosted Canvas on macOS

Resolve Gateway-hosted Canvas and A2UI targets through refreshed node capabilities, keep bridge and live-reload behavior correct, and restrict native action dispatch to the exact trusted main-frame document.

Preserve scalar evaluation results, secure action IDs, and hidden state-directory watching.

Co-authored-by: GuoJiaming <804436395@qq.com>
Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: zeng-weihan <ceng.weihan@xydigit.com>

* chore(canvas): defer release note

* chore(canvas): refresh native i18n inventory

* refactor(canvas): isolate hosted surface resolution

---------

Co-authored-by: GuoJiaming <804436395@qq.com>
Co-authored-by: Lucenx9 <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: zeng-weihan <ceng.weihan@xydigit.com>
2026-07-12 13:02:27 +01:00
Vincent Koc
96aff2787d fix(qa): secure Crabline artifact handling 2026-07-12 13:58:30 +02:00
Peter Steinberger
81941f2d68 test: enable noUncheckedIndexedAccess for extension tests (#105343) 2026-07-12 12:48:22 +01:00