Peter Steinberger
8ddeada97d
test: move extension-owned coverage into plugins
2026-03-27 15:11:33 +00:00
Peter Steinberger
25879be46a
test: stub summary transport in tts tests
2026-03-27 05:38:58 +00:00
Peter Steinberger
64bf80d4d5
refactor: move provider runtime into extensions
2026-03-27 05:38:58 +00:00
Peter Steinberger
01bcbcf8d5
refactor: require legacy config migration on read
2026-03-26 23:23:47 +00:00
Peter Steinberger
d72115c9df
refactor: genericize speech provider config surface
2026-03-26 22:48:57 +00:00
Peter Steinberger
5445bc68b9
refactor: share tts auto mode normalization
2026-03-26 22:38:13 +00:00
Peter Steinberger
2c6d099b01
refactor: plugin-own speech provider config
2026-03-26 22:28:24 +00:00
Peter Steinberger
29069bd250
refactor: share speech normalization helpers
2026-03-26 21:49:20 +00:00
Peter Steinberger
ce9dff1458
refactor: clean plugin capability boundaries
2026-03-26 21:41:49 +00:00
Jealous
2c3cf4f387
chore(tts): rename VOICE_BUBBLE identifiers to OPUS and update docs
2026-03-25 10:49:21 +05:30
Peter Steinberger
a4367eb656
test: finish no-isolate suite hardening
2026-03-23 02:02:03 -07:00
Peter Steinberger
fb602c9b02
test: harden ci isolated mocks
2026-03-23 08:53:35 +00:00
Vincent Koc
d949dffc6e
fix(ci): repair tts and matrix refactor fallout
2026-03-22 20:12:01 -07:00
Vincent Koc
ac0fd26e16
fix(ci): resync generated baselines and line runtime seam
2026-03-22 19:53:26 -07:00
Vincent Koc
a83b7bca15
refactor(plugin-sdk): route core provider and telegram seams through sdk barrels
2026-03-22 19:43:19 -07:00
Vincent Koc
042669d8c8
refactor(plugins): finish provider and whatsapp cleanup
2026-03-22 19:13:25 -07:00
Peter Steinberger
ecdf5d457a
test: fix latest main test regressions
2026-03-22 18:28:13 -07:00
Vincent Koc
cbf9cd0acb
fix(ci): repair main checks
2026-03-22 18:13:14 -07:00
Vincent Koc
a61e5d17f0
deps: update fast-xml-parser and markdown-it ( #52541 )
...
* style: format test files
* deps: bump fast-xml-parser override
2026-03-22 17:55:47 -07:00
Vincent Koc
de6bf58e79
refactor(tts): move speech providers into plugins
2026-03-22 17:48:59 -07:00
Vincent Koc
1d08ad4bac
refactor(tts): remove legacy core speech builders
2026-03-22 17:48:09 -07:00
Peter Steinberger
593e333c10
perf: avoid plugin loader on provider fast paths
2026-03-22 21:28:16 +00:00
Vincent Koc
26db578edc
perf(inbound): trim reply startup imports ( #52470 )
...
* perf(inbound): trim dispatch and command startup imports
* fix(reply): restore command alias canonicalization
* style(reply): format command context
* fix(reply): restore runtime shim exports
* test(reply): mock ACP route seam
* fix(reply): repair dispatch type seams
* perf(inbound): defer followup reply helpers
* refactor(tts): share auto mode normalization
* fix(reply): catch followup compaction notice failures
2026-03-22 14:04:00 -07:00
Vincent Koc
5369ea53be
perf(inbound): trim dispatch and command startup imports ( #52374 )
...
* perf(inbound): trim dispatch and command startup imports
* fix(reply): restore command alias canonicalization
* style(reply): format command context
* fix(reply): restore runtime shim exports
* test(reply): mock ACP route seam
* fix(reply): repair dispatch type seams
2026-03-22 13:19:57 -07:00
Peter Steinberger
1ceaad18a6
test: harden vitest no-isolate coverage
2026-03-22 10:48:21 -07:00
Peter Steinberger
14074d3337
fix: restore repo-wide gate after upstream sync
2026-03-22 17:16:43 +00:00
Peter Steinberger
4229ffe2b9
perf: reduce runtime and test startup overhead
2026-03-21 20:18:16 +00:00
Matthew19990919
fb50c98d67
fix(tts): add matrix to VOICE_BUBBLE_CHANNELS ( #37080 )
...
Merged via squash.
Prepared head SHA: 89ca0355d4
Co-authored-by: Matthew19990919 <504525675@qq.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-21 11:29:53 -07:00
Pandadadadazxf
2fe0efc9e1
fix: compaction safeguard summary budget ( #27727 )
...
Merged via squash.
Prepared head SHA: a7ab64e394
Co-authored-by: Pandadadadazxf <200469161+Pandadadadazxf@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-21 09:27:51 -07:00
Vincent Koc
2e8c8a7ae6
refactor(openai): centralize provider defaults
2026-03-21 08:40:03 -07:00
zidongdesign
2b68d20ab3
feat: notify user when context compaction starts and completes ( #38805 )
...
Merged via squash.
Prepared head SHA: 0f48c1bbf6
Co-authored-by: zidongdesign <81469543+zidongdesign@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-21 08:14:29 -07:00
Ayaan Zaidi
42e708d005
fix(agents): register simple completion transports
2026-03-21 17:22:31 +05:30
Ayaan Zaidi
47e412bd0b
fix(review): preserve talk directive overrides
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
84ee6fbb76
feat(tts): add in-memory speech synthesis
2026-03-20 11:01:24 +05:30
Vincent Koc
962a8fea90
test(ci): trim thread lane harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
ef1346e503
Plugin SDK: route reply payload through public subpath
2026-03-18 12:01:15 -07:00
Peter Steinberger
62edfdffbd
refactor: deduplicate reply payload handling
2026-03-18 18:14:57 +00:00
Peter Steinberger
eef0f5bfbc
test: merge tts config gating cases
2026-03-17 16:21:58 +00:00
Peter Steinberger
5fb7a1363f
fix: stabilize full gate
2026-03-17 07:06:25 +00:00
Peter Steinberger
026d8ea534
fix: unblock full gate
2026-03-17 07:06:24 +00:00
Peter Steinberger
01c89a7985
refactor(tts): share provider readiness checks
2026-03-17 06:24:01 +00:00
Peter Steinberger
aa2d5aaa0c
feat(plugins): add image generation capability
2026-03-16 22:58:55 -07:00
Peter Steinberger
57f1ab1fca
feat(tts): enrich speech voice metadata
2026-03-16 20:27:34 -07:00
Peter Steinberger
622f13253b
feat(tts): add microsoft voice listing
2026-03-16 20:24:13 -07:00
Peter Steinberger
85781353ec
feat(plugins): expand speech runtime ownership
2026-03-16 20:01:24 -07:00
Peter Steinberger
662031a88e
feat(plugins): add speech provider registration
2026-03-16 18:50:09 -07:00
Frank Yang
4bb8a65edd
fix: forward forceDocument through sendPayload path (follow-up to #45111 ) ( #47119 )
...
Merged via squash.
Prepared head SHA: d791190f83
Co-authored-by: thepagent <262003297+thepagent@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-15 17:23:53 +08:00
Jinhao Dong
8e4a1d87e2
fix(openrouter): silently dropped images for new OpenRouter models — runtime capability detection ( #45824 )
...
* fix: fetch OpenRouter model capabilities at runtime for unknown models
When an OpenRouter model is not in the built-in static snapshot from
pi-ai, the fallback hardcodes input: ["text"], silently dropping images.
Query the OpenRouter API at runtime to detect actual capabilities
(image support, reasoning, context window) for models not in the
built-in list. Results are cached in memory for 1 hour. On API
failure/timeout, falls back to text-only (no regression).
* feat(openrouter): add disk cache for OpenRouter model capabilities
Persist the OpenRouter model catalog to ~/.openclaw/cache/openrouter-models.json
so it survives process restarts. Cache lookup order:
1. In-memory Map (instant)
2. On-disk JSON file (avoids network on restart)
3. OpenRouter API fetch (populates both layers)
Also triggers a background refresh when a model is not found in the cache,
in case it was newly added to OpenRouter.
* refactor(openrouter): remove pre-warm, use pure lazy-load with disk cache
- Remove eager ensureOpenRouterModelCache() from run.ts
- Remove TTL — model capabilities are stable, no periodic re-fetching
- Cache lookup: in-memory → disk → API fetch (only when needed)
- API is only called when no cache exists or a model is not found
- Disk cache persists across gateway restarts
* fix(openrouter): address review feedback
- Fix timer leak: move clearTimeout to finally block
- Fix modality check: only check input side of "->" separator to avoid
matching image-generation models (text->image)
- Use resolveStateDir() instead of hardcoded homedir()/.openclaw
- Separate cache dir and filename constants
- Add utf-8 encoding to writeFileSync for consistency
- Add data validation when reading disk cache
* ci: retrigger checks
* fix: preload unknown OpenRouter model capabilities before resolve
* fix: accept top-level OpenRouter max token metadata
* fix: update changelog for OpenRouter runtime capability lookup (#45824 ) (thanks @DJjjjhao)
* fix: avoid redundant OpenRouter refetches and preserve suppression guards
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-15 11:48:39 +05:30
Hiago Silva
946c24d674
fix: validate edge tts output file is non-empty before reporting success ( #43385 ) thanks @Huntterxx
...
Merged after review.\n\nSmall, scoped fix: treat 0-byte Edge TTS output as failure so provider fallback can continue.
2026-03-14 20:22:09 -05:00
Peter Steinberger
d1fda7b8f2
refactor: share tts request setup
2026-03-14 01:41:16 +00:00