Commit Graph

19174 Commits

Author SHA1 Message Date
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