Commit Graph

41215 Commits

Author SHA1 Message Date
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
civil f943a94a33 fix(agents): preserve thinking for runtime-selected Ollama models (#116584)
* fix(agents): hydrate catalog for thinking validation

* test(agents): type runtime catalog fixture

* test: align runtime catalog mocks with thinking hydration

* fix(cron): preserve explicit-off catalog path

* test(cron): type Ollama thinking defaults

* docs(changelog): note Ollama fallback thinking fix

* fix(cron): recompute fallback thinking

* chore(changelog): remove release-owned entry

* fix(cron): keep thinking catalog helper private

* test(cron): align executor fixtures with thinking catalog

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 17:53:05 +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 1112c1cc82 fix(agents): compact session status change text (#116742) 2026-07-31 02:46:38 -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
Vincent Koc a550827dad feat(plugins): externalize Synthetic provider (#116720) 2026-07-31 17:19:43 +08:00
Peter Steinberger f1cd165075 fix(agents): unblock channel turns after restart recovery (#116728)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 02:17:36 -07:00
Peter Steinberger f03dc9785e fix(telegram): keep typing alive during active steered tasks (#116721) 2026-07-31 02:14:19 -07:00
Peter Steinberger 4b0c77b256 fix(gateway): admit standalone MCP app work (#116727) 2026-07-31 02:13:54 -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
Peter Steinberger fbf5f3f2e0 fix(agents): resume interrupted turns past progress commentary (#116725) 2026-07-31 01:48:12 -07:00
Vincent Koc 20e68e01df fix(gateway): sign device proofs with challenge time (#116679) 2026-07-31 16:45:53 +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
Pavan Kumar Gondhi 52f81a3684 fix(exec): require approval for abbreviated inline eval flags [AI] (#116529)
* fix: gate abbreviated interpreter eval flags

* fix(exec): cover legacy gawk source abbreviation
2026-07-31 13:42:17 +05:30
Pavan Kumar Gondhi 9018b02f14 fix: keep owner-only tools out of non-owner skill commands [AI] (#116532)
* fix: enforce owner tools in skill dispatch

* fix: type skill dispatch policy layers
2026-07-31 13:41:20 +05:30
Peter Steinberger 5fc976571e fix(tui): require a fresh agent roster (#116715) 2026-07-31 01:05:32 -07:00
Jacqueline Henriksen a2b97cc950 fix(agents): cron failures preserve timeout and cancellation reasons (#116566)
* fix(agents): preserve abort reason during prompt handoff

* test(agents): cover abort handoff behavior

* fix(agents): forward normalized timeout to prompt handoff

* fix(agents): settle normalized timeouts through after-turn

---------

Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-07-31 00:54:48 -07: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
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
Peter Steinberger 2aabde7262 fix: deep health checks no longer reuse passive snapshots (#116681)
* fix(gateway): preserve explicit health probes

* chore: defer release note to release process
2026-07-30 23:15:19 -07:00
Dallin Romney 53e9e21365 fix(agents): scrub refusal markers for native Anthropic attempts (#116433)
* fix(agents): scrub refusal marker for native Anthropic attempts

* refactor(agents): separate prompt scrub from model ownership
2026-07-31 14:14:59 +08:00
Vincent Koc fa4cc51a87 feat(plugins): externalize Teams and Zoom meetings (#116682) 2026-07-31 14:10:46 +08:00
Vincent Koc 877ba9eb7b perf(cli): trim status cold imports (#116668) 2026-07-31 13:56:50 +08:00
Josh Lehman 2bc694614f fix(telegram): make Codex login codes copyable (#116608) 2026-07-30 22:51:00 -07:00
Vincent Koc fa13cf4f2f fix(media): bound local source reads (#116667) 2026-07-31 13:39:34 +08:00
Vincent Koc ed0dae17bc fix(plugins): remove managed peers after npm override errors (#116675)
* fix(plugins): retry npm override cleanup on uninstall

* fix(plugins): satisfy uninstall cleanup checks
2026-07-31 13:32:51 +08:00
Vincent Koc 59c3606366 fix(cli): propagate web provider failures (#116674) 2026-07-31 13:21:21 +08:00
Vincent Koc 01f75d186f fix(agents): prevent high-fanout subagent lifecycle slowdowns 2026-07-31 13:19:04 +08:00
Peter Steinberger 31ccf56a81 fix(cli): report failed MCP probes to automation (#116664)
* fix(cli): fail MCP probes without losing output

* test(cli): use shared MCP probe temp cleanup
2026-07-30 21:57:35 -07:00
Ben Badejo 847dcad4a4 fix(gateway): avoid false port-busy reports behind Tailscale Serve (#116579)
* fix(gateway): scope lifecycle port probes to bind host

* fix(gateway): honor configured bind in lifecycle probes

* fix(gateway): preserve restart health call compatibility

* fix(gateway): scope daemon port ownership

---------

Co-authored-by: Benjamin Badejo <ben@benbadejo.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-07-30 21:49:25 -07:00
Vincent Koc b3ce00b480 refactor(schema): share config validation runtime (#116622) 2026-07-31 12:40:48 +08:00
Josh Avant 4219ece281 fix: preserve outbound modifiers across recovery (#116632)
* fix: preserve outbound modifiers across recovery

* fix(outbound): harden durable preparation custody

* test(outbound): align restart recovery fixtures
2026-07-30 23:30:36 -05:00
Vincent Koc b015925bc3 test(core): remove dead and duplicate coverage (#116641)
* test(markdown): make code table style coverage assertive

* test(core): remove duplicate regression coverage
2026-07-31 11:48:46 +08:00
Peter Steinberger bc4221a07e fix(docker): keep custom-port containers healthy (#116639)
* fix(docker): probe the active gateway port

* fix(docker): register the healthcheck runtime boundary
2026-07-30 20:47:03 -07:00
Peter Steinberger 9979ee312d fix: resolve explicit main aliases to the configured session (#116636)
* fix(sessions): canonicalize explicit main aliases

* test(sessions): seed canonical main entries
2026-07-30 20:31:25 -07:00
licheer-zte 5337e85f11 fix: preserve untouched bytes outside fuzzy-match span in edit tool (#116459) (#116509)
* fix(edit): preserve bytes outside fuzzy-match span on matched lines

When an edit tool call falls back to fuzzy matching (e.g. plain space vs
NBSP, straight quotes vs smart quotes), the entire overlapped line was
rebuilt from the NFKC-normalized copy, silently destroying unrelated
bytes on that line — fullwidth punctuation, halfwidth katakana, em-dashes,
and other Unicode characters outside the edited span.

Root cause:
- applyEdits() set replacementBaseContent to
  normalizeForFuzzyMatch(normalizedContent) when any edit needed fuzzy
  matching.
- applyReplacementsPreservingUnchangedLines then emitted untouched lines
  from the original content but rebuilt touched lines wholesale from the
  normalized base, applying NFKC folding to bytes the edit never
  referenced.

Fix:
- normalizeForFuzzyMatch now optionally returns an offset map that
  translates every normalized position back to the original text.
- fuzzyFindText uses this map to translate match indices from fuzzy-
  normalized coordinates to original-content coordinates.
- applyEdits keeps replacementBaseContent as the original (LF-normalized)
  content and uses direct applyReplacements instead of the line-preserving
  variant. Touch-untouched line distinction is no longer needed because
  replacements splice at byte granularity in the original content.

Fixes #116459

* fix(edit): map fuzzy spans to stable source boundaries

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-31 11:22:07 +08:00
Vincent Koc 7bc216394a fix(ui): preserve mixed schema union values (#116602) 2026-07-31 11:15:21 +08:00
Vincent Koc 16c23377d0 fix(meeting-bot): expose negotiated node capability 2026-07-31 11:09:03 +08:00
Vincent Koc 9a14ee3ad2 fix(meeting-bot): keep node capability internal 2026-07-31 11:09:03 +08:00
Vincent Koc 1bd2f93214 fix(meeting-bot): negotiate realtime output generations 2026-07-31 11:09:03 +08:00
Vincent Koc 4bb0563757 test(meeting-bot): assert output generation restart 2026-07-31 11:09:03 +08:00
Vincent Koc 894640036b fix(meeting-bot): keep realtime config API stable 2026-07-31 11:09:03 +08:00
Vincent Koc ba19bd212e fix(meeting-bot): break realtime support import cycle 2026-07-31 11:09:03 +08:00
Vincent Koc 02da6524c4 test(meeting-bot): cover realtime output owner races 2026-07-31 11:09:03 +08:00
Vincent Koc d7afb133af fix(meeting-bot): track realtime output ownership 2026-07-31 11:09:03 +08:00
Vincent Koc 033bb876c3 fix(meeting-bot): avoid redundant pre-write clears 2026-07-31 11:09:03 +08:00
Vincent Koc 6a7f9dfd5d fix(meeting-bot): invalidate queued output on barge-in 2026-07-31 11:09:03 +08:00
Vincent Koc 66c23e7194 test(meeting-bot): cover human barge-in queue invalidation 2026-07-31 11:09:03 +08:00
Vincent Koc 07433b8b00 test(meeting-bot): cover legacy node audio commands 2026-07-31 11:09:03 +08:00
Vincent Koc f4fbff7682 fix(meeting-bot): coalesce realtime output backlog 2026-07-31 11:09:03 +08:00