Commit Graph

15644 Commits

Author SHA1 Message Date
lsr911
7d98ad2a92 fix(signal): guard containerRestRequest JSON.parse against malformed responses (#98073)
* fix(signal): guard containerRestRequest JSON.parse against malformed responses

Wrap JSON.parse(text) in containerRestRequest with try/catch to prevent a malformed Signal REST container response from throwing an unhandled SyntaxError.

On parse failure, throw a descriptive Error. The success body is already bounded by readProviderTextResponse (16 MiB cap, D1 protection).

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: lsr911 <liao.shirong@xydigit.com>

* fix(signal): add real HTTP server proof for malformed JSON guard

Starts a local node:http server returning malformed JSON, then calls
containerRestRequest against it.  This exercises the actual changed
try/catch code path through the real fetch stack (no mock override).

Proof output:
  PASS  malformed JSON: throws Error :: type=Error
  PASS  malformed JSON: message describes malformed JSON
  PASS  malformed JSON: NOT raw SyntaxError

Signed-off-by: lsr911 <liao.shirong@xydigit.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: lsr911 <liao.shirong@xydigit.com>

* test(signal): remove committed proof script

---------

Signed-off-by: lsr911 <liao.shirong@xydigit.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-30 10:50:59 -07:00
Ayaan Zaidi
86bdfec6b7 refactor(telegram): simplify album prompt selection 2026-06-30 10:45:44 -07:00
NianJiuZst
44f3c3e43a test(telegram): satisfy album context lint 2026-06-30 10:45:44 -07:00
NianJiuZst
bba63d3fe0 fix(telegram): omit skipped album context 2026-06-30 10:45:44 -07:00
NianJiuZst
9aec0f089b fix(telegram): hydrate album sibling media context 2026-06-30 10:45:44 -07:00
Ayaan Zaidi
f078962d17 fix(feishu): require explicit reply send target 2026-06-30 10:40:48 -07:00
xydigit-zt
62fa674a39 fix(feishu): route non-thread p2p DM replies to user:<open_id>
Add sendTarget param to createFeishuReplyDispatcher that overrides
the to: field for visible sends. Fix streaming card delivery target
by stripping routing prefixes (user:, chat:) before the Feishu
streaming API call. Route streaming card reply metadata through
suppressed sendReplyToMessageId.

Closes #83730
2026-06-30 10:40:48 -07:00
Masato Hoshino
5c4e478df4 fix(slack): expose sender bot status in context (#97822)
* fix(slack): expose sender bot status in context

* fix(slack): expose sender bot status in context

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-30 10:29:42 -07:00
Masato Hoshino
37341a7032 fix(googlechat): expose sender bot status in context (#97825)
* fix(googlechat): expose sender bot status in context

* fix(googlechat): expose sender bot status in context

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-30 10:28:47 -07:00
Masato Hoshino
984f5a51ca fix(discord): expose sender bot status in context (#97824)
* fix(discord): expose sender bot status in context

* fix(discord): expose sender bot status in context

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-30 10:27:53 -07:00
liuhao1024
c896718acb fix(memory-wiki): strip fenced code blocks before wikilink extraction (fixes #97945) (AI-assisted) (#97954)
* fix(memory-wiki): strip fenced code blocks before wikilink extraction

extractWikiLinks runs OBSIDIAN_LINK_PATTERN against full markdown
including fenced code blocks and inline code spans, causing false
positive 'Broken wikilink target' warnings for bash [[...]] test
syntax and Scala generics inside code blocks.

Strip fenced code blocks and inline code before running the wikilink
regex to eliminate code-block false positives while preserving real
wikilinks in prose.

Fixes #97945

* fix(memory-wiki): strip fenced code blocks before wikilink extraction

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-30 10:26:55 -07:00
Pavan Kumar Gondhi
738b2be4b4 fix: gate active memory global toggles (#97841) 2026-06-30 14:32:37 +05:30
Kevin Lin
58367137ea fix(codex): keep plugin apps available when inventory is missing (#98042)
* fix(codex): refresh missing app inventory

* fix(codex): support remote curated plugins

* fix(codex): resolve plugins across curated marketplaces

* fix(codex): enable Guardian on first thread turn
2026-06-30 00:44:28 -07:00
Patrick Erichsen
56c2d637d9 fix(qqbot): tighten bundled skill guardrails (#98032) 2026-06-29 22:48:52 -07:00
Patrick Erichsen
85ee71223f fix(matrix): use fixed crypto bootstrap command (#97181)
* fix(matrix): use fixed crypto bootstrap command

* chore(matrix): drop release metadata bump
2026-06-29 21:02:00 -07:00
Agustin Rivera
72f837a4a4 fix(codex): require admin for native controls (#97952)
* fix(codex): require admin for native controls

Gate Codex native session controls and bound turns on current owner or operator.admin authority. Preserve gateway scope precedence and read-only status behavior.

* fix(codex): align native authorization

* fix(codex): preserve silent bound handling

* fix(codex): narrow bound auth contract

* fix(docs): refresh generated docs map
2026-06-29 20:41:28 -07:00
Agustin Rivera
587eefe5ad fix(imessage): require authorization for group actions (#97961) 2026-06-29 17:51:39 -07:00
Jason (Json)
455f813d6e fix(telegram): deliver durable reasoning when enabled
Preserve shared reasoning suppression by default while letting Telegram opt into durable reasoning payloads only when it has a deliverable reasoning lane. Covers persistent /reasoning on, separate reasoning stream lanes, and progress-stream suppression.\n\nVerification:\n- node scripts/run-vitest.mjs src/auto-reply/reply/dispatch-from-config.test.ts extensions/telegram/src/bot-message-dispatch.test.ts\n- git diff --check upstream/main...HEAD\n- .agents/skills/autoreview/scripts/autoreview --mode branch --base upstream/main --stream-engine-output\n- CI run 28411526182 green, including QA Smoke CI and check-test-types\n- Real behavior proof run 28411676681 passed\n\nPR: #97875
2026-06-29 17:31:06 -07:00
Agustin Rivera
e87b0df675 fix(codex): restrict computer-use installation (#97955) 2026-06-29 17:17:49 -07:00
Agustin Rivera
2cf765f732 fix(browser): block node routes when sandbox host control is disabled (#97958) 2026-06-29 17:10:12 -07:00
Dallin Romney
fd3f354f46 test(qa): expand docker lane adapter (#97937)
* test(qa): expand docker lane adapter

* Extract QA Docker lane fixture
2026-06-29 17:08:43 -07:00
Jiaming Guo
456c48f368 fix(gateway): require admin scope for browser proxy invoke (#85916)
* fix(gateway): require admin scope for browser proxy invoke

* fix(gateway): document trusted node scopes

* fix(gateway): align browser scope test

* fix(gateway): satisfy node test lint

---------

Co-authored-by: Agustin Rivera <agustin@rivera-web.com>
2026-06-29 16:23:02 -07:00
Josh Avant
052dc59526 fix: /pair qr fails to show QR code in chat surfaces (#97933)
* fix(pair): render qr per chat surface

* test(plugin-sdk): update reply helper surface budget

* fix(pair): keep qr metadata internal
2026-06-29 18:17:21 -05:00
Dallin Romney
5dae3d49e6 Update QA Lab Crabline integration (#97941)
* Update QA Lab Crabline integration

* Refresh docs map
2026-06-29 16:07:38 -07:00
Yzx
3047e6c43d fix: Ollama Cloud tool calls fail on second turn (#96474)
Tested and it works.
2026-06-29 16:48:46 -06:00
Agustin Rivera
cbdbb22c60 fix(voice): require admin for voice set (#97874) 2026-06-29 15:41:26 -07:00
Agustin Rivera
825aafac57 fix(voicecall): redact read-scoped status payloads (#97870)
* fix(voicecall): redact read-scoped status payloads

* fix(voicecall): make status assertion lint-safe
2026-06-29 15:38:29 -07:00
Dallin Romney
843ad14364 feat(qa): add transport scenario requirements (#97915) 2026-06-29 14:53:19 -07:00
Agustin Rivera
29f787f10e fix(memory): require privileged dreaming config changes (#97869)
* fix(memory): gate dreaming config changes

* fix(memory): document dreaming privilege gate

Explain that persistent dreaming toggles require channel owner status or Gateway admin scope, while status and help remain read-only.
2026-06-29 13:03:22 -07:00
Yuval Dinodia
38ab207591 fix(google-meet): fall back to manual OAuth paste when callback port is occupied (#96492)
The Google Meet OAuth login binds a fixed localhost:8085 callback listener
and let listener failures propagate, so meet auth login aborted entirely when
port 8085 was already in use. The sibling Gemini CLI OAuth path already
recovers by switching to the manual copy/paste flow on EADDRINUSE/listen
errors; bring Google Meet to parity by catching listener errors and reusing
the existing manual-paste handler instead of failing the login.
2026-06-29 11:20:21 -07:00
Dallin Romney
80a3c515fd test: add ClawHub release candidate QA proof (#97896)
* test: add ClawHub release candidate QA proof

* test: harden ClawHub release candidate evidence
2026-06-29 11:14:09 -07:00
Dallin Romney
5816e0194e feat(qa): wire crabline whatsapp transport (#95920) 2026-06-29 11:13:17 -07:00
Zaid
aa5ec51af0 fix(line): preserve uploaded file names for media detection (#96403)
* fix(line): preserve file upload filenames

* test(line): fail unexpected media downloads
2026-06-29 11:03:30 -07:00
Dallin Romney
2cc43aec2d feat(qa): wire crabline slack transport (#97891) 2026-06-29 10:57:17 -07:00
pick-cat
09167523bf fix(nextcloud-talk): bound bot preflight error reads (#97811)
Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com>
2026-06-29 10:50:47 -07:00
pick-cat
eb5fb2aa69 fix(microsoft-foundry): bound connection test error reads (#97812)
Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com>
2026-06-29 10:50:38 -07:00
Dallin Romney
2ec6708980 fix(whatsapp): validate WebSocket URL env (#97697) 2026-06-29 10:50:16 -07:00
cxbAsDev
597a0ba43c fix(discord): bound PluralKit and voice-message JSON reads 2026-06-29 10:36:16 -07:00
Dallin Romney
0deddfa204 feat(whatsapp): support Baileys WebSocket URL override (#97155)
* Allow WhatsApp monitor socket substitution

* Refine WhatsApp socket substitution surface

* Keep WhatsApp socket seam on existing API

* Tighten WhatsApp socket seam type exports

* Simplify WhatsApp monitor runtime option state

* Use WhatsApp WebSocket URL override
2026-06-29 10:28:34 -07:00
solodmd
86b9b88f40 test(firecrawl): add unit tests for firecrawl client functions (#97714) 2026-06-29 07:58:40 -07:00
Momo
db2488b6e3 fix(memory): record structured dreaming outcomes (#97723)
Summary:
- Merged fix(memory): record structured dreaming outcomes after ClawSweeper review.

Automerge notes:
- PR branch already contained follow-up commit before automerge: chore(plugin-sdk): update surface budgets

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

Prepared head SHA: 9fa7d20a96
Review: https://github.com/openclaw/openclaw/pull/97723#issuecomment-4831902831

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-06-29 11:23:38 +00:00
Kevin Lin
389c355bcf fix(codex): preserve per-app approval reviewer policy (#97327)
* fix(codex): version app inventory cache keys

* fix(codex): refresh and replay plugin app policy

* fix(codex): preserve user reviewer for plugin turns

* fix(codex): gate plugin reviewer from startup policy

* fix(codex): route app approvals to user reviewer

* fix(codex): prompt destructive app tools

* fix(codex): scope app approval reviewers

* test(codex): complete app policy fixture

* fix(codex): avoid pre-start app inventory gate

* Revert "fix(codex): prompt destructive app tools"

This reverts commit d1cb0d5ba8.

# Conflicts:
#	extensions/codex/src/app-server/plugin-thread-config.test.ts
#	extensions/codex/src/app-server/plugin-thread-config.ts
2026-06-29 02:35:13 -07:00
saju01
78b03fb415 test(github-copilot): cover live xhigh reasoning for non-Claude models (#91728)
Regression coverage for #59416: when live /models metadata wins over the
static xhigh allowlist, non-Claude mini-family ids (e.g. gpt-5.4-mini)
must gain xhigh from their resolved compat, while ids whose live effort
list lacks xhigh (e.g. gpt-5-mini) must not over-grant it.

The live-first model catalog union and models-defaults removal are
already in origin/main (75405f64d0, 46c42d4a0d, d2279591bf); this PR now
contributes only the still-missing regression tests on top of that base.

Co-authored-by: saju01 <saju@coderedcorp.com>
2026-06-28 23:34:28 -07:00
Acache
e7d6566b8f fix(feishu): publish transport health status (#90966)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Acache <acache@users.noreply.github.com>
2026-06-28 23:12:09 -07:00
Vincent Koc
c0ee7a1d20 test: gate symlink assertions on file symlink capability (#95531)
Co-authored-by: ANIRUDDHA ADAK <127435065+aniruddhaadak80@users.noreply.github.com>
2026-06-28 22:50:37 -07:00
Alex Knight
aeab5f8418 feat: improve model call telemetry 2026-06-29 15:21:53 +10:00
Alix-007
46e119074e fix(xai): bound video response body reads 2026-06-28 21:57:14 -07:00
NIO
748bea3434 fix(github-copilot): bound login JSON response reads 2026-06-28 21:57:06 -07:00
wangmiao0668000666
a6aaba76ac fix(google): bound OAuth response body reads 2026-06-28 21:49:13 -07:00
wangmiao0668000666
bf66b4e1ea fix(comfy): bound JSON response reads via readProviderJsonResponse 2026-06-28 21:33:30 -07:00