Commit Graph

8243 Commits

Author SHA1 Message Date
pashpashpash
5bcc321343 Scope Codex heartbeat guidance to heartbeat turns (#76788)
* fix(codex): scope heartbeat guidance to collaboration mode

* fix heartbeat tool direct context

* test prompt heartbeat collaboration snapshots

* fix heartbeat changelog credit
2026-05-04 01:58:39 +09:00
Peter Steinberger
4e82cacc84 fix(voice-call): summarize restored call verification logs 2026-05-03 17:44:21 +01:00
Peter Steinberger
1c7cbf55b9 test(discord): type tracked target resolver mock 2026-05-03 17:44:13 +01:00
Peter Steinberger
5039a35a33 fix(discord): preserve tracked reaction targets 2026-05-03 17:44:13 +01:00
Peter Steinberger
788cff1df4 Add opt-in reaction tool tracking 2026-05-03 17:44:13 +01:00
Peter Steinberger
a38c2c233a fix(memory): split vector store readiness 2026-05-03 17:38:47 +01:00
Peter Steinberger
5330cbb25d refactor(telegram): clarify reply supersession fence 2026-05-03 17:25:58 +01:00
Peter Steinberger
2696baba81 fix(telegram): suppress superseded turn replies 2026-05-03 17:25:58 +01:00
chinar-amrutkar
463493aa28 fix(telegram): suppress stale replies when dispatch is superseded
When a newer inbound message arrives while an older dispatch is still
processing, buffered final answers from the old dispatch could be
delivered into the new message's thread.

Add `bufferedGeneration` to `BufferedFinalAnswer` to track which
abort fence generation buffered the answer. `takeBufferedFinalAnswer`
now rejects buffered answers whose generation doesn't match the
current dispatch's generation, preventing stale content delivery.

Fixes #76642
2026-05-03 17:25:58 +01:00
Peter Steinberger
7b5a18ae7a fix(google-meet): keep CLI sessions gateway-owned 2026-05-03 17:22:59 +01:00
Peter Steinberger
0636442cde fix(discord): send early typing cue for accepted DMs
Co-authored-by: chinar-amrutkar <chinar.amrutkar@gmail.com>
2026-05-03 17:10:07 +01:00
Ayaan Zaidi
fc293b1a53 test(telegram): cover forum topic queued finals 2026-05-03 21:31:56 +05:30
Ayaan Zaidi
5130622750 fix(telegram): require observed final delivery 2026-05-03 21:31:56 +05:30
clawsweeper
453be4216b fix(memory): keep plain status from probing embedding providers 2026-05-03 17:01:42 +01:00
Peter Steinberger
77a50db9ea feat(qa): add Mantis Discord status reaction scenario (#76747)
* feat(qa): add Mantis Discord status reaction scenario

* fix(qa): retry Discord rate limits in Mantis runs

* refactor(qa): reuse Discord API retry helper

* fix(qa): import Discord API through package surface

* fix(ci): generate Discord boundary declarations

* fix(ci): keep xai boundary overrides stable
2026-05-03 17:00:06 +01:00
Peter Steinberger
6becfcb275 test(telegram): cover visible error fresh final 2026-05-03 16:53:06 +01:00
jack-stormentswe
2b38345c8a fix(telegram): force fresh final after visible intermediate output (#76529) 2026-05-03 16:53:06 +01:00
Peter Steinberger
9dc0f10f8a test: type codex dynamic tool fixture 2026-05-03 16:40:46 +01:00
Peter Steinberger
1bfc66da33 test: avoid codex app-server factory race 2026-05-03 16:34:49 +01:00
Peter Steinberger
e2c8db2cad fix(telegram): warn on selected quote tool progress 2026-05-03 16:24:38 +01:00
Peter Steinberger
5e830508b6 test: stabilize release validation lanes 2026-05-03 16:24:17 +01:00
Shuxin Zheng
b8bc8423d2 fix(discord): normalize CJK/whitespace in slash-command description comparison to prevent spurious reconcile PATCH + 429 (#76588)
* fix(discord): normalize whitespace in command description comparison

Discord server-side storage collapses consecutive whitespace and removes
whitespace between adjacent CJK characters when persisting slash-command
descriptions. Our locally-serialized desired descriptors keep the original
whitespace, so commandsEqual returned false on every startup for any
deployment with multi-line or CJK-heavy descriptions.

This caused reconcile to issue a PATCH for every such command on every
gateway restart. Under Discord's per-application rate limit that quickly
produced a burst of 429s and some commands silently failed to register
until the next restart — a recurring symptom behind several Discord deploy
429 reports (#75341, #75888).

Fix: apply the same two normalizations to description strings in
comparableCommand — collapse runs of whitespace to a single space, then
drop whitespace between CJK boundary characters — before JSON-based
equality. This mirrors Discord's storage semantics so round-tripped
descriptions compare equal.

Adds command-deploy.test.ts with regression coverage for:
- server-side default fields ignored (dm_permission, nsfw, version, ids)
- required:false treated as absent (existing behavior)
- CJK descriptions with \n separators normalized
- mixed CJK/ASCII descriptions with consecutive whitespace
- substantive description diffs still flagged
- ASCII whitespace normalization

* fix(discord): normalize localized command descriptions

* fix(discord): ignore null localization maps in command reconcile

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-03 16:22:41 +01:00
MkDev11
38eea33062 fix(opencode): expose Claude thinking policy (#76760)
Summary:
- Adds an OpenCode provider-policy public artifact that delegates Claude thinking profiles, plus regression tests and a changelog entry for preserving `xhigh` on `opencode/claude-opus-4-7`.
- Reproducibility: yes. Source inspection on current main shows the model-switch path remaps unsupported store ... vider-policy-api` artifact for the fallback resolver; the proposed test exercises that stored-`xhigh` path.

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

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

Prepared head SHA: efa152cca5
Review: https://github.com/openclaw/openclaw/pull/76760#issuecomment-4366483080

Co-authored-by: mkdev11 <MkDev11@users.noreply.github.com>
2026-05-03 15:22:07 +00:00
hcl
081f873162 fix(active-memory): skip scoped topic channelId for embedded recall run in Telegram forum topics (#76704) (openclaw#76719)
Verified:
- pnpm install --frozen-lockfile
- pnpm test extensions/active-memory/index.test.ts
- pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts CHANGELOG.md
- git diff --check origin/main..HEAD

Co-authored-by: hclsys <7755017+hclsys@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-05-03 10:19:32 -05:00
Ayaan Zaidi
5b94c4ce93 fix(telegram): start polling after webhook cleanup timeout (#76735)
Summary:
- The branch changes Telegram polling startup to reuse the successful probe `getMe` result as grammY `botInfo` ... es` after recoverable `deleteWebhook` failures, and updates Telegram docs, changelog, and regression tests.
- Reproducibility: yes. for the narrow PR bug: source inspection shows current main can block before polling o ... d timeout coverage that reaches `run()`. The full linked high-RTT report remains only partially reproduced.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: fix(telegram): start polling after webhook cleanup timeout
- Included post-review commit in the final squash: fix(telegram): extract bot info contract

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

Prepared head SHA: c74bbdd1ff
Review: https://github.com/openclaw/openclaw/pull/76735#issuecomment-4366417178

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-03 15:16:32 +00:00
Peter Steinberger
9e56cfcc35 perf(gateway): cache startup metadata probes 2026-05-03 16:07:06 +01:00
Peter Steinberger
0949f4fe51 fix(discord): honor explicit tool-only status reactions (#76733) 2026-05-03 15:44:42 +01:00
Vishal Jain
0e4d28aa9e fix(codex): force message tool for source replies (#76663)
* fix(codex): force message tool for source replies

* docs: credit codex source reply fix (#76663) (thanks @VishalJ99)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-03 15:29:07 +01:00
Peter Steinberger
8b945bcbea fix(feishu): satisfy queue timeout lint 2026-05-03 15:28:12 +01:00
Martin Garramon
0028e6040a fix(feishu): cap per-chat queue task wait so a single hang doesn't starve later messages
Per-chat sequential queue had no timeout: if a single dispatch hung
(e.g. an agent call that never resolved), every subsequent message in
the same chat stayed `queued` until the gateway was restarted.

Add an optional `taskTimeoutMs` (default 5 min) to `createSequentialQueue`.
After the cap, the in-flight task is evicted from the blocking chain so
newer same-key tasks can proceed. The original task is NOT aborted —
it continues running in the background; we just stop starving the queue.
A warning log surfaces the eviction with the offending key.

`taskTimeoutMs: 0` restores legacy unbounded behavior.

Same-chat FIFO ordering for normal-cadence messages is preserved
(see #64324) — only pathologically slow tasks get evicted.

Fixes #70133.
2026-05-03 15:28:12 +01:00
Peter Steinberger
0bf06e953f feat: add Mantis Discord smoke runner (#76696)
* docs: add Mantis QA system design

* feat: add Mantis Discord smoke runner

* fix: harden Mantis Discord smoke

* fix: redact Mantis Discord artifacts

* fix: satisfy Mantis redaction lint

* fix: redact Mantis mismatch failures

* test: avoid promise assertions in Mantis tests
2026-05-03 15:25:56 +01:00
Vincent Koc
877eb1cbed fix(heartbeat): align response tool prompts (#76458)
* fix(heartbeat): align response tool prompts

* docs(changelog): credit heartbeat prompt fix
2026-05-03 07:19:56 -07:00
Tyler Nishida
796c1e67c3 fix message-tool-only telegram fallback (#76272) 2026-05-03 23:15:53 +09:00
Peter Steinberger
7488d8f1fe test: align release branch expectations 2026-05-03 15:12:37 +01:00
Peter Steinberger
39c5bbf08e fix(codex): mark approval event emission fire-and-forget 2026-05-03 15:04:02 +01:00
Peter Steinberger
8c95664e55 fix: keep runtime model auth alias after build
(cherry picked from commit f352caf07e)
2026-05-03 14:37:17 +01:00
Peter Steinberger
c02bf2f399 refactor: share transcript append path 2026-05-03 14:10:09 +01:00
Chunyue Wang
c1b9af2770 fix(ollama): restore catalog-driven num_ctx for native /api/chat (#76181)
Merged via squash.

Prepared head SHA: d3142252d5
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Reviewed-by: @openperf
2026-05-03 19:47:36 +08:00
volcano303
1d657b9d5f fix(active-memory): preserve setup grace for embedded recall
Apply setupGraceTimeoutMs to the embedded recall runner as well as the outer Active Memory watchdog.

Co-authored-by: volcano303 <75143900+volcano303@users.noreply.github.com>
2026-05-03 12:41:19 +01:00
Peter Steinberger
c850d1bb0d fix(qqbot): harden clientSecret SecretRefs 2026-05-03 12:25:08 +01:00
xialonglee
40f970a13d feat(qqbot): resolve clientSecret SecretRefs and add secret contract 2026-05-03 12:25:08 +01:00
Peter Steinberger
5e9135f2e2 fix: keep active memory tools available 2026-05-03 12:24:03 +01:00
Peter Steinberger
8dd6a2d323 fix(channels): preserve degraded voice text and mention boundaries 2026-05-03 12:17:11 +01:00
Vincent Koc
ae87f7800b test(matrix): isolate IndexedDB persistence fixtures 2026-05-03 03:18:00 -07:00
Vincent Koc
3ee5df618a Revert "fix(plugins): align beta external launch metadata"
This reverts commit 34581bf46c.
2026-05-03 02:53:36 -07:00
Vincent Koc
34581bf46c fix(plugins): align beta external launch metadata 2026-05-03 02:51:18 -07:00
hcl
bdf91fab9c fix(realtime): strip originator header from browser WebRTC SDP offer (#76435)
Remove server-side-only OpenAI attribution headers from browser WebRTC SDP offer headers while preserving Gateway-side attribution.

Closes #76435.
Thanks @hclsys.
2026-05-03 02:24:03 -07:00
buyitsydney
aba97a4c7c fix(memory): reindex archived session transcript updates 2026-05-03 02:15:20 -07:00
Vincent Koc
31e2276fe9 fix(memory): load unconfigured lancedb metadata 2026-05-03 01:57:36 -07:00
solodmd
d1365fef16 fix: handle ENOSPC file watcher errors gracefully (#73357)
Merged via squash.

Prepared head SHA: ce2dd6ed3e
Co-authored-by: solodmd <51304754+solodmd@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-05-03 11:42:38 +03:00