Commit Graph

59441 Commits

Author SHA1 Message Date
Vincent Koc
53655f39f1 refactor(agents): drop runtime metadata re-export 2026-06-17 09:08:07 +08:00
Vincent Koc
93216e1ca1 fix(sdk): refresh plugin api baseline hash 2026-06-17 03:07:56 +02:00
Vincent Koc
461f0cfc5b fix(release): keep bun smoke tarballs local 2026-06-17 03:07:31 +02:00
Vincent Koc
b832dd27e1 refactor(agents): hide client tool conflict prefix 2026-06-17 09:05:31 +08:00
Alix-007
88334627fe fix(status): show 0 (not ?) for fresh-session context tokens (#93798)
* fix(status): show 0/1.0m instead of ?/1.0m on a fresh session

On a brand-new /new session the persisted totalTokens is absent
(undefined), so /status rendered the context numerator as ? via
formatTokens(null, ...). A fresh session with no usage is a known
zero, not an unknown total, so normalize undefined-but-not-stale
totals to 0 before formatting while leaving the intentional
totalTokensFresh === false stale guard (which must keep ?) intact.

Fixes #93771

* fix(status): persist fresh-session zero usage

* fix(status): identify fresh empty sessions

* fix(status): persist fresh empty session usage

* fix(status): preserve fork and compaction token state

* fix(status): preserve queued compaction token state

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 09:05:02 +08:00
OfflynAI
9fd9aa5fcd fix(agents): defer session suspension across fallback (#93789)
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 09:04:48 +08:00
Yuval Dinodia
891dd037b5 fix(google): keep parallel Gemini tool responses in the turn after the model (#93780)
* fix(google): keep parallel Gemini tool responses in the turn after the model

On Gemini < 3 vision models, a parallel tool-call turn whose non-last result
returns an image split function responses across user turns. The merge heuristic
only inspected contents[last], so the separate "Tool result image:" turn landed
between two parallel responses and stranded the second one in a fresh turn. The
turn right after the model then carried fewer functionResponse parts than the
model issued functionCall parts, so Gemini returned 400 INVALID_ARGUMENT. Because
the malformed turn is persisted, every later turn re-400s and the session sticks.

Replace the contents[last] heuristic with a run-scoped accumulator: all responses
for one model turn merge into the single user turn after it, and Gemini < 3 image
turns defer to the end of the tool-result run so they trail that response turn.
Covers both google.ts and google-vertex.ts, which share this convertMessages.

* fix(google): align provider transport tool result turns

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 09:04:35 +08:00
liuhao1024
b3a1472875 fix(memory): await search-sync before returning results to prevent stale index (fixes #52115) (#93791)
* fix(memory): await search-sync before returning results to prevent stale index

When the gateway process has been running for a while, memory_search
returns stale results because startAsyncSearchSync fires off the index
sync as a background task (void ... .catch()) without waiting for it
to complete. Search results are then read from the old index state.

Change startAsyncSearchSync from sync/fire-and-forget to async/await
so that the index is synced before search results are returned. This
ensures memory_search reflects the current filesystem state, matching
the behavior of the CLI  command which creates
a fresh manager each time.

Fixes #52115

* test(memory): prove search waits for dirty sync

* test(memory): align search with synchronous sync

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 09:04:24 +08:00
Vincent Koc
70023a1183 refactor(agents): hide write lock guard helpers 2026-06-17 09:00:55 +08:00
Vincent Koc
dd7376fdcb fix(release): keep install smoke tarballs local 2026-06-17 03:00:09 +02:00
Vincent Koc
53accb122d refactor(agents): hide missing tool result text 2026-06-17 08:59:02 +08:00
Marcus Castro
8686f04699 refactor(whatsapp): migrate admission object callers (#93787) 2026-06-17 08:58:49 +08:00
Vincent Koc
3001ec4381 refactor(agents): hide session repair fallback text 2026-06-17 08:57:23 +08:00
Vincent Koc
68ef80116f refactor(agents): hide timeout phase predicate 2026-06-17 08:55:48 +08:00
Vincent Koc
dcbea62351 fix(release): keep cross-os artifact names local 2026-06-17 02:53:00 +02:00
Vincent Koc
479e9d94b8 refactor(agents): hide pty paste markers 2026-06-17 08:52:26 +08:00
Vincent Koc
4fef350f8e refactor(agents): narrow transcript policy mode type 2026-06-17 08:50:25 +08:00
Vincent Koc
c91cbce77c refactor(agents): narrow shell snapshot options type 2026-06-17 08:48:42 +08:00
Vincent Koc
9bc7dced98 refactor(agents): remove session repair type alias 2026-06-17 08:47:13 +08:00
Vincent Koc
acb24937e7 refactor(agents): narrow session runtime compat exports 2026-06-17 08:45:32 +08:00
Vincent Koc
2800e8ecb6 fix(release): reject unsafe pack tarball names 2026-06-17 02:42:56 +02:00
Vincent Koc
c40e904c1b refactor(agents): narrow internal event constants 2026-06-17 08:42:31 +08:00
Vincent Koc
10f3e52be0 refactor(agents): narrow deepseek filter type 2026-06-17 08:40:58 +08:00
Vincent Koc
e7e686db2d refactor(agents): narrow tool schema helper exports 2026-06-17 08:39:06 +08:00
liuhao1024
d2279591bf fix(plugins): treat refreshable catalogs as requiring runtime discovery (#93786)
Treat refreshable manifest catalog rows as non-authoritative and load the owning plugin for runtime/cache-backed discovery. Adds focused regression coverage for entries-only and full discovery paths.
2026-06-17 08:38:34 +08:00
Vincent Koc
5c74fde912 fix(release): keep plugin pack filenames local 2026-06-17 02:38:11 +02:00
Vincent Koc
dc384393fc refactor(agents): narrow terminal outcome helpers 2026-06-17 08:36:58 +08:00
Vincent Koc
4e78776a5c fix(ui): refresh realtime talk i18n baseline 2026-06-17 02:35:32 +02:00
Vincent Koc
e62b0122e7 refactor(agents): narrow embedded runner helper exports 2026-06-17 08:34:37 +08:00
Vincent Koc
d1ea170c9b refactor(agents): narrow runtime guard exports 2026-06-17 08:32:26 +08:00
Vincent Koc
916616502f refactor(agents): narrow model helper exports 2026-06-17 08:30:12 +08:00
Vincent Koc
76cd61a903 refactor(agents): narrow internal helper exports 2026-06-17 08:28:13 +08:00
OfflynAI
8432d7d624 fix(webchat): skip textarea resize during IME composition to eliminate typing lag (#93779)
Merged via squash.

Prepared head SHA: 820e10fa49
Co-authored-by: joelnishanth <140015627+joelnishanth@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
2026-06-17 08:27:21 +08:00
Vincent Koc
2ee4b523b4 refactor(agents): trim unused model helper exports 2026-06-17 08:23:32 +08:00
Vincent Koc
b67775f7fe fix(release): keep package output names local 2026-06-17 02:21:12 +02:00
Patrick Erichsen
5b9a3d05b6 docs: list all ClawHub docs in sidebar 2026-06-16 17:19:12 -07:00
Vincent Koc
06ddc85857 docs(release): require stable main closeout 2026-06-17 08:18:00 +08:00
Vincent Koc
f3f8ca3d92 fix(release): reject loose Docker package timeouts 2026-06-17 02:10:54 +02:00
Vincent Koc
f684527085 fix(release): verify complete contribution coverage 2026-06-17 08:08:31 +08:00
Vincent Koc
e17297f7dc fix(release): reject loose trusted package ports 2026-06-17 01:56:40 +02:00
Eldar Shlomi
7c97c6da9b fix(agents): use neutral billing copy for subscription auth (#93763)
* fix(agents): neutral billing-error copy for OAuth/subscription auth

Fixes #80877

AI-assisted (Claude Code).

* fix(agents): preserve subscription billing guidance

* test(agents): use active auth store in prompt failover

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 07:55:32 +08:00
Vincent Koc
f7d96c9301 docs(changelog): account for 2026.6.8 contributions 2026-06-17 07:48:04 +08:00
Vincent Koc
00d2452fac chore(release): refresh npm shrinkwrap versions 2026-06-17 07:32:37 +08:00
Vincent Koc
cfb27e6437 fix(ci): align plugin SDK surface budget 2026-06-17 07:28:26 +08:00
Vincent Koc
6774e7f259 chore(release): sync main to 2026.6.8 2026-06-17 07:25:30 +08:00
ragesaq
f94a2506d2 feat(context-engine): pass runtime settings into lifecycle (#88750)
Merged via squash.

Prepared head SHA: 9a19334ee5
Co-authored-by: ragesaq <11304287+ragesaq@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-06-16 16:23:19 -07:00
Vincent Koc
8db66b416b fix(release): reject unsafe Sparkle build floors 2026-06-17 00:55:54 +02:00
Andy Ye
2b92fbc2ee fix(ui): scope Skill Workshop proposals to selected agent (#93773)
* fix(ui): scope skill workshop proposals to selected agent

* fix(ui): scope Skill Workshop proposals by agent

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 06:55:23 +08:00
liuhao1024
7b659543e1 fix(feishu): recover CJK filenames from JSON file_name field (fixes #81103) (#93772)
* fix(feishu): recover CJK filenames from JSON file_name field

Apply recoverUtf8FileNameFromLatin1Header to JSON-derived filenames in
extractFeishuDownloadMetadata, matching the behavior already present for
Content-Disposition headers in decodeDispositionFileName.

Fixes #81103

* fix(feishu): recover inbound CJK filenames

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 06:52:20 +08:00
DrHack1
4f860bfab0 fix(reasoning-tags): strip MiniMax mm: namespaced reasoning tags (#93767)
* fix(reasoning-tags): strip MiniMax `mm:` namespaced reasoning tags

MiniMax M3 (e.g. via Fireworks) emits its chain-of-thought inline in the
content stream wrapped in `<mm:think>…</mm:think>` rather than in a separate
`reasoning_content` field. The reasoning-tag stripper only recognized the
`antml:` namespace, so `mm:`-namespaced tags slipped through QUICK_TAG_RE and
leaked the model's hidden reasoning into visible chat output.

Accept the `mm:` prefix alongside `antml:` in the shared sanitizer
(reasoning-tags.ts) and in the Telegram reasoning-lane coordinator's tag regex
and prefix list. Adds unit tests covering mm: think/thinking/thought blocks,
truncated-open orphan close recovery, and code-fence preservation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(reasoning): handle MiniMax tags in streams

---------

Co-authored-by: DrHack1 <DrHack1@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-06-17 06:46:37 +08:00