Commit Graph

41229 Commits

Author SHA1 Message Date
Peter Steinberger
b4e10e8a90 fix: preserve markdown formatting around media attachments (#116786)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 04:20:39 -07: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
SunnyShu
718e9c8820 fix(pairing): ignore wildcard bindings during legacy migration (#116610)
Exclude wildcard route selectors from concrete pairing-account migration and preserve strict account-key validation while skipping invalid configured candidates.

Fixes #116582
2026-07-31 19:08:35 +08:00
Peter Steinberger
aced0423c1 fix(status): show stopped channel runtimes in status and doctor (#116781)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 04:03:07 -07:00
Peter Steinberger
9f2d2781da fix(agents): preserve resumed turns after stale terminal events (#116777) 2026-07-31 03:57:16 -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
f6b373c452 Merge pull request #116730 from openclaw/fix/lmstudio-no-tools-guard
* origin/fix/lmstudio-no-tools-guard:
  fix(chat): explain chat-only model limits
  feat(models): expose tool support to clients
2026-07-31 18:56:17 +08:00
Peter Steinberger
7cb4ae8a36 fix(doctor): correct SQLite-backed automation warnings (#116769)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:52:56 -07:00
Vincent Koc
6830820755 feat(plugins): externalize DuckDuckGo search (#116740) 2026-07-31 18:49:07 +08:00
Peter Steinberger
a94e1c8d8b refactor(reply): simplify task-owned typing refresh (#116770)
* refactor(reply): simplify task-owned typing refresh

* chore(format): restore autonomous sweep skill formatting

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:48:21 -07:00
Vincent Koc
5b7f514c94 fix(chat): explain chat-only model limits 2026-07-31 18:43:47 +08:00
Vincent Koc
9b736a42c6 feat(models): expose tool support to clients 2026-07-31 18:43:47 +08:00
Vincent Koc
58580fff2f fix(plugins): require explicit source external startup (#116759) 2026-07-31 18:18:51 +08:00
Peter Steinberger
454bf5ccd7 fix(cli): reject dangling config path escapes (#116738)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:16:06 -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
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