Commit Graph

1236 Commits

Author SHA1 Message Date
Peter Steinberger
ea05be12b4 test: guard extension provider mock calls 2026-05-12 11:11:04 +01:00
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
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
1e46929d3e test: guard matrix mock calls 2026-05-12 10:07:36 +01:00
Peter Steinberger
f6d787cc5c build: hard-pin dependency specs 2026-05-12 07:10:13 +01:00
Peter Steinberger
c98698aa0e chore: release 2026.5.12-beta.1 2026-05-12 06:33:41 +01:00
Peter Steinberger
8577570cf3 test: guard matrix cli mock calls 2026-05-12 00:29:38 +01:00
Peter Steinberger
6eccb0d3bf test: guard extension helper null checks 2026-05-11 21:18:51 +01:00
Peter Steinberger
faa74ac1e8 test: guard extension channel helpers 2026-05-11 21:04:13 +01:00
Peter Steinberger
880530dd9f test: guard matrix call assertions 2026-05-11 19:46:12 +01:00
Peter Steinberger
cd9f0b97f8 test: guard matrix helper assertions 2026-05-11 19:44:42 +01:00
Peter Steinberger
8f1c044e7e test: guard plugin record helpers 2026-05-11 19:10:49 +01:00
Shakker
561c19cb58 test: verify plugin warning messages 2026-05-11 16:40:07 +01:00
Shakker
b58ee9eee2 test: check matrix verification block logs 2026-05-11 15:56:31 +01:00
Peter Steinberger
1ff126c682 test: tighten plugin tool payload assertions 2026-05-11 11:46:51 +01:00
Shakker
63649bbbff test: assert matrix monitor payloads 2026-05-11 11:39:46 +01:00
Shakker
21e0f60890 test: assert matrix startup directory calls 2026-05-11 11:38:04 +01:00
Shakker
0f83118dfd test: assert matrix registration calls 2026-05-11 11:36:31 +01:00
Shakker
bc338a4019 test: assert matrix config storage calls 2026-05-11 11:35:27 +01:00
Shakker
5a4201fd86 test: assert matrix client error shapes 2026-05-11 11:33:23 +01:00
Shakker
8de5a3e2b8 test: assert matrix profile action calls 2026-05-11 11:30:41 +01:00
Shakker
8a13d09b3a test: assert matrix recovery key result 2026-05-11 11:29:41 +01:00
Shakker
432e19527e test: assert matrix raw event serialization 2026-05-11 11:28:35 +01:00
Shakker
b00e84e6be test: assert matrix poll parsing 2026-05-11 11:27:50 +01:00
Shakker
83748bc8bb test: assert matrix client options 2026-05-11 11:26:41 +01:00
Shakker
4c63dd9f95 test: assert matrix room config results 2026-05-11 11:26:02 +01:00
Shakker
5a77d791dd test: assert matrix event summaries 2026-05-11 11:24:25 +01:00
Shakker
deaed7a2bd test: assert matrix device health summary 2026-05-11 11:23:50 +01:00
Peter Steinberger
75daa12562 test: tighten openai device code assertions 2026-05-11 11:23:25 +01:00
Shakker
81281609b8 test: assert matrix direct room mappings 2026-05-11 11:22:23 +01:00
Shakker
d17a347f8c test: assert matrix tool action details 2026-05-11 11:20:51 +01:00
Peter Steinberger
3a5155bfff test: tighten qa live gateway assertions 2026-05-11 11:19:54 +01:00
Shakker
ab12985d71 test: assert matrix action schema fields 2026-05-11 11:19:03 +01:00
Shakker
225cbb7b21 test: assert matrix sync store payloads 2026-05-11 11:18:10 +01:00
Shakker
d29865f4b6 test: assert matrix resolver runtime forwarding 2026-05-11 11:16:41 +01:00
Shakker
68fdb8007d test: assert matrix message adapter calls 2026-05-11 11:14:49 +01:00
Shakker
3e31b0946f test: assert matrix runtime exports 2026-05-11 11:14:02 +01:00
Shakker
3e2cd6676a test: assert matrix device action results 2026-05-11 11:13:16 +01:00
Peter Steinberger
baba16518e test: tighten matrix reaction assertions 2026-05-11 08:44:39 +01:00
Peter Steinberger
852d267767 test: tighten matrix credential assertions 2026-05-11 08:43:26 +01:00
Peter Steinberger
086bb3514f test: tighten matrix route assertions 2026-05-11 08:41:50 +01:00
Peter Steinberger
4d37d437f4 test: tighten matrix message adapter assertions 2026-05-11 07:10:40 +01:00
Peter Steinberger
5feb3ecdc7 test: tighten matrix config update assertions 2026-05-11 07:07:48 +01:00
Peter Steinberger
a00fc81e48 test: tighten matrix direct management assertions 2026-05-11 07:06:13 +01:00
Peter Steinberger
12d367da8b test: tighten matrix access-state assertions 2026-05-11 06:27:22 +01:00
Peter Steinberger
0782609c33 test: tighten matrix monitor config assertions 2026-05-11 06:25:29 +01:00
Pavan Kumar Gondhi
93ff72a5e8 fix(matrix): gate name-based allowlist resolution [AI] (#79007)
* fix: gate matrix mutable name resolution

* addressing codex review

* addressing codex review

* addressing codex review

* address feedback

* addressing codex review

* addressing codex review

* addressing codex review

* addressing codex review

* chore: drop unrelated matrix fix churn

* chore: refresh channel config metadata

* chore: remove unrelated formatting churn

* docs: add changelog entry for PR merge
2026-05-11 10:47:27 +05:30
Peter Steinberger
8d14c9540e fix(matrix): persist discovered direct rooms during repair 2026-05-11 05:08:35 +01:00