Skip to content

Commit 29de285

Browse files
committed
feat(fixtures): add DingTalk document MCP fixture
1 parent 6d926e2 commit 29de285

23 files changed

Lines changed: 15707 additions & 13697 deletions

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,3 +114,7 @@
114114
path = plugins/nemoclaw
115115
url = https://github.com/NVIDIA/NemoClaw.git
116116
shallow = true
117+
[submodule "plugins/dingtalk-doc"]
118+
path = plugins/dingtalk-doc
119+
url = https://github.com/suchasplus/openclaw-dingtalk-doc.git
120+
shallow = true

README.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,28 @@
2525

2626
| Metric | Result |
2727
| ---------------------- | ----------------------------------------------------------------------------------------------------------------- |
28-
| Fixtures | 57 |
28+
| Fixtures | 58 |
2929
| Hard breakages | 0 |
30-
| Warnings | 123 |
31-
| Suggestions | 147 |
32-
| Issues | 270 |
30+
| Warnings | 124 |
31+
| Suggestions | 151 |
32+
| Issues | 275 |
3333
| P0 issues | [🔴 P0 0](reports/crabpot-issues.md#p0-live-issues) |
34-
| P1 issues | [🟠 P1 15](reports/crabpot-issues.md#triage-summary) |
34+
| P1 issues | [🟠 P1 16](reports/crabpot-issues.md#triage-summary) |
3535
| Live issues | 0 total / 0 P0 |
36-
| Compat gaps | 1 |
37-
| Deprecation warnings | 41 |
38-
| Inspector gaps | 156 |
39-
| Upstream metadata | 72 |
40-
| Contract probes | 266 |
36+
| Compat gaps | 0 |
37+
| Deprecation warnings | 42 |
38+
| Inspector gaps | 160 |
39+
| Upstream metadata | 73 |
40+
| Contract probes | 271 |
4141
| Policy failures | 0 |
4242
| Policy warnings | 307 |
4343
| Ref diff failures | 0 |
4444
| Profile failures | 0 |
4545
| Execution probes | 120 pass / 0 fail / 306 blocked |
46-
| Synthetic probes | 431 ready / 0 blocked / 431 total |
47-
| Cold import | 7 ready / 97 blocked / 104 entrypoints |
48-
| Workspace plan | 104 entrypoints / 41 installs / 11 builds |
49-
| Platform risks | 14 Windows / 14 container |
46+
| Synthetic probes | 436 ready / 0 blocked / 436 total |
47+
| Cold import | 7 ready / 98 blocked / 105 entrypoints |
48+
| Workspace plan | 105 entrypoints / 41 installs / 12 builds |
49+
| Platform risks | 16 Windows / 16 container |
5050
| Jiti loader candidates | 22 |
5151
| Import loop | p50 2449ms / p95 2518ms / plugin delta RSS 9.4MB / plugin delta CPU 161ms / OpenClaw import 89ms / activate 0.3ms |
5252
| Runtime profile | p50 2321ms / command p95 2365ms / max RSS 473.7MB / 3 samples/command |
@@ -60,18 +60,18 @@
6060

6161
### Top Discovered Issues
6262

63-
| Severity | Class | Fixture | Code | Decision | Title |
64-
| -------- | ------------- | ----------------- | ------------------------ | ------------------- | --------------------------------------------------------------------------------------------------------------------------- |
65-
| 🟠 P1 | inspector-gap | clawmetry | conversation-access-hook | inspector-follow-up | [clawmetry: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
66-
| 🟠 P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | [honcho: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
67-
| 🟠 P1 | compat-gap | honcho | sdk-export-missing | core-compat-adapter | [honcho: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#compat-gaps) |
68-
| 🟠 P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | [kitchen-sink: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
69-
| 🟠 P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | [kitchen-sink: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
70-
| 🟠 P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | [llm-trace-phoenix: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
71-
| 🟠 P1 | inspector-gap | memory-lancedb | conversation-access-hook | inspector-follow-up | [memory-lancedb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
72-
| 🟠 P1 | inspector-gap | memory-tencentdb | conversation-access-hook | inspector-follow-up | [memory-tencentdb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
73-
| 🟠 P1 | inspector-gap | memos-cloud | conversation-access-hook | inspector-follow-up | [memos-cloud: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
74-
| 🟠 P1 | inspector-gap | nemoclaw | before-tool-call-probe | inspector-follow-up | [nemoclaw: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
63+
| Severity | Class | Fixture | Code | Decision | Title |
64+
| -------- | ----------------- | ----------------- | ------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
65+
| 🟠 P1 | inspector-gap | clawmetry | conversation-access-hook | inspector-follow-up | [clawmetry: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
66+
| 🟠 P1 | upstream-metadata | codex | reserved-sdk-import | plugin-upstream-fix | [codex: plugin imports reserved bundled-plugin SDK compatibility subpaths](reports/crabpot-issues.md#upstream-metadata-issues) |
67+
| 🟠 P1 | inspector-gap | dingtalk-doc | before-tool-call-probe | inspector-follow-up | [dingtalk-doc: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
68+
| 🟠 P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | [honcho: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
69+
| 🟠 P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | [kitchen-sink: before_tool_call needs terminal/block/approval probes](reports/crabpot-issues.md#inspector-proof-gaps) |
70+
| 🟠 P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | [kitchen-sink: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
71+
| 🟠 P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | [llm-trace-phoenix: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
72+
| 🟠 P1 | inspector-gap | memory-lancedb | conversation-access-hook | inspector-follow-up | [memory-lancedb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
73+
| 🟠 P1 | inspector-gap | memory-tencentdb | conversation-access-hook | inspector-follow-up | [memory-tencentdb: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
74+
| 🟠 P1 | inspector-gap | memos-cloud | conversation-access-hook | inspector-follow-up | [memos-cloud: conversation-access hooks need privacy-boundary probes](reports/crabpot-issues.md#inspector-proof-gaps) |
7575
<!-- crabpot-summary:end -->
7676
## What this tests
7777

crabpot.config.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,19 @@
11281128
},
11291129
"why": "Official DingTalk connector fixture covering Stream-mode channel ingress, AI Card replies, multi-account access policy, gateway RPC methods, and packaged channel skills."
11301130
},
1131+
{
1132+
"id": "dingtalk-doc",
1133+
"name": "DingTalk Doc MCP Tools",
1134+
"repo": "https://github.com/suchasplus/openclaw-dingtalk-doc.git",
1135+
"path": "plugins/dingtalk-doc",
1136+
"priority": "medium",
1137+
"seams": ["dynamic-tool", "mcp", "document-tool", "tool-runtime", "config-schema"],
1138+
"expect": {
1139+
"hooks": ["before_tool_call", "after_tool_call"],
1140+
"registrations": ["registerTool"]
1141+
},
1142+
"why": "DingTalk document-tool fixture wrapping MCP doc, block, and file operations into OpenClaw tool registrations with tool-call logging hooks; this covers AliDocs automation rather than another chat channel."
1143+
},
11311144
{
11321145
"id": "mocrane-wecom",
11331146
"name": "Mocrane WeCom",

plugins/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ directory: "/plugins/<id>"
9191
| `memory-tencentdb` | `plugins/memory-tencentdb` | npm | high | memory runtime, vector store, lifecycle | TencentDB memory fixture covering recall/capture hooks, SQLite/TCVDB storage, cleanup lifecycle, and seed/export CLI commands. |
9292
| `ddingtalk` | `plugins/ddingtalk` | git | high | channel, media, webhook | DingTalk channel fixture covering enterprise IM auth, channel setup, media handling, and webhook-style ingress. |
9393
| `dingtalk-connector` | `plugins/dingtalk-connector` | git | high | channel, streaming, gateway methods | Official DingTalk connector fixture covering Stream-mode ingress, AI Card replies, multi-account access policy, gateway RPC methods, and packaged channel skills. |
94+
| `dingtalk-doc` | `plugins/dingtalk-doc` | git | medium | dynamic tool, MCP, document tool | DingTalk Doc fixture wrapping MCP doc, block, and file operations into OpenClaw tool registrations with tool-call logging hooks. |
9495
| `mocrane-wecom` | `plugins/mocrane-wecom` | git | high | channel, MCP, SDK compat | Latest @mocrane/wecom-backed fixture covering WeCom routing, MCP tooling, skill bundles, HTTP routes, and SDK shims. |
9596
| `yuanbao` | `plugins/yuanbao` | npm | high | channel, command, SDK compat | Yuanbao bot fixture covering auth, media, tools, command queue compatibility, and root SDK imports. |
9697
| `openclaw-weixin` | `plugins/openclaw-weixin` | npm | high | channel, pairing, SDK subpaths, catalog discovery | Weixin channel fixture covering scan-login pairing, account isolation, media, narrow SDK subpath usage, and npm-installed channel catalog discovery. |

plugins/dingtalk-doc

Submodule dingtalk-doc added at 3503d68

0 commit comments

Comments
 (0)