Commit Graph

40604 Commits

Author SHA1 Message Date
Peter Steinberger
e2c8db2cad fix(telegram): warn on selected quote tool progress 2026-05-03 16:24:38 +01:00
GodsBoy
b336efdd9c docs(telegram, streaming): note replyToMode and toolProgress mutual exclusion
Document that channels.telegram.streaming.preview.toolProgress requires
channels.telegram.replyToMode: 'off'. Quote-reply requires the final message
reference at send time, which is incompatible with preview-edit streaming, so
the two features are mutually exclusive on Telegram.

Adds:
- Note callout in docs/channels/telegram.md after the existing toolProgress
  guidance, explaining the exclusion and how to restore visibility.
- Cross-link bullet in docs/concepts/streaming.md pointing to the Telegram
  channel doc for the full note.

Surfaces a doc/runtime gap that has been silent since v2026.4.22.
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
Peter Steinberger
686585eccf docs(telegram): clarify polling startup network notes (#76768) 2026-05-03 16:21:41 +01: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
Sally O'Malley
d0497d13d1 fix(macos): mask sensitive wizard cli prompts (#76746)
Merged via squash.

Prepared head SHA: 8a63773e22
Reviewed-by: @sallyom
2026-05-03 11:10:08 -04:00
Peter Steinberger
ee64b3c100 docs(changelog): note session latency fix (#76676) (thanks @VACInc) 2026-05-03 16:08:35 +01:00
VACInc
a0e526c163 fix(ui): avoid session list reloads for chat turns 2026-05-03 16:08:35 +01:00
Peter Steinberger
9e56cfcc35 perf(gateway): cache startup metadata probes 2026-05-03 16:07:06 +01:00
vinhnguyenthanhdn
f8141da4a6 test(session): prevent regression where session repair trims final assistant response after tool usage (#76538)
Summary:
- Adds a Vitest regression case in `src/agents/session-file-repair.test.ts` for `repairSessionFileIfNeeded` preserving a final stop assistant message after a tool-call/tool-result pair.
- Reproducibility: yes. The added JSONL sequence can be traced through current `repairSessionFileIfNeeded`: no ... ry, so the function returns `repaired: false`; I did not execute the test because this review is read-only.

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

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

Prepared head SHA: ee3aa0e036
Review: https://github.com/openclaw/openclaw/pull/76538#issuecomment-4365670008

Co-authored-by: Vinh Nguyen <vinhnt36@fpt.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 15:06:28 +00:00
Peter Steinberger
11e05e86a2 fix(agents): scope gpt-5.4-mini chat reasoning fallback (#76727)
Fixes #76176.

OpenAI live verification showed `gpt-5.4-mini` supports reasoning effort generally, but rejects `/v1/chat/completions` payloads that combine function tools with `reasoning_effort`. This keeps reasoning effort for tool-free Chat Completions and Responses, and omits it only for the rejected Chat Completions + function tools combination.

Validation:
- Live OpenAI API matrix on 2026-05-03
- pnpm test src/agents/openai-reasoning-effort.test.ts src/agents/openai-transport-stream.test.ts -- --reporter=verbose
- GitHub PR CI green on ea3915308c

Thanks @ThisIsAdilah and @chinar-amrutkar.
2026-05-03 16:02:15 +01:00
rolandrscheel
aeac10f5ce fix(plugins): reuse workspace metadata for session model refs (#76655)
Fixes the session-list plugin metadata hot path by reusing the active workspace-scoped plugin metadata snapshot for manifest model-id normalization and setup CLI backend fallback. Also keeps model-pricing collection on its provided manifest registry and fixes the CI-only hoisted test mock failure.

Validated with targeted plugin/gateway/model-selection tests, CI-shaped gateway startup shard, Testbox `pnpm check:changed`, and green PR CI.

Thanks @rolandrscheel.
2026-05-03 15:58:14 +01:00
Peter Steinberger
935f078a89 perf(gateway): skip force port scan when free 2026-05-03 15:52:57 +01:00
Peter Steinberger
72072d8b2e perf(gateway): lazy load ws and aux handlers 2026-05-03 15:52:57 +01:00
Peter Steinberger
bd79b25bb7 perf(gateway): defer task registry startup imports 2026-05-03 15:52:57 +01:00
Peter Steinberger
0949f4fe51 fix(discord): honor explicit tool-only status reactions (#76733) 2026-05-03 15:44:42 +01:00
Peter Steinberger
34bc31fb2c test: accept concise transport replay response 2026-05-03 15:37:21 +01:00
ANURAG BHEEMAPPA GNANAMURTHY
727398f41a fix(onboarding): mask token/credential inputs in CLI wizard prompts (#76693)
Summary:
- The PR adds `sensitive` support to wizard text prompts, routes sensitive Clack prompts through `password()`, ...  preserves existing gateway secrets through masked-preview confirms, and adds tests plus a changelog entry.
- Reproducibility: yes. Source inspection shows current main routes onboarding credential entry through visibl ... y provides a concrete Windows PowerShell `openclaw onboard --install-daemon` reproduction with screenshots.

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

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

Prepared head SHA: a3db64c265
Review: https://github.com/openclaw/openclaw/pull/76693#issuecomment-4366253531

Co-authored-by: anurag-bg-neu <bheemappagnanamurt.a@northeastern.edu>
2026-05-03 14:33:58 +00: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
ffdc76bb0c docs(changelog): thank feishu queue contributor 2026-05-03 15:28:12 +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
Peter Steinberger
6aa4fb7a69 test(ui): cover deferred skills dialog opening 2026-05-03 15:23:18 +01:00
Nickmopen
69f03f134f chore: add changelog entry for skills dialog showModal fix 2026-05-03 15:23:18 +01:00
Nickmopen
e8227fd7b3 fix(ui): defer showModal until dialog is connected to DOM 2026-05-03 15:23:18 +01:00
MkDev11
d6900ee500 fix(plugins): load explicit hook plugins at startup (#76684) (thanks @MkDev11)
Includes explicitly enabled hook-capable plugins in the Gateway startup runtime scope and adds regression coverage for startup hook plugin gating.
2026-05-03 15:20:42 +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
Peter Steinberger
103b6d50a5 fix: resolve bundled public surfaces from packaged dist
(cherry picked from commit 8771cfb5b7)
2026-05-03 15:15:56 +01:00
Peter Steinberger
1110c249ae test: keep windows smoke compatible with old agent cli
(cherry picked from commit bf91494035)
2026-05-03 15:15:56 +01:00
Peter Steinberger
3a5a2bfaf4 test: accept externalized discord voice fallback
(cherry picked from commit 13424b9b3e)
2026-05-03 15:15:56 +01:00
Peter Steinberger
96b574f486 fix: honor package excludes in channel pack smoke
(cherry picked from commit 5305b172a3)
2026-05-03 15:15:56 +01:00
Tyler Nishida
796c1e67c3 fix message-tool-only telegram fallback (#76272) 2026-05-03 23:15:53 +09:00
Josh Lehman
30018bddc6 fix: restore verbose tool progress in chats (#76716)
* fix: restore verbose tool progress in chats

* test: fix gateway verbose mock types
2026-05-03 07:14:39 -07:00
Peter Steinberger
0b9a063a5b test: keep release dependency fixture title 2026-05-03 15:12:37 +01:00
Peter Steinberger
7488d8f1fe test: align release branch expectations 2026-05-03 15:12:37 +01:00
Peter Steinberger
4457ddd489 chore: drop root oxlint tsconfigs 2026-05-03 15:12:06 +01:00
Peter Steinberger
ad1ccd671b chore: move oxlint tsconfigs under config 2026-05-03 15:12:06 +01:00
Peter Steinberger
39c5bbf08e fix(codex): mark approval event emission fire-and-forget 2026-05-03 15:04:02 +01:00
Peter Steinberger
95f5b265c1 test: align support-boundary expectations 2026-05-03 15:04:02 +01:00
Peter Steinberger
54c0f982d5 fix: keep reply context out of image scanning (#76659) 2026-05-03 15:04:02 +01:00
Michael Romero
abed4231aa fix: preserve reply context in embedded prompts 2026-05-03 15:04:02 +01:00
Dash
d35c79edd6 fix(agents): suppress duplicate user persistence on fallback retries (#63696)
* fix(agents): suppress duplicate user persistence on fallback retries

* refactor(agents): align persisted-user callback types

* docs: note fallback transcript dedupe

* refactor(agents): remove fallback persistence casts

---------

Co-authored-by: Altay <altay@uinaf.dev>
2026-05-03 16:55:45 +03:00
Peter Steinberger
4488382c1c chore: drop root swift config copies 2026-05-03 14:52:12 +01:00
Peter Steinberger
e7bb5d6ddf chore: move swift configs under config 2026-05-03 14:51:56 +01:00
Peter Steinberger
89ac126180 fix: mark plan compaction event delivery fire-and-forget (#76651) (thanks @simplyclever914) 2026-05-03 14:43:13 +01:00
Peter Steinberger
63ff9244c7 fix: allow async compaction event delivery (#76651) (thanks @simplyclever914) 2026-05-03 14:43:13 +01:00