Peter Steinberger
dabba0ce10
fix(openrouter): apply image request transport policy ( #117336 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 03:32:37 -07:00
Peter Steinberger
aa2a5c96f6
feat(channels): record account lifecycle facts and retire inferred health vocabularies ( #117300 )
...
* fix(channels): record account lifecycle facts
* fix(channels): bound recorded lifecycle grace
* fix(channels): preserve authored health state
* test: dedupe health snapshot type literal and fix spread order
2026-08-01 02:51:47 -07:00
Peter Steinberger
3edbe19fbd
fix(canvas): remove unsupported snapshot delay hint ( #117326 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 02:44:22 -07:00
Peter Steinberger
060a541c92
fix(canvas): honor paired-node invocation deadlines ( #117316 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 02:40:19 -07:00
Peter Steinberger
f216d3cc86
refactor(memory): unify session ingestion ( #117293 )
2026-08-01 02:12:50 -07:00
Miorbnli
0d8b70f39e
fix(channels): strip internal tool text in Reef and Zalo Personal ( #112621 )
2026-08-01 02:10:19 -07:00
Peter Steinberger
b721cffa44
fix(inference): simplify lifecycle and preserve Codex tool identity ( #117298 )
2026-08-01 02:05:45 -07:00
Vincent Koc
71a09dcfe3
fix(codex): preserve app-server close diagnostics ( #117296 )
2026-08-01 17:01:42 +08:00
Harjoth Khara
41051fe37c
fix(imessage): keep fenced role-marker mapping keys out of the outbound stripper ( #117159 )
...
* fix(imessage): stop the outbound sanitizer deleting fenced role keys
sanitizeOutboundText strips standalone `user:`/`system:`/`assistant:`
lines (leaked turn boundaries), `#+#` separators and `assistant to=`
markers, but the three regexes had no code-fence awareness. A bare YAML
mapping key like `user:` on its own line inside a ```yaml block matched
ROLE_TURN_MARKER_RE and was silently deleted before iMessage delivery,
reparenting its children under the wrong node — still-valid YAML, wrong
meaning, and nothing signalling a line was removed.
Skip matches whose offset falls inside a markdown code region for all
three patterns, reusing findCodeRegions/isInsideCode already applied by
the sibling reflection-guard on this channel. Regions are recomputed per
pass because each strip shifts later offsets. Leaked markers in prose are
still stripped.
Refs: #116942
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* test(imessage): cover code-aware marker stripping
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 16:52:47 +08:00
DaigoSoup
75830f027a
fix(synology-chat): deliver long messages without webhook rejection ( #116645 )
...
* fix(synology-chat): chunk long messages before webhook delivery
* test(synology-chat): expose chunk limit in channel mock
2026-08-01 01:51:52 -07:00
Peter Steinberger
b0b708d919
fix(canvas): emit successful control results in JSON mode ( #117297 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 01:28:41 -07:00
Peter Steinberger
338a7ccb2f
fix(imessage): settle native inbound reply delivery ( #117282 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 01:24:05 -07:00
Peter Steinberger
8b7fad18ec
fix(line): centralize card and template message alt text ( #117280 )
...
* fix(line): unify card and template alternative text limits
* test(line): use synchronous provider request listener
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 01:17:34 -07:00
Peter Steinberger
870c6b240e
fix(media): validate provider-owned generated media downloads ( #117281 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 01:05:44 -07:00
Peter Steinberger
a1f2fb45bc
fix(feishu): restore custom HTTPS API domains ( #117278 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 01:00:09 -07:00
Peter Steinberger
04f9a204fd
fix(memory): reuse targeted session corpus snapshot ( #117247 )
2026-08-01 00:53:14 -07:00
joshavant
07b7d6446c
fix(matrix): reconcile durable sends after response loss
2026-08-01 02:45:12 -05:00
Vincent Koc
f5a8cb02ea
test(release): repair full validation regressions ( #116931 )
...
* test(discord): mock thread delete listener
* test(qa): expect blocked update evidence
* test(telegram): preserve recovered context body
* fix(test): configure kitchen-sink personality
* test(browser): expect canonical staged upload paths
* test(browser): canonicalize macOS download roots
* test(feishu): seed legacy session rows offline
* test(telegram): isolate message context session stores
* test(qqbot): expect canonical media paths
* test(anthropic): match canonical transcript paths
* test(qa): expect canonical session store keys
* test(gateway): isolate rewind media reads
* test(release): review plugin child spawns
* test(plugins): expect process-stable manifest metadata
* test(google): retire usage telemetry contracts
2026-08-01 15:42:50 +08:00
wahaha1223
dccb1b9013
fix(linux-canvas): report socket watcher fallback ( #109502 )
2026-08-01 00:36:15 -07:00
Vincent Koc
754dcb8b2f
merge: preserve verified completion handoff series ( #117148 )
...
* commit '619682ed010f4e6c56c73feb4948fd7265083e10':
fix(agents): bind completion messages to source
fix(agents): mint completion delivery grant
fix(agents): retain tools for direct completion delivery
fix(agents): integrate verified completion delivery
test(codex): use typed completion handoff fixture
fix(agents): verify completion tool handoffs
2026-08-01 15:35:41 +08:00
Peter Steinberger
378d4ff938
fix(codex): preserve authoritative turn completion ( #117185 )
...
Retain terminal and assistant-completion facts when pre-start notifications exceed the bounded buffer. Exclude commentary from replies, accept legacy unphased final messages, and let completed terminal items own the final answer while rejecting interrupted, failed, or non-terminal outcomes.
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com >
2026-08-01 15:34:30 +08:00
Ayaan Gazali
11069c3df5
fix(channels): config validation rejects documented channels.<id>.configWrites on 13 channels ( #117206 )
2026-08-01 15:33:16 +08:00
Ahmed Tarek
730cf56915
fix(msteams): prevent duplicate final replies ( #116398 )
...
* fix(msteams): preserve message-tool thread routing
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* test(msteams): prove thread-aware final dedupe
* fix(agents): suppress duplicate source previews
* fix(agents): dedupe current-source reply previews
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 15:32:56 +08:00
Peter Steinberger
edfeec49e7
refactor(channels): centralize progress draft events ( #117269 )
2026-08-01 00:26:56 -07:00
Peter Steinberger
7aacd1314d
fix(slack): recover bot identity after transient auth.test failure ( #117253 )
...
* fix(slack): recover bot identity after transient auth.test failure
* docs(slack): document identity selection invariant
* fix(slack): resolve startup auth fetch through plugin runtime
2026-08-01 00:23:03 -07:00
Peter Steinberger
08fc4f5a06
fix(telegram): hide disabled send actions from discovery ( #117241 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 00:15:17 -07:00
Peter Steinberger
8ed6c98b08
fix(whatsapp): reuse hydrated group participant metadata ( #117234 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 00:11:34 -07:00
Peter Steinberger
1f130ce61d
fix(whatsapp): normalize provider self-echo identities ( #117228 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-01 00:08:28 -07:00
Peter Steinberger
ee320a6e41
fix(imessage): preserve outbound attachment delivery facts ( #117238 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 23:36:48 -07:00
Peter Steinberger
51c41c25c8
fix(minimax): validate complete generated audio at producer owners ( #117195 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 23:29:50 -07:00
Peter Steinberger
0a146d5a18
fix(line): centralize Flex alternative-text bounds ( #117217 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 23:23:52 -07:00
Peter Steinberger
ad3e36ef33
fix(feishu): unify outbound delivery lifecycle ( #117223 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 23:16:04 -07:00
Yuval Dinodia
2364078063
fix(clickclack): thread replies stop being answered past the 100-reply thread window ( #117225 )
...
* fix(clickclack): answer thread replies past the server thread-reply window
Thread replies stopped being answered once a ClickClack thread passed 100
replies, with no reply, no transcript entry, no gateway warning, and no
replay after reconnect.
The gateway resolved a thread.reply_created event by fetching the whole
thread and searching its reply list. The ClickClack thread endpoint caps
that response at 100 earliest replies by default, so reply 101 was absent,
the lookup returned null, and the event was treated as handled while the
websocket cursor advanced past it. A DM thread reply was worse: it hit the
DM branch first, and thread replies never appear in the root DM timeline
that branch pages, so every DM thread reply was dropped.
Resolve the event's own message_id through the authoritative single-message
endpoint the plugin already uses, which collapses the three window
heuristics into one canonical path. Transient failures still propagate so
reconnect replays them; only a 404 resolves to unreadable, and that now
records an operator warning instead of counting as a handled event.
* test(clickclack): harden reply recovery proof
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 14:10:47 +08:00
Vincent Koc
6922ddd936
fix(qa): isolate runner discovery facades ( #117203 )
2026-08-01 13:40:11 +08:00
Dallin Romney
bcff3a0de3
fix(qa): bind Codex auth fixture to runtime version ( #116859 )
...
* fix(qa): update Codex auth fixture protocol version
* test(qa): bind Codex auth fixture to runtime version
* test(qa): load Codex fixture version through public surface
2026-08-01 13:36:31 +08:00
Vincent Koc
fd995d6f78
test(openai): isolate gateway audio pipeline proof
2026-08-01 13:32:17 +08:00
Dallin Romney
947886e764
fix(qa): align release harness contracts ( #116812 )
2026-08-01 13:24:10 +08:00
Dallin Romney
8b1a9ccaa4
fix(voice-call): preserve tool invocation context ( #116856 )
...
* fix(voice-call): preserve tool invocation context
* fix(voice-call): trust requester tool context
* style(voice-call): format invocation context test
2026-08-01 13:23:24 +08:00
Vincent Koc
2dbdf4f4ba
fix(openai): unify gateway microphone buffering
2026-08-01 13:21:25 +08:00
Peter Steinberger
c6b3680ecf
fix(openai): preserve gateway microphone startup audio
2026-08-01 13:20:41 +08:00
Dallin Romney
2261a9c5b4
test(qa): align fanout catalog with public evidence ( #117202 )
2026-08-01 13:07:18 +08:00
Dallin Romney
40f0847fc3
fix(qa): isolate Slack MPIM dedupe proof ( #116843 )
2026-08-01 12:56:10 +08:00
Dallin Romney
f58570cb8c
fix(qa): stabilize Slack progress and table proofs ( #116847 )
...
* fix(qa): stabilize Slack progress and table proofs
* fix(qa): type Slack invalid-blocks instrumentation
2026-08-01 12:55:39 +08:00
Dallin Romney
bf32414a4a
fix(qa): keep memory context proof on the QA channel ( #116849 )
...
* fix(qa): correct memory and Codex watchdog contracts
* test(qa): keep channel assertion in channel catalog
2026-08-01 12:53:00 +08:00
Vincent Koc
f90f0b1a7b
test(codex): use typed completion handoff fixture
2026-08-01 12:47:05 +08:00
Vincent Koc
1b3572d08b
Merge pull request #117201 from openclaw/fix/voice-call-provider-state-cleanup
...
fix(voice-call): release terminal provider state
2026-08-01 12:36:02 +08:00
Peter Steinberger
121a862105
fix(whatsapp): preserve accepted delivery across failures ( #117198 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 21:31:06 -07:00
Peter Steinberger
cb16d739cf
fix(inference): harden Codex streaming, cancellation, and live QA ( #116012 )
...
* fix(inference): harden Codex turns, streams, and live QA
* fix(inference): dispatch open CR-delimited response frames
* fix(inference): finish live goal and split streaming regressions
* fix(codex): wait for interrupted turn completion
* fix(codex): narrow terminal collector notification ownership
* fix(inference): harden completion authority and lifecycle
* fix(inference): use canonical source delivery contract
* test(inference): align lifecycle probes with current main
* style(inference): format source delivery verification
* fix(goals): prevent premature completion across staged work
* fix(qa): settle streamed goal turns before continuation
* fix(goals): require visible replies after goal completion
* test(qa): keep goal flow regressions within lint limits
2026-07-31 21:29:33 -07:00
xingzhou
8f8b23ff2c
fix(voice-call): reject malformed UTF-8 provider JSON ( #114267 )
2026-07-31 21:13:42 -07:00
Peter Steinberger
ba81a26db6
fix(imessage): preserve attachment filenames and bound recovery clocks ( #117197 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 21:12:24 -07:00