Commit Graph

17831 Commits

Author SHA1 Message Date
Peter Steinberger
82231b425b fix(qa-channel): isolate account evidence and exclude deleted messages (#116744)
* fix(qa): scope transport verdicts to visible account replies

* refactor(qa): remove obsolete outbound wait aliases

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 04:19:41 -07:00
Vincent Koc
775b958716 Merge pull request #87273 from BSG2000/fix/talk-openai-realtime-auth-diagnostic-pr
* commit '80a12e30c1e40cb4a49698cb9b556d74fb055174':
  fix(openai): bound realtime websocket auth errors
2026-07-31 19:16:38 +08:00
Peter Steinberger
4e4f76f151 fix(cli): make status and provider diagnostics complete (#116776)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 04:10:36 -07:00
Peter Steinberger
66d5410171 fix(browser): preserve tab-bound browser authorization (#116778)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:57:04 -07:00
Vincent Koc
6830820755 feat(plugins): externalize DuckDuckGo search (#116740) 2026-07-31 18:49:07 +08:00
BSG2000
80a12e30c1 fix(openai): bound realtime websocket auth errors 2026-07-31 18:45:12 +08:00
Peter Steinberger
873bcc2985 fix(irc): recognize punctuation in nickname mentions (#116758)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:21:31 -07:00
Peter Steinberger
402bd4af01 fix(whatsapp): keep sends running when typing presence fails (#116739)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:17:24 -07:00
Peter Steinberger
7ea4129227 fix(qa): authenticate summaries and bound native scenario commands (#116748)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:12:48 -07:00
Peter Steinberger
f9207db3ca fix(bedrock): reject truncated streams and preserve audio results (#116743)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:10:54 -07:00
Leon-SK668
86b1e26993 fix(ollama): resolve web search secret refs (#104829)
* fix(ollama): resolve web search secret refs

* fix(ollama): preserve blocked search secret refs

* fix(ollama): share web search credential policy

* fix(ollama): resolve web search secret refs via shared resolver

Route configured models.providers.ollama.apiKey resolution through the
existing shared resolveWebSearchProviderCredential helper so env-backed
SecretRefs resolve for web search, and resolve the ambient OLLAMA_API_KEY
independently of the configured selected-host key so mixed setups still
reach the Ollama Cloud fallback after both selected-host attempts fail
(regression fixed at web-search-provider.ts:195).

Drop the two optional plugin-SDK resolver hooks (provider normalization
and unavailable-configured-ref callback) added earlier: the fix does not
depend on them, so the shared resolver and its generated plugin-SDK
baseline stay identical to main and no new plugin-SDK contract surface is
introduced. Ollama applies its own non-secret-marker filter locally on
the resolver output instead.

Add a mixed-credential regression test (configured host key plus a
distinct ambient OLLAMA_API_KEY reaching the cloud fallback) and drop the
tests for the removed fail-closed-throw behavior.

* fix(ollama): fail closed on unavailable web search refs

* fix(web-search): resolve env shorthand secret refs

* docs(changelog): note Ollama web-search SecretRef fix

* chore(changelog): remove release-owned entry

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:57:47 +08:00
Peter Steinberger
3d0f02c223 fix(ollama): honor stop sequences and async payload hooks (#116737)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 02:57:31 -07:00
wahaha1223
a28219bcee fix(ollama): stop oversized stream records from growing memory (#107473)
* fix(ollama): bound pending NDJSON stream records

* chore(changelog): remove release-owned entry

---------

Co-authored-by: wangmiao0668000666 <wang.miao86@xydigit.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:57:01 +08:00
Vincent Koc
94c0f33f1f Merge pull request #116611 from openclaw/experiment/google-cli-supported-paths
fix(google): stop offering unsupported CLI setup
2026-07-31 17:48:18 +08:00
Peter Steinberger
0e1304d0de fix(llama-cpp): recover plaintext tool calls (#116736)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 02:45:32 -07:00
Peter Steinberger
1f578f0e65 fix(telegram): validate native queue arguments before fallback (#116726)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 02:45:15 -07:00
zw-xysk
d2b869eda7 fix(ollama): models advertise tools when /api/show fails (#109971)
* fix(ollama): do not advertise tools when /api/show fails

Failed show responses left capabilities undefined, which
buildOllamaModelDefinition treats as optimistic supportsTools.
Match setup inspect: return empty capabilities instead.

* test(ollama): cover show-fail tools gate including L3 live HTTP

Unit paths for HTTP error/throw plus real 127.0.0.1 server proving
buildOllamaProvider keeps supportsTools false when /api/show 500s.

* fix(ollama): keep reasoning heuristics when /api/show fails

Distinguish failed inspection from authoritative empty capabilities
so tools stay conservative without suppressing model-name reasoning.

* test(ollama): cover three capability states for tools and reasoning

Failed show keeps reasoning heuristics; authoritative [] disables both.

* fix(ollama): propagate showInspectionFailed through setup configs

Setup inspection failures now use the three-state marker instead of
authoritative empty capabilities, keeping tools off and reasoning heuristics.

* test(ollama): setup show-fail keeps tools off and reasoning heuristics

Cover interactive setup when /api/show returns 500 for deepseek-r1.

* fix(ollama): propagate showInspectionFailed through dynamic model resolve

/models add dynamic path now builds failed-show definitions with tools
off while preserving reasoning name heuristics.

* test(ollama): dynamic resolve covers failed /api/show three-state behavior

Mock builder matches production tools/reasoning contract for inspection failure.

* fix(ollama): keep catalog-missing dynamic resolve fail-closed on show failure

Failed /api/show is an existence probe for unresolved models; return undefined so typos/404s stay rejected. Tag-discovered and setup paths keep showInspectionFailed tools-off behavior.

* chore(changelog): remove release-owned entry

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:37:48 +08:00
NIO
89bfd2150c fix(ollama): use CJK-aware char estimate for usage fallback (#110073)
* fix(ollama): use CJK-aware char estimate for usage fallback

* fix(ollama): keep CJK estimator plugin-private

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:37:13 +08:00
dwc1997
2c4886ec40 fix(ollama): release failed setup response bodies before returning (#111802)
* fix(ollama): release failed setup response bodies before returning

* chore(changelog): remove release-owned entry

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:32:36 +08:00
Vincent Koc
a550827dad feat(plugins): externalize Synthetic provider (#116720) 2026-07-31 17:19:43 +08:00
Peter Steinberger
f03dc9785e fix(telegram): keep typing alive during active steered tasks (#116721) 2026-07-31 02:14:19 -07:00
Peter Steinberger
a5c8c5b3ec fix(googlechat): record canonical receipt thread (#116717)
* fix(googlechat): preserve receipt thread identity

* test(googlechat): prove receipt thread mirroring
2026-07-31 02:07:34 -07:00
Vincent Koc
c5e9635b63 Merge pull request #116701 from openclaw/fix/voice-forced-consult-teardown
fix(voice-call): prevent late forced consults after teardown

* refs/remotes/origin/pr/116701:
  fix(voice-call): cancel consults on bridge replacement
  fix(voice-call): recheck consult owner after await
  fix(voice-call): cancel pending replacement consults
  fix(voice-call): isolate replacement consult handoff
  test(voice-call): cover late forced consult teardown
  fix(voice-call): cancel forced consults on teardown
2026-07-31 17:00:11 +08:00
Vincent Koc
255bb69a0e Merge pull request #116603 from synthalorian/fix/issue-116525
fix(openai): restrict GPT-Live broker cleanup to plugin disable only

* refs/remotes/origin/pr/116603:
  fix(edit): restore UTF-16 difference offsets
  fix(openai): share GPT-Live browser broker ownership
  fix(edit): prefer-for-of loop in firstDifferenceIndex
  fix(openai): return undefined from cleanup on non-disable reasons
  fix(openai): restrict GPT-Live broker cleanup to plugin disable only
2026-07-31 16:55:13 +08:00
Vincent Koc
20e68e01df fix(gateway): sign device proofs with challenge time (#116679) 2026-07-31 16:45:53 +08:00
Vincent Koc
0ce230c861 test(google): cover expired CLI OAuth compatibility 2026-07-31 16:40:38 +08:00
Vincent Koc
091bc7f9ed Merge remote-tracking branch 'origin/main' into experiment/google-cli-supported-paths
* origin/main: (115 commits)
  test: type session request parameters (#116713)
  fix: retain event invalidation for pagination
  docs: note queued session refresh fix
  fix: preserve queued session refresh options
  fix(exec): require approval for abbreviated inline eval flags [AI] (#116529)
  fix: keep owner-only tools out of non-owner skill commands [AI] (#116532)
  fix(tui): require a fresh agent roster (#116715)
  fix(memory-wiki): preserve user edits when rolling back ChatGPT imports (#116517)
  fix(agents): cron failures preserve timeout and cancellation reasons (#116566)
  fix(release): unblock beta validation workflows (#116708)
  fix(ci): discover frozen target startup benchmark cases (#116711)
  fix(session): preserve reset message payloads (#116195)
  fix(qa): tolerate loaded-runner bus delivery stalls (#116448)
  improve(ci): rebalance embedded agent test configs (#116436)
  fix(browser): return committed trace path (#116702)
  fix(qa): exceed Slack table aggregate limit in fallback probe (#116447)
  fix(qa): use built plugin tools server (#116442)
  fix(test): keep memory FD repro config valid (#116698)
  fix(telegram): keep queued tool progress in one message (#116685)
  fix(qa): stop waiting on yielded fanout runs (#116440)
  ...

# Conflicts:
#	src/system-agent/setup-inference-detect.ts
#	ui/src/e2e/model-setup.e2e.test.ts
2026-07-31 16:40:33 +08:00
Yuval Dinodia
623a015928 fix(memory-wiki): preserve user edits when rolling back ChatGPT imports (#116517)
* fix(memory-wiki): preserve user edits when rolling back ChatGPT imports

Rollback deleted created pages and overwrote updated pages unconditionally,
destroying content the user added after the import with no recovery copy.
Import runs now record a content hash of each written page after vault
compile, and rollback preserves any page whose current content no longer
matches into the run's recovered directory before deleting or restoring.
Legacy run records without hashes preserve unconditionally.

Fixes #116457

* fix(memory-wiki): move pages aside atomically during rollback

Rollback now renames the live page into the recovery location before
inspecting it, so a concurrent external save cannot land between the
content read and the delete or snapshot restore. Matching pages drop
the moved copy; mismatching pages keep it as the recovery file.

* fix(memory-wiki): make rollback snapshot restore collision-safe

The snapshot restore wrote directly to the page path after the
move-aside, so a page recreated by an editor in that window was
overwritten with no recovery copy. Restore now creates the snapshot
exclusively and on collision moves the recreated page aside and
retries; recovery filenames are uniqued so a second move-aside cannot
clobber an earlier preserved copy.

* fix(memory-wiki): record rollback hashes at write time

* fix(memory-wiki): make ChatGPT rollback retry-safe

* fix(memory-wiki): fence ChatGPT rollback phases

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 08:01:52 +00:00
Vincent Koc
c30322418e fix(openai): share GPT-Live browser broker ownership 2026-07-31 16:00:31 +08:00
Vincent Koc
1629cbe560 fix(voice-call): cancel consults on bridge replacement 2026-07-31 15:47:17 +08:00
Vincent Koc
37b1a71654 fix(release): unblock beta validation workflows (#116708)
* fix(release): repair beta validation workflow state

* fix(qa): dispatch yielded fanout runs without task tracking

* fix(test): honor GPT-Live shard opt-in
2026-07-31 15:47:11 +08:00
Vincent Koc
31475b8ca3 fix(voice-call): recheck consult owner after await 2026-07-31 15:43:47 +08:00
Vincent Koc
5e46595331 fix(voice-call): cancel pending replacement consults 2026-07-31 15:43:47 +08:00
Vincent Koc
ee4a19e8ac fix(voice-call): isolate replacement consult handoff 2026-07-31 15:43:47 +08:00
Vincent Koc
c7b805c14f test(voice-call): cover late forced consult teardown 2026-07-31 15:43:47 +08:00
Vincent Koc
781c3c1ce7 fix(voice-call): cancel forced consults on teardown 2026-07-31 15:43:47 +08:00
Yuval Dinodia
589a914328 fix(session): preserve reset message payloads (#116195)
* fix(session): preserve reset message payloads

Use the raw command body when it directly matches a reset trigger so code, logs, bracketed text, and line breaks reach the new session intact. Keep structural normalization only for prefixed messages that require it to match.

* fix(session): anchor reset payloads to original input

* fix(session): anchor reset parsing to inbound projections

* fix(session): keep reset result type internal

* test(qa): prove reset payload preservation

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 15:34:23 +08:00
Dallin Romney
a8df6e49a7 fix(qa): tolerate loaded-runner bus delivery stalls (#116448) 2026-07-31 15:20:14 +08:00
Peter Steinberger
ba756a23ad fix(browser): return committed trace path (#116702) 2026-07-31 00:01:39 -07:00
Dallin Romney
126933ba73 fix(qa): exceed Slack table aggregate limit in fallback probe (#116447) 2026-07-31 14:56:20 +08:00
Dallin Romney
fa5ee0798b fix(qa): use built plugin tools server (#116442) 2026-07-31 14:49:24 +08:00
Ayaan Zaidi
c2c4f0b6b7 fix(telegram): keep queued tool progress in one message (#116685)
* fix(telegram): keep queued tool progress in one message

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-07-31 15:40:21 +09:00
Dallin Romney
397fe272a0 fix(qa): stop waiting on yielded fanout runs (#116440)
* fix(qa): observe resumed fanout completions

* test(qa): keep runtime watchdog assertions in runtime suite
2026-07-31 14:36:59 +08:00
Dallin Romney
b13b3d9a0f fix(qa): bound gateway log cleanup (#116431) 2026-07-31 14:23:36 +08:00
Dallin Romney
5c061507d3 fix(qa): align Slack progress scenarios with fresh finals (#116445)
* fix(qa): verify Slack progress drafts against fresh finals

* fix(qa): narrow Slack progress message identity
2026-07-31 14:22:24 +08:00
Dallin Romney
142e745372 fix(qa): avoid classifying fetched prose as tool failure (#116444)
* fix(qa): avoid classifying fetched prose as tool failure

* test(qa): keep tool result regression concise
2026-07-31 14:21:57 +08:00
Dallin Romney
2857eaa0f5 fix(qa): reset Matrix scenario streaming state (#116454) 2026-07-31 14:19:58 +08:00
Vincent Koc
fa4cc51a87 feat(plugins): externalize Teams and Zoom meetings (#116682) 2026-07-31 14:10:46 +08:00
Vincent Koc
bc63c66988 fix(qa): keep Anthropic parity scenarios working in Code Mode
Route hidden QA capabilities through Code Mode and wait for fanout workers to settle before synthesis.
2026-07-31 13:53:34 +08:00
Josh Lehman
2bc694614f fix(telegram): make Codex login codes copyable (#116608) 2026-07-30 22:51:00 -07:00