Commit Graph

15713 Commits

Author SHA1 Message Date
Vincent Koc
f26793ca54 refactor(qa-lab): trim process metric parser exports (#105891) 2026-07-13 10:42:29 +08:00
Peter Steinberger
c3ee86a068 refactor(browser): localize internal support types (#105839) 2026-07-12 18:59:01 -07:00
Peter Steinberger
024b7d5aa8 refactor(pairing): store channel pairing state in SQLite (#105802)
* refactor(pairing): move channel state to SQLite

* fix(pairing): preserve doctor and SDK contracts

* fix(pairing): break SQLite storage import cycle

* fix(pairing): keep SQLite types outside SDK graph
2026-07-12 18:53:38 -07:00
Peter Steinberger
cba79b4aaa fix(slack): suppress room event typing indicators (#105813)
* fix(slack): suppress room event typing indicators

* fix(slack): suppress room event typing indicators
2026-07-12 18:41:49 -07:00
Peter Steinberger
3613b83c6c refactor(browser): trim private Playwright exports (#105794)
* refactor(browser): trim private Playwright exports

* chore(deadcode): refresh export baseline

* chore(deadcode): refresh current baseline

* chore(deadcode): refresh latest baseline
2026-07-12 18:30:34 -07:00
qingminlong
60ca7565a7 fix(discord): omit invalid component accent colors (#105387)
* fix(discord): omit invalid component accent colors

* test(discord): cover accent color boundaries

* docs: keep release notes in PR context

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 18:25:49 -07:00
Peter Steinberger
a63aec8bf8 test: remove more avoidable waits (#105816) 2026-07-12 18:24:13 -07:00
NIO
c93f87756a fix(qqbot): reject unsafe mention patterns (#102976)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 18:14:01 -07:00
Peter Steinberger
774d5249cc test: eliminate unchecked TypeScript casts (#105804) 2026-07-12 18:08:26 -07:00
Vincent Koc
6c88469110 refactor(msteams): remove obsolete sso invoke stack (#105799) 2026-07-13 08:59:08 +08:00
Peter Steinberger
fe0a6db2b4 fix(slack): warn on disabled channel drops (#105790) 2026-07-12 17:50:14 -07:00
chengzhichao-xydt
cacd435632 fix(tlon): bound stalled inbound and outbound media header waits (#104132)
* fix(tlon): bound stalled inbound and outbound media header waits

* refactor(tlon): share media fetch timeout policy

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 17:30:35 -07:00
Vincent Koc
01501f717a refactor(nostr): trim private test seams (#105756) 2026-07-13 08:03:54 +08:00
Peter Steinberger
f87492539b test(whatsapp): initialize runtime in auto-reply harness (#105760) 2026-07-12 16:50:55 -07:00
evan-YM
45e681deac fix(slack): guard matchesSlackDeliveryMetadataSignature against UTF-8/UTF-16 length mismatch (#105492)
* [AI] fix(slack): guard matchesSlackDeliveryMetadataSignature against UTF-8/UTF-16 length mismatch

Compare Buffer byte lengths instead of JS string lengths (UTF-16 code
units) so multi-byte characters in the stored signature never produce
mismatched Buffer sizes that would cause timingSafeEqual to throw
TypeError and crash the message reconciliation loop.

Related to #105436

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

* test(slack): prove malformed delivery signature recovery

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 16:44:52 -07:00
Marcus Castro
0ff416161f refactor(whatsapp): reuse SDK normalization helpers (#105580) 2026-07-12 20:04:18 -03:00
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