Commit Graph

66940 Commits

Author SHA1 Message Date
Eva 43dd34262e docs: document agent issue and PR routing (#96714)
* docs: document agent issue and pr routing

* docs: link contribution routes from readme

* docs: point routing docs at github codeowners

* docs(contributing): keep routing guidance concise

---------

Co-authored-by: Eva <eva@100yen.org>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-27 00:34:58 +01:00
Galin Iliev 6883c6c070 fix: wake yielded parent after subagents finish (#97090)
* fix: wake yielded subagent parents after descendants settle

* fix: wake yielded subagent parents after descendants settle

---------

Co-authored-by: Galin Iliev <Galin.Iliev@microsoft.com>
2026-06-26 16:31:20 -07:00
xingzhou 91726e9624 fix(cron): reject invalid no-output timeout (#96516)
* fix(cron): reject invalid no-output timeout

* fix(cron): validate command output limits

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-27 00:28:45 +01:00
Bartok 289865b392 fix(matrix): truncate thread starter body on code-point boundaries (#97121)
Matrix thread-starter previews truncated long bodies by raw UTF-16
slice, which could cut an astral character (e.g. emoji) and leave a lone
surrogate, rendering mojibake in the agent's thread context.

Reuse the existing sliceUtf16Safe helper so the cut backs up to a valid
surrogate boundary, preserving the 500-code-unit limit and '...' suffix.
Adds a regression test that fails against the raw-slice implementation.

Salvages the original fix from #96407 (auto-closed by the active-PR
queue cap). Preserves @ly-wang19's authorship; rebased clean onto main
by @Bartok9.

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 07:27:38 +08:00
pick-cat 6db4624f43 fix(auth): suppress recovery hint for format failures (#95779)
* fix(auth): suppress recovery hint for format failures

* test(auth): cover format failure recovery copy

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-27 00:27:25 +01:00
ly-wang19 b7a9d3005c perf(ui): use sets for usage selection filters (#96945)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 07:23:59 +08:00
Dallin Romney bdd365a348 docs: clarify macOS release workflow refs (#97116)
* docs: clarify macOS release workflow refs

* docs: clarify macOS release repo roles

* docs: document macOS release approval gate

* docs: align maintainer macOS release repo refs
2026-06-26 16:08:08 -07:00
Vincent Koc a82902c725 ci: right-size runner registration caps (#97119) 2026-06-27 07:01:26 +08:00
ly-wang19 aca905cce5 perf(sessions): find matching checkpoints without sorting (#96964)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 06:53:48 +08:00
zw-xysk ab966c214b fix(tools): treat no-op writes and edits as terminal tool-loop failures (fixes #96983) (#97044)
* fix(tools): treat no-op writes and edits as terminal tool-loop failures

Fixes #96983

* fix(tools): treat no-op writes and edits as terminal tool-loop failures

Fixes #96983

* fix(tools): preserve valid sibling edits in mixed no-op batches

Fixes #96983

* fix(tools): terminate apply_patch no-ops safely

* fix(tools): validate no-op edits independently

* fix(tools): preserve no-op edit overlap checks

* fix(tools): preserve no-op patch file formatting

* fix(tools): preserve move no-op formatting

* fix(tools): narrow same-path move no-op typing

* fix(tools): distinguish edit no-op errors

* fix(tools): keep edit previews aligned with execution

* fix(tools): align no-op validation and formatting

* fix(tools): preserve empty patch and preview no-ops

* fix(tools): preview fuzzy edit no-ops cleanly

* fix(tools): isolate fuzzy-equivalent edit no-ops

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-27 06:41:26 +08:00
ly-wang19 41c00a65d6 perf(status): select recent sessions without full sort (#96955)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 06:33:00 +08:00
Vincent Koc eba1ca683f test(i18n): include Hindi and Russian registry locales 2026-06-26 15:23:10 -07:00
github-actions[bot] b3eee03740 chore(ui): refresh fa control ui locale 2026-06-26 22:08:51 +00:00
github-actions[bot] 6109420e5c chore(ui): refresh nl control ui locale 2026-06-26 22:08:49 +00:00
github-actions[bot] 44e522cf6b chore(ui): refresh vi control ui locale 2026-06-26 22:08:46 +00:00
github-actions[bot] ab8cd3dac9 chore(ui): refresh th control ui locale 2026-06-26 22:08:17 +00:00
github-actions[bot] 816c2cf1f8 chore(ui): refresh pl control ui locale 2026-06-26 22:08:08 +00:00
github-actions[bot] 9cc10a8382 chore(ui): refresh id control ui locale 2026-06-26 22:08:02 +00:00
github-actions[bot] c6757d7a75 chore(ui): refresh uk control ui locale 2026-06-26 22:07:51 +00:00
github-actions[bot] a70e7ce24b chore(ui): refresh tr control ui locale 2026-06-26 22:07:28 +00:00
github-actions[bot] 6b98d179b6 chore(ui): refresh ar control ui locale 2026-06-26 22:07:23 +00:00
github-actions[bot] cb4e9e4118 chore(ui): refresh it control ui locale 2026-06-26 22:07:14 +00:00
github-actions[bot] 0023cc816a chore(ui): refresh fr control ui locale 2026-06-26 22:07:01 +00:00
github-actions[bot] 6d62dae215 chore(ui): refresh ko control ui locale 2026-06-26 22:06:43 +00:00
github-actions[bot] 8d61631b40 chore(ui): refresh ja-JP control ui locale 2026-06-26 22:06:35 +00:00
github-actions[bot] 68bed5e902 chore(ui): refresh es control ui locale 2026-06-26 22:06:32 +00:00
github-actions[bot] 7b549a26e8 chore(ui): refresh de control ui locale 2026-06-26 22:06:08 +00:00
github-actions[bot] 57f62a5fd9 chore(ui): refresh pt-BR control ui locale 2026-06-26 22:06:03 +00:00
github-actions[bot] ba70d365ac chore(ui): refresh zh-TW control ui locale 2026-06-26 22:05:56 +00:00
github-actions[bot] ce88d65779 chore(ui): refresh zh-CN control ui locale 2026-06-26 22:05:52 +00:00
Vincent Koc 689baa5c1e feat(i18n): add Hindi and Russian docs and Control UI locales 2026-06-26 15:01:15 -07:00
ly-wang19 4c4396c4c2 perf(memory): copy only requested embedding dimensions (#96952)
* perf(memory): copy only requested embedding dimensions

* perf(memory): copy only requested embedding dimensions

---------

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-27 05:56:02 +08:00
ly-wang19 c1336b6b41 perf(plugins): classify cached tool candidates once (#96948)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
2026-06-27 05:49:35 +08:00
ly-wang19 d4a01e48bc fix(link-understanding): strip markdown links whose label contains brackets (#96476)
Merged via squash.

Prepared head SHA: 2d69ed259f
Co-authored-by: ly-wang19 <94427531+ly-wang19@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
2026-06-27 05:43:11 +08:00
ly-wang19 a0e9ca1e95 perf(update): reuse missing plugin payload id set (#96950)
* perf(update): reuse missing plugin payload id set

* perf(update): reuse missing plugin payload id set

---------

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-27 05:32:38 +08:00
ly-wang19 1b6557dfa2 fix(markdown): a fenced-code line with trailing text is content, not a closing fence (#96745)
* fix(markdown): a fenced-code line with trailing text is content, not a closing fence

scanFenceSpans accepted any line starting with >=3 matching fence markers as a
closing fence, ignoring trailing text after the marker. Per CommonMark a closing
fence may be followed only by whitespace, so a code-content line such as
"``` not a close" was wrongly treated as a close: the block ended early, the
following lines were reported as outside any fence, and the trailing marker line
became a new unclosed opener.

That made isSafeFenceBreak() return true for offsets inside the real code block
and findFenceSpanAt() return undefined, so chunkers (chunkMarkdownText, the
embedded-agent block chunker) could split inside a fenced code block — the exact
thing this module exists to prevent.

Require the closing fence's trailing text to be whitespace-only. Opening info
strings, bare closes, and longer same-marker closes are unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(markdown): honor fence suffix whitespace rules

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>

---------

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-27 05:32:10 +08:00
Bartok 2968004680 fix(chunk): keep surrogate pairs whole when hard-splitting an over-long line (#96951)
chunkByNewline length-splits a single over-long line that has no usable break
point. The first head cut used a raw UTF-16 slice (lineValue.slice(0,
firstLimit)), so when firstLimit landed inside a surrogate pair it emitted a
chunk ending in a lone high surrogate and a next chunk starting with a lone low
surrogate, which render as U+FFFD on delivery. The recursive chunkText that
handles the remainder is already surrogate-safe; only this first cut was raw.

Route the head cut through avoidTrailingHighSurrogateBreak (the same helper
chunkText and chunkMarkdownText already use) so the cut backs off to a
code-point boundary. ASCII and non-surrogate cuts are unaffected. Reproduces at
the production-default 4096 limit for emoji-dense lines; chunkByNewline is the
published plugin-SDK channel.text helper, reachable with arbitrary outbound text.

Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 05:21:45 +08:00
Bek 9636bea901 perf(memory): add QMD search diagnostics and runtime cache (#96655) 2026-06-26 16:16:12 -04:00
NianJiu 1089253ca9 fix feishu login qr rendering (#97087)
Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
2026-06-26 12:09:38 -07:00
Hannes Rudolph e5123e44b0 docs: update changelog for v2026.6.10 (#97079)
* docs: update changelog for v2026.6.10

* docs: update changelog for v2026.6.10
2026-06-26 12:22:40 -06:00
Shakker 1cd6f81a46 fix: close memory test failure paths 2026-06-26 14:05:07 +01:00
Shakker 80c754ddf4 test: normalize feishu env fixtures 2026-06-26 13:19:33 +01:00
maweibin 512f0f1bf7 fix(webchat): make model selector width adaptive to prevent long name… (#96990)
Summary:
- The PR updates `ui/src/styles/chat/layout.css` so the WebChat composer model selector can size to long model/thinking labels and also changes the base inline-select menu width rule.
- PR surface: Source +1. Total +1 across 1 file.
- Reproducibility: yes. from source inspection: current main and `v2026.6.10` combine model and thinking text  ... ro in this read-only review, but the PR's inspected before screenshot demonstrates the reported truncation.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 0cf1a65852.
- Required merge gates passed before the squash merge.

Prepared head SHA: 0cf1a65852
Review: https://github.com/openclaw/openclaw/pull/96990#issuecomment-4807967550

Co-authored-by: 0668000787 <ma.weibin@xydigit.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Approved-by: takhoffman
2026-06-26 12:18:28 +00:00
Shakker 338e119533 fix: preserve watcher test state 2026-06-26 13:05:44 +01:00
Shakker e4f63577d0 test: scope manager reindex state 2026-06-26 12:56:21 +01:00
Shakker 94d93d4c85 fix: retain qmd test environment state 2026-06-26 12:48:24 +01:00
Shakker 7718e25b2a test: preserve memory startup env state 2026-06-26 12:40:55 +01:00
Shakker 8079aa62a2 fix: isolate memory index test state 2026-06-26 12:32:39 +01:00
Shakker 6f162f321a test: scope narrative env cleanup 2026-06-26 12:23:32 +01:00
NIO 527f8f0cbb fix(image-gen): bound image generation provider JSON response reads (#96495)
* fix(image-gen): bound image generation provider JSON response reads

Route success JSON reads through readProviderJsonResponse (16 MiB cap)
in openrouter, google, fal, minimax, openai, and vydra image generation
providers to prevent OOM from oversized or hostile endpoint responses.
Mirrors the response-limit campaign already applied to other provider paths.

AI-assisted.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(image-gen): size bounded JSON caps for inline image payloads

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-06-26 07:08:30 -04:00