Bob
c2634b5e40
Agents: raise default timeout to 48h ( #51874 )
2026-03-21 21:54:46 +01:00
Peter Steinberger
4229ffe2b9
perf: reduce runtime and test startup overhead
2026-03-21 20:18:16 +00:00
Zhenye Dong
80959219ce
fix(update): make up-to-date package status explicit ( #51409 )
...
Merged via squash.
Prepared head SHA: 75aba35882
Co-authored-by: dongzhenye <5765843+dongzhenye@users.noreply.github.com >
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com >
Reviewed-by: @mcaxtr
2026-03-21 17:17:14 -03:00
Peter Steinberger
bfcfc17a8b
refactor: tighten plugin sdk entry surface
2026-03-21 20:08:01 +00:00
Peter Steinberger
c29ba9d21a
fix(docs): handle anchors in docs link audit
2026-03-21 19:58:36 +00:00
Bob
8cac327c19
ACP: recover hung bound turns ( #51816 )
...
* ACP: add hung-turn starvation repro
* ACP: recover hung bound turns
* ACP: preserve timed-out session handles
---------
Co-authored-by: Onur <2453968+osolmaz@users.noreply.github.com >
2026-03-21 20:54:30 +01:00
samzong
5c05347d11
fix(compaction): make compaction guard content-aware to prevent false cancellations in heartbeat sessions ( #42119 )
...
Merged via squash.
Prepared head SHA: 3429643315
Co-authored-by: samzong <13782141+samzong@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-21 12:27:35 -07:00
Menglin Li
ef7a5c3546
fix: use content hash for memory flush dedup instead of compactionCount ( #30115 ) ( #34222 )
...
Merged via squash.
Prepared head SHA: bce6f0bda0
Co-authored-by: lml2468 <39320777+lml2468@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-21 12:06:25 -07: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
Jari Mustonen
fd2b3ed6af
feat(memory): pluggable system prompt section for memory plugins ( #40126 )
...
Merged via squash.
Prepared head SHA: 5228d1937f
Co-authored-by: jarimustonen <1272053+jarimustonen@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-21 11:20:45 -07:00
Peter Steinberger
ebfc5f8240
fix: detect nvm services from installed command ( #51146 )
2026-03-21 11:06:31 -07:00
Peter Steinberger
40f5305cd2
fix: handle Linux nvm CA env before startup ( #51146 ) (thanks @GodsBoy)
2026-03-21 11:06:31 -07:00
scoootscooob
d6367c2c55
refactor: route Telegram runtime through plugin sdk ( #51772 )
2026-03-21 10:24:56 -07:00
scoootscooob
c0e482f4bd
refactor: route iMessage runtime through plugin sdk ( #51770 )
2026-03-21 10:21:20 -07:00
scoootscooob
6516cfa566
refactor: route Slack runtime through plugin sdk ( #51766 )
2026-03-21 10:11:17 -07:00
Vincent Koc
4e979ea6ca
refactor(doctor): extract provider and shared config helpers ( #51753 )
...
* refactor(doctor): add shared doctor types
* refactor(doctor): add shared allowlist helpers
* refactor(doctor): extract empty allowlist warnings
* refactor(doctor): extract telegram allowfrom scanning
* refactor(doctor): extract telegram allowfrom repair
* refactor(doctor): extract discord id repair
* refactor(doctor): add shared object helpers
* refactor(doctor): extract mutable allowlist scanning
* refactor(doctor): extract open-policy allowfrom repair
* refactor(doctor): extract allowlist policy repair
* fix(doctor): unblock discord provider refactor checks
* refactor(doctor): fix provider layering in shared warnings
2026-03-21 10:09:38 -07:00
Harold Hunt
e24bf22f98
Fix Discord /codex_resume picker expiration ( #51260 )
...
Merged via squash.
Prepared head SHA: 76eb184dbe
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Reviewed-by: @huntharo
2026-03-21 12:59:21 -04:00
Vincent Koc
f4227e2787
fix(ci): remove duplicate embedding default export
2026-03-21 09:39:37 -07:00
Vincent Koc
e61835ec5e
fix(ci): restore embedding defaults and plugin boundaries
2026-03-21 09:32:14 -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
Val Alexander
7c520cc0ea
web UI: fix context notice using accumulated inputTokens instead of prompt snapshot ( #51721 )
...
The context-usage banner in the web UI fell back to inputTokens when
totalTokens was missing. inputTokens is accumulated across all API
calls in a run (tool-use loops, compaction retries), so it overstates
actual context window utilization -- e.g. showing "100% context used
757.3k / 200k" when the real prompt snapshot is only 46k/200k (23%).
Drop the inputTokens fallback so the banner only fires when a genuine
prompt snapshot (totalTokens) is available.
Made-with: Cursor
2026-03-21 11:16:32 -05:00
Vincent Koc
15fd11032d
fix(status): skip cold-start status probes
2026-03-21 08:59:19 -07:00
Vincent Koc
a267c5d9ae
refactor(doctor): extract telegram provider warnings ( #51704 )
...
* refactor(doctor): extract telegram provider warnings
* docs(changelog): note doctor provider refactor
2026-03-21 08:57:06 -07:00
Vincent Koc
a90c5092f2
fix(telegram): default fresh setups to mention-gated groups
2026-03-21 08:54:23 -07:00
Vincent Koc
91b9be1549
docs(changelog): note telegram doctor first-run guidance
2026-03-21 08:46:28 -07:00
Vincent Koc
2ead75ea0e
fix(doctor): add telegram first-run guidance
2026-03-21 08:46:28 -07:00
Vincent Koc
7918308b1a
fix(doctor): suppress telegram fresh-install group warning
2026-03-21 08:46:28 -07:00
Vincent Koc
06b4efb1e7
fix(configure): drop duplicate wizard header
2026-03-21 08:41:57 -07:00
Vincent Koc
2e8c8a7ae6
refactor(openai): centralize provider defaults
2026-03-21 08:40:03 -07:00
Vincent Koc
931fc9989d
docs(changelog): note fresh setup provider guidance
2026-03-21 08:34:44 -07:00
Vincent Koc
4c4eea97e9
fix(configure): tighten fresh setup provider UX
2026-03-21 08:34:44 -07:00
Vincent Koc
ffce904a10
fix(check): format onboard search test
2026-03-21 08:33:15 -07:00
Vincent Koc
a27aeeabf0
docs(changelog): note web search key copy
2026-03-21 08:22:52 -07:00
Vincent Koc
265386cd6b
feat(plugins): register claude bundle commands natively
2026-03-21 08:14:48 -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
Vincent Koc
1169d51aee
fix(onboarding): clarify web search key copy
2026-03-21 08:13:39 -07:00
Vincent Koc
1698726c18
chore(deps): dedupe pnpm lockfile
2026-03-21 08:03:42 -07:00
Harold Hunt
5eb99a9b50
Infra: unify plugin split runtime state ( #50725 )
...
Merged via squash.
Prepared head SHA: 570b7b9459
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Reviewed-by: @huntharo
2026-03-21 11:00:21 -04:00
Dinakar Sarbada
1643d15057
fix(matrix): pass agentId to buildMentionRegexes for agent-level mention patterns ( #51272 )
...
* fix(matrix): pass agentId to buildMentionRegexes for agent-level mention patterns
* fix(matrix): resolve conflicts from main branch
* Retrigger CI
---------
Co-authored-by: Dinakar Sarbada <dinakars777@users.noreply.github.com >
2026-03-21 07:43:59 -07:00
Vincent Koc
a3a5cad7d7
fix(onboarding): hide image-only auth providers
2026-03-21 07:42:42 -07:00
scoootscooob
f10d054745
refactor: route discord runtime through plugin sdk ( #51444 )
2026-03-21 07:40:51 -07:00
Echo
11aff6ed72
fix(auth): support remote Codex OAuth manual input ( #51631 )
...
* fix(auth): support remote codex oauth manual input
* fix: support remote Codex OAuth manual input (#51631 ) (thanks @cash-echo-bot)
---------
Co-authored-by: Cash Williams <cashwilliams@gmail.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-21 19:40:54 +05:30
Bijin
59c4059647
Add Community plugins - Wecom ( #29905 )
...
Merged via squash.
Prepared head SHA: da0f08436c
Co-authored-by: sliverp <38134380+sliverp@users.noreply.github.com >
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-21 22:03:24 +08:00
Tak Hoffman
4af79f20d5
fix ci main cancellation behavior
2026-03-21 08:57:37 -05:00
Harold Hunt
35e6310b22
Docs: refresh generated config baseline ( #51625 )
2026-03-21 09:41:56 -04:00
fuller-stack-dev
c9449d77b4
feat(gateway): persist webchat inbound images to disk ( #51324 )
...
* feat(gateway): persist webchat inbound images to disk
Images sent via the webchat control UI (chat.send RPC) were parsed into
content blocks but never written to disk, unlike WhatsApp and Telegram
handlers which call saveMediaBuffer(). This caused:
- Images lost after conversation compaction (only existed as ephemeral base64)
- Image editing/generation workflows failing for webchat-origin images
- Incomplete ~/.openclaw/media/inbound/ directory
After parseMessageWithAttachments extracts parsedImages, iterate and
persist each via saveMediaBuffer(buffer, mimeType, 'inbound'). Uses
fire-and-forget (.catch + warn log) so disk I/O never blocks the
chat.send response path.
Fixes #47930
* fix(gateway): address PR review comments on webchat image persistence
- Move saveMediaBuffer calls after sendPolicy/stop/dedupe checks so
rejected or retried requests don't write files to disk (Codex P1)
- Await all saves and collect SavedMedia results into persistedImages
so the persisted paths are available in scope (Greptile P1)
- Preserve Error stack trace in warn log instead of coercing to
toString() (Greptile P2)
- Switch to Promise.all for concurrent writes
* fix(gateway): address remaining review comments on webchat image persistence
- Revert to fire-and-forget pattern (no await) to eliminate race window
where retried requests miss the in-flight guard during image saves
- Remove unused SavedMedia import and persistedImages collection
- Use formatForLog for consistent error logging with stack traces
- Add NOTE comment about path propagation being a follow-up task
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix(gateway): gate image persistence to webchat callers and defer base64 decode
* fix: drop unrelated format churn in lifecycle.test.ts
* gateway: clarify image persistence scope covers all chat.send callers
* fix(gateway): use generic chat.send log prefix for image persistence warnings
* fix(gateway): persist chat.send image refs in transcript
* fix(gateway): keep chat.send image refs off visible text
* fix(gateway): persist chat send media refs on dispatch
* fix(gateway): serialize chat send image persistence
* fix(gateway): persist chat send media after dispatch
* fix: persist chat.send inbound images across follow-ups (#51324 ) (thanks @fuller-stack-dev)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-21 19:05:11 +05:30
RichardCao
7bf437402d
fix: trim config validation startup imports ( #51574 )
...
Merged via squash.
Prepared head SHA: 23b235e465
Co-authored-by: RichardCao <4612401+RichardCao@users.noreply.github.com >
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com >
Reviewed-by: @huntharo
2026-03-21 09:31:39 -04:00
Tak Hoffman
6db6e117df
fix(ui): use current session context usage in chat notice
2026-03-21 08:18:27 -05:00
Harold Hunt
8d733350de
CI: run config docs drift check on PRs ( #51618 )
2026-03-21 09:13:41 -04:00
fuller-stack-dev
5137a51307
feat(github-copilot): resolve any model ID dynamically ( #51325 )
...
* feat(github-copilot): resolve any model ID dynamically instead of only known ones
* refactor(github-copilot): extract model resolution, add reasoning heuristic and tests
* fix(github-copilot): default synthetic models to text-only input
* ci: retrigger checks
* copilot: mark synthetic catch-all models as vision-capable
* fix(github-copilot): anchor reasoning regex, unexport internal constants, add mid-string test
* fix(github-copilot): default synthetic models to text-only input
* fix(github-copilot): restore image input for synthetic models with explanatory comment
* fix(github-copilot): normalize registry lookup casing, add bare o3 test case
* fix: preserve configured overrides for dynamic models
* fix: allow dynamic GitHub Copilot models (#51325 ) (thanks @fuller-stack-dev)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-21 17:37:50 +05:30