Commit Graph

48189 Commits

Author SHA1 Message Date
Pavan Kumar Gondhi
47eb2d48d4 Scrub streamable MCP redirect headers [AI] (#80906)
* fix: scrub streamable mcp redirect headers

* addressing review-skill

* addressing codex review

* addressing claude review

* docs: add changelog entry for PR merge
2026-05-12 15:28:54 +05:30
Peter Steinberger
e196a43694 test: guard auto reply runner mock calls 2026-05-12 10:58:34 +01:00
Peter Steinberger
81b7d670cd test: guard cron infra ui mock calls 2026-05-12 10:56:25 +01:00
Peter Steinberger
067666df90 test: guard gateway call assertions 2026-05-12 10:53:58 +01:00
Ayaan Zaidi
99598284c1 docs(changelog): credit matrix runtime install fix (#80876) (thanks @kinjitakabe) 2026-05-12 15:22:10 +05:30
Ayaan Zaidi
0792223a87 refactor(matrix): simplify dependency availability check 2026-05-12 15:22:10 +05:30
kinjitakabe
760501fc38 fix(matrix): stop runtime npm install from parent-derived cwd
`ensureMatrixSdkInstalled` previously derived an install `cwd` via fixed
two-segment traversal from `import.meta.url` and spawned `npm install`
(or `pnpm install`) when Matrix packages were missing. Under the
externalized plugin layout the derived path is a scope directory like
`<config>/npm/node_modules/@openclaw`, so npm walks up to the managed
project root and prunes undeclared siblings. Under the legacy bundled
layout it would target `<global-prefix>/lib/node_modules` and could
delete unrelated global CLIs.

Matrix is now a pure availability check: if any required package fails
to resolve, it throws an actionable error pointing the operator at the
supported repair commands (`openclaw plugins update matrix`,
`openclaw doctor --fix`). This matches extensions/AGENTS.md:
"Runtime never installs deps; install/update/doctor are repair points."

The exported signature stays backwards-compatible (all params optional;
`confirm` and `runtime` are accepted but ignored). `resolveMissingMatrixPackages`
gains an optional `resolveFn` seam for testability, mirroring the existing
`ensureMatrixCryptoRuntime` injection pattern.

Fixes #80758.
2026-05-12 15:22:10 +05:30
Peter Steinberger
067e83d121 test: guard command call assertions 2026-05-12 10:50:38 +01:00
Pavan Kumar Gondhi
aeb1ba9a53 fix(memory-wiki): require admin scope for ingest [AI] (#80897)
* fix: require admin scope for wiki ingest

* fix: require admin scope for wiki ingest

* docs: add changelog entry for PR merge

* docs: add changelog entry for PR merge
2026-05-12 15:19:43 +05:30
Pavan Kumar Gondhi
c3f1f0c315 memory-wiki: require write scope for Obsidian search [AI] (#80904)
* fix: require write scope for obsidian search

* docs: add changelog entry for PR merge
2026-05-12 15:18:07 +05:30
Peter Steinberger
768637a595 test: guard auto reply command mock calls 2026-05-12 10:47:16 +01:00
Shakker
163eb08a34 test: require minimax voice catalog 2026-05-12 10:45:45 +01:00
Ayaan Zaidi
47698133f6 fix(matrix): land markdown table default (#80890) (thanks @kinjitakabe) 2026-05-12 15:15:05 +05:30
Ayaan Zaidi
8841a82f5c fix(matrix): clean markdown table default PR 2026-05-12 15:15:05 +05:30
kinjitakabe
09a2d6e571 fix(matrix): default markdown tables to bullets across Matrix clients
Matrix outbound markdown was hitting the shared `resolveMarkdownTableMode`
"code" fallback for every send because the Matrix channel plugin never
declared `defaultMarkdownTableMode` in its `messaging` block at
`extensions/matrix/src/channel.ts:452`. Tables were emitted as
`<pre><code>` fenced blocks across every Matrix client.

This change declares `defaultMarkdownTableMode: "bullets"`, matching the
Signal and WhatsApp precedent at `extensions/signal/src/shared.ts:111`
and `extensions/whatsapp/src/shared.ts:261`. The choice matches the
cross-client compatibility profile the issue filer surveyed:
Element X iOS squashes HTML `<table>` and Element X Android drops cell
text entirely (element-hq/element-x-android#1551), while bullet lists
render cleanly across every Matrix client. Operators wanting the
previous fenced-code rendering can set `channels.matrix.markdown.tables:
"code"` explicitly; clients that do render real tables can opt in with
`channels.matrix.markdown.tables: "off"` (markdown-it's `table` rule is
already enabled by default through the markdown-it default preset, so
raw markdown tables flow through to native HTML tables on that path).

Docs and the changelog entry list Matrix alongside Signal and WhatsApp
as a bullet-default channel.

Fixes #78990.
2026-05-12 15:15:05 +05:30
Peter Steinberger
9d4081b839 test: guard core support mock calls 2026-05-12 10:43:53 +01:00
Peter Steinberger
138421b6c6 test: guard gateway session mock calls 2026-05-12 10:39:47 +01:00
Peter Steinberger
a68b4a5606 test: guard gateway mock calls 2026-05-12 10:36:44 +01:00
Peter Steinberger
17237fc44f test: align release validation expectations 2026-05-12 10:32:29 +01:00
Peter Steinberger
17863b0612 test: guard status command mock calls 2026-05-12 10:31:29 +01:00
Shakker
dc70841f8b test: assert imessage reaction context 2026-05-12 10:29:47 +01:00
Peter Steinberger
7a8d86be27 test: guard doctor command mock calls 2026-05-12 10:29:04 +01:00
Peter Steinberger
b37a71f2af test: guard command mock calls 2026-05-12 10:26:20 +01:00
Shakker
f093033ee8 test: pin silent reply fallback text 2026-05-12 10:23:29 +01:00
Peter Steinberger
8e045f6670 test: guard auto reply mock calls 2026-05-12 10:22:53 +01:00
Peter Steinberger
b42227e476 test: guard whatsapp mock calls 2026-05-12 10:19:51 +01:00
Shakker
54bbf40add test: pin invalid-config restart guidance 2026-05-12 10:17:17 +01:00
Peter Steinberger
22667fb096 test: guard messaging extension mock calls 2026-05-12 10:16:36 +01:00
Shakker
43332ce3fa test: check post-core helper calls 2026-05-12 10:15:22 +01:00
Shakker
3c47ab331e test: check post-core warning payloads 2026-05-12 10:14:08 +01:00
Shakker
10372bd23e test: check delivery retry backoff 2026-05-12 10:12:59 +01:00
Shakker
fcfa2617a8 test: check plugin payload failures 2026-05-12 10:11:43 +01:00
Peter Steinberger
cce9a9ef2a test: guard mixed extension mock calls 2026-05-12 10:10:52 +01:00
Shakker
135071b33f test: check media read roots 2026-05-12 10:08:06 +01:00
Peter Steinberger
1e46929d3e test: guard matrix mock calls 2026-05-12 10:07:36 +01:00
Peter Steinberger
b3ded351e3 test: guard extension provider mock calls 2026-05-12 10:04:45 +01:00
Shakker
dbbb7f0aaf test: check skills json formatting 2026-05-12 10:01:24 +01:00
Peter Steinberger
a765668e63 test: guard extension one-hit mock calls 2026-05-12 10:00:29 +01:00
Peter Steinberger
7965342425 test: guard subagent announce mock calls 2026-05-12 09:57:19 +01:00
Peter Steinberger
20319d6909 test: guard embedded attempt mock calls 2026-05-12 09:54:18 +01:00
Peter Steinberger
e3c674d64b test: guard cli runner mock calls 2026-05-12 09:51:50 +01:00
Peter Steinberger
98bf4ed640 test: guard agent cli attempt mock calls 2026-05-12 09:50:11 +01:00
Peter Steinberger
ce67f75930 test: guard agent eight-hit mock calls 2026-05-12 09:48:23 +01:00
Peter Steinberger
e4498e0cd5 test: guard agent seven-hit mock calls 2026-05-12 09:45:55 +01:00
Shakker
db30000220 test: check logs follow notices 2026-05-12 09:45:01 +01:00
Peter Steinberger
2b295a5679 test: guard agent six-hit mock calls 2026-05-12 09:43:16 +01:00
Peter Steinberger
69f3ac80df test: guard agent five-hit mock calls 2026-05-12 09:40:35 +01:00
Peter Steinberger
2afca35577 test: guard agent four-hit mock calls 2026-05-12 09:34:12 +01:00
Shakker
dda4632d38 test: check progress log output 2026-05-12 09:29:45 +01:00
Peter Steinberger
be911a1d74 test: guard remaining three-hit mock calls 2026-05-12 09:27:45 +01:00