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