chore(readme): update crabpot dashboard [skip ci]

This commit is contained in:
github-actions[bot] 2026-05-02 16:19:06 +00:00
parent dae2654661
commit 39e9f1565d
19 changed files with 7655 additions and 5861 deletions

View File

@ -10,67 +10,67 @@
## Reporting Data
`main` follows the latest published npm package. `crab-beta` follows the beta npm dist-tag. `crab-development` follows the latest `openclaw/openclaw` main commit.
- **Last dashboard update:** May 01, 2026, 10:38 UTC
- **Last dashboard update:** May 02, 2026, 16:18 UTC
<!-- crabpot-tracks:start -->
- **Source:** `npm-latest`
- **OpenClaw version:** `2026.4.29`
- **OpenClaw SHA:** `a448042c2edd`
- **Dashboard target:** `openclaw@latest`
- **GitHub report run:** [25211350556](https://github.com/openclaw/crabpot/actions/runs/25211350556)
- **GitHub report run:** [25256185647](https://github.com/openclaw/crabpot/actions/runs/25256185647)
<!-- crabpot-tracks:end -->
<!-- crabpot-summary:start -->
## Dashboard
| Metric | Result |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Fixtures | 33 |
| Hard breakages | 0 |
| Warnings | 69 |
| Suggestions | 112 |
| Issues | 181 |
| P0 issues | [🔴 P0 4](reports/crabpot-issues.md#p0-live-issues) |
| P1 issues | [🟠 P1 39](reports/crabpot-issues.md#triage-summary) |
| Live issues | 4 total / 4 P0 |
| Compat gaps | 3 |
| Deprecation warnings | 28 |
| Inspector gaps | 117 |
| Upstream metadata | 29 |
| Contract probes | 175 |
| Policy failures | 0 |
| Policy warnings | 20 |
| Ref diff failures | 0 |
| Profile failures | 0 |
| Execution probes | 12 pass / 0 fail / 18 blocked |
| Synthetic probes | 292 ready / 0 blocked / 292 total |
| Cold import | 3 ready / 37 blocked / 40 entrypoints |
| Workspace plan | 40 entrypoints / 19 installs / 11 builds |
| Platform risks | 14 Windows / 14 container |
| Jiti loader candidates | 21 |
| Import loop | p50 1401ms / p95 1502ms / plugin delta RSS 3.3MB / plugin delta CPU 175ms / OpenClaw import 96ms / activate 0.2ms |
| Runtime profile | p50 492ms / command p95 523ms / max RSS 90.6MB / 3 samples/command |
| Metric | Result |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Fixtures | 33 |
| Hard breakages | 0 |
| Warnings | 69 |
| Suggestions | 112 |
| Issues | 181 |
| P0 issues | [🔴 P0 3](reports/crabpot-issues.md#p0-live-issues) |
| P1 issues | [🟠 P1 39](reports/crabpot-issues.md#triage-summary) |
| Live issues | 3 total / 3 P0 |
| Compat gaps | 3 |
| Deprecation warnings | 27 |
| Inspector gaps | 116 |
| Upstream metadata | 32 |
| Contract probes | 176 |
| Policy failures | 0 |
| Policy warnings | 20 |
| Ref diff failures | 0 |
| Profile failures | 0 |
| Execution probes | 12 pass / 0 fail / 18 blocked |
| Synthetic probes | 293 ready / 0 blocked / 293 total |
| Cold import | 3 ready / 37 blocked / 40 entrypoints |
| Workspace plan | 40 entrypoints / 19 installs / 11 builds |
| Platform risks | 14 Windows / 14 container |
| Jiti loader candidates | 21 |
| Import loop | p50 1611ms / p95 1637ms / plugin delta RSS 10.7MB / plugin delta CPU 102ms / OpenClaw import 97.2ms / activate 0.3ms |
| Runtime profile | p50 756ms / command p95 799ms / max RSS 119.1MB / 3 samples/command |
### OpenClaw Lifecycle Probe
| Phase | p50 | p95 |
| -------------------------- | ----- | ------ |
| Import (`full`) | 96ms | 98.6ms |
| Activate (`full:register`) | 0.2ms | 0.2ms |
| Phase | p50 | p95 |
| -------------------------- | ------ | ----- |
| Import (`full`) | 97.2ms | 99ms |
| Activate (`full:register`) | 0.3ms | 0.3ms |
### Top Discovered Issues
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ------------- | ---------------- | ------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| 🔴 P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | [clawmetry: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | [honcho: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | hyperspell | unknown-hook-name | core-compat-adapter | [hyperspell: fixture uses a hook missing from target OpenClaw](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | [yuanbao: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🟠 P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | [a2a-gateway: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | [clawmetry: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | [clawmetry: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | [clawrouter: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | [codex-app-server: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | [connectclaw: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ----------------- | ---------------- | ----------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| 🔴 P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | [clawmetry: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | [honcho: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🔴 P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | [yuanbao: plugin SDK import aliases are missing from target package exports](reports/crabpot-issues.md#p0-live-issues) |
| 🟠 P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | [a2a-gateway: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | [clawmetry: compat-dependent behavior lacks registry coverage](reports/crabpot-issues.md#compat-gaps) |
| 🟠 P1 | upstream-metadata | clawmetry | package-npm-pack-entrypoint-missing | plugin-upstream-fix | [clawmetry: advertised npm artifact is missing OpenClaw entrypoints](reports/crabpot-issues.md#upstream-metadata-issues) |
| 🟠 P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | [clawmetry: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | [clawrouter: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | [codex-app-server: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
| 🟠 P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | [connectclaw: runtime registrations need capture before contract judgment](reports/crabpot-issues.md#inspector-proof-gaps) |
<!-- crabpot-summary:end -->
## What this tests

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -28,11 +28,10 @@
{
"id": "compatibility-report.live-p0-issues",
"action": "warn",
"message": "4 live P0 issues tracked",
"message": "3 live P0 issues tracked",
"evidence": [
"clawmetry:sdk-export-missing:untracked",
"honcho:sdk-export-missing:untracked",
"hyperspell:unknown-hook-name:none",
"yuanbao:sdk-export-missing:untracked"
]
},
@ -251,7 +250,7 @@
{
"id": "compatibility-report.deprecation-warnings",
"action": "pass",
"message": "28 deprecated compat seams tracked",
"message": "27 deprecated compat seams tracked",
"evidence": [
"a2a-gateway:legacy-root-sdk-import",
"agentchat:channel-env-vars",
@ -264,7 +263,6 @@
"hasdata:provider-auth-env-vars",
"honcho:legacy-before-agent-start",
"honcho:legacy-root-sdk-import",
"hyperspell:legacy-before-agent-start",
"hyperspell:legacy-root-sdk-import",
"inworld-tts:provider-auth-env-vars",
"kitchen-sink:legacy-before-agent-start",
@ -286,7 +284,7 @@
{
"id": "compatibility-report.inspector-gaps",
"action": "pass",
"message": "117 inspector proof gaps tracked",
"message": "116 inspector proof gaps tracked",
"evidence": [
"a2a-gateway:registration-capture-gap",
"clawmetry:registration-capture-gap",
@ -296,7 +294,6 @@
"dingtalk-connector:registration-capture-gap",
"honcho:conversation-access-hook",
"honcho:registration-capture-gap",
"hyperspell:conversation-access-hook",
"hyperspell:registration-capture-gap",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",
@ -414,6 +411,7 @@
"evidence": [
"a2a-gateway:registration-capture-gap",
"clawmetry:missing-compat-record",
"clawmetry:package-npm-pack-entrypoint-missing",
"clawmetry:registration-capture-gap",
"clawrouter:registration-capture-gap",
"codex-app-server:registration-capture-gap",
@ -422,7 +420,6 @@
"honcho:conversation-access-hook",
"honcho:missing-compat-record",
"honcho:registration-capture-gap",
"hyperspell:conversation-access-hook",
"hyperspell:registration-capture-gap",
"kitchen-sink:before-tool-call-probe",
"kitchen-sink:conversation-access-hook",

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
{
"generatedAt": "deterministic",
"title": "Crabpot CI Summary",
"mode": "dependabot",
"mode": "check",
"openclawLabel": "openclaw@latest (2026.4.29, a448042c2edd)",
"status": "pass",
"summary": {
@ -9,36 +9,36 @@
"warnings": 69,
"suggestions": 112,
"issues": 181,
"p0Issues": 4,
"p0Issues": 3,
"p1Issues": 39,
"liveIssues": 4,
"liveP0Issues": 4,
"liveIssues": 3,
"liveP0Issues": 3,
"compatGaps": 3,
"deprecationWarnings": 28,
"inspectorGaps": 117,
"upstreamIssues": 29,
"deprecationWarnings": 27,
"inspectorGaps": 116,
"upstreamIssues": 32,
"refDiffFailures": 0,
"refDiffWarnings": 0,
"policyFailures": 0,
"policyWarnings": 20,
"profileFailures": 0,
"profileWarnings": 0,
"profileWarnings": 1,
"executionPass": 12,
"executionFail": 0,
"executionBlocked": 18,
"platformWindowsRisks": 14,
"platformContainerRisks": 14,
"loaderJitiCandidates": 21,
"importLoopP50Ms": 1401,
"importLoopP95Ms": 1502,
"importLoopP50Ms": 1611,
"importLoopP95Ms": 1637,
"importLoopOpenClawLifecycleCount": 3,
"importLoopOpenClawImportP50Ms": 96,
"importLoopOpenClawActivationP50Ms": 0.2,
"importLoopOpenClawImportP50Ms": 97.2,
"importLoopOpenClawActivationP50Ms": 0.3,
"importLoopMetricBasis": "baseline-adjusted",
"importLoopMaxRssMb": 3.3,
"importLoopMaxCpuMs": 175,
"importLoopRssSampleCount": 169,
"importLoopCpuSampleCount": 169
"importLoopMaxRssMb": 10.7,
"importLoopMaxCpuMs": 102,
"importLoopRssSampleCount": 189,
"importLoopCpuSampleCount": 189
},
"topIssues": [
{
@ -57,14 +57,6 @@
"title": "honcho: plugin SDK import aliases are missing from target package exports",
"decision": "core-compat-adapter"
},
{
"severity": "P0",
"issueClass": "live-issue",
"fixture": "hyperspell",
"code": "unknown-hook-name",
"title": "hyperspell: fixture uses a hook missing from target OpenClaw",
"decision": "core-compat-adapter"
},
{
"severity": "P0",
"issueClass": "live-issue",
@ -89,6 +81,14 @@
"title": "clawmetry: compat-dependent behavior lacks registry coverage",
"decision": "core-compat-adapter"
},
{
"severity": "P1",
"issueClass": "upstream-metadata",
"fixture": "clawmetry",
"code": "package-npm-pack-entrypoint-missing",
"title": "clawmetry: advertised npm artifact is missing OpenClaw entrypoints",
"decision": "plugin-upstream-fix"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
@ -153,14 +153,6 @@
"title": "honcho: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "hyperspell",
"code": "conversation-access-hook",
"title": "hyperspell: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
@ -200,6 +192,14 @@
"code": "registration-capture-gap",
"title": "lightclawbot: runtime registrations need capture before contract judgment",
"decision": "inspector-follow-up"
},
{
"severity": "P1",
"issueClass": "inspector-gap",
"fixture": "llm-trace-phoenix",
"code": "conversation-access-hook",
"title": "llm-trace-phoenix: conversation-access hooks need privacy-boundary probes",
"decision": "inspector-follow-up"
}
],
"refRegressions": [],
@ -207,11 +207,10 @@
{
"id": "compatibility-report.live-p0-issues",
"action": "warn",
"message": "4 live P0 issues tracked",
"message": "3 live P0 issues tracked",
"evidence": [
"clawmetry:sdk-export-missing:untracked",
"honcho:sdk-export-missing:untracked",
"hyperspell:unknown-hook-name:none",
"yuanbao:sdk-export-missing:untracked"
]
},
@ -422,7 +421,17 @@
]
}
],
"profileFindings": [],
"profileFindings": [
{
"id": "profile.peak-rss",
"action": "warn",
"metric": "maxPeakRssMb",
"message": "maxPeakRssMb regressed 54 over baseline",
"baseline": 65.1,
"current": 119.1,
"delta": 54
}
],
"artifacts": {
"compatibility": "reports/crabpot-report.json",
"capture": "reports/crabpot-capture.json",

View File

@ -1,64 +1,64 @@
# Crabpot CI Summary
Generated: deterministic
Mode: dependabot
Mode: check
OpenClaw: openclaw@latest (2026.4.29, a448042c2edd)
Status: PASS
## Counts
| Metric | Value |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Breakages | 0 |
| Warnings | 69 |
| Suggestions | 112 |
| Issues | 181 |
| P0 issues | 4 |
| P1 issues | 39 |
| Live issues | 4 |
| Live P0 issues | 4 |
| Compat gaps | 3 |
| Deprecation warnings | 28 |
| Inspector gaps | 117 |
| Upstream metadata | 29 |
| Ref diff failures | 0 |
| Ref diff warnings | 0 |
| Policy failures | 0 |
| Policy warnings | 20 |
| Profile failures | 0 |
| Profile warnings | 0 |
| Execution pass | 12 |
| Execution fail | 0 |
| Execution blocked | 18 |
| Windows portability risks | 14 |
| Container portability risks | 14 |
| Jiti loader candidates | 21 |
| Import loop | p50 1401 ms / p95 1502 ms / plugin delta RSS 3.3 MB / plugin delta CPU 175 ms / OpenClaw import 96 ms / activate 0.2 ms |
| Metric | Value |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Breakages | 0 |
| Warnings | 69 |
| Suggestions | 112 |
| Issues | 181 |
| P0 issues | 3 |
| P1 issues | 39 |
| Live issues | 3 |
| Live P0 issues | 3 |
| Compat gaps | 3 |
| Deprecation warnings | 27 |
| Inspector gaps | 116 |
| Upstream metadata | 32 |
| Ref diff failures | 0 |
| Ref diff warnings | 0 |
| Policy failures | 0 |
| Policy warnings | 20 |
| Profile failures | 0 |
| Profile warnings | 1 |
| Execution pass | 12 |
| Execution fail | 0 |
| Execution blocked | 18 |
| Windows portability risks | 14 |
| Container portability risks | 14 |
| Jiti loader candidates | 21 |
| Import loop | p50 1611 ms / p95 1637 ms / plugin delta RSS 10.7 MB / plugin delta CPU 102 ms / OpenClaw import 97.2 ms / activate 0.3 ms |
## Top Issues
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ------------- | ------------------ | ------------------------ | ------------------- | ------------------------------------------------------------------------------- |
| P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | hyperspell | unknown-hook-name | core-compat-adapter | hyperspell: fixture uses a hook missing from target OpenClaw |
| P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | yuanbao: plugin SDK import aliases are missing from target package exports |
| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment |
| P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | clawmetry: compat-dependent behavior lacks registry coverage |
| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | clawrouter: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | codex-app-server: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | connectclaw: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | dingtalk-connector | registration-capture-gap | inspector-follow-up | dingtalk-connector: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes |
| P1 | compat-gap | honcho | missing-compat-record | core-compat-adapter | honcho: compat-dependent behavior lacks registry coverage |
| P1 | inspector-gap | honcho | registration-capture-gap | inspector-follow-up | honcho: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | hyperspell | conversation-access-hook | inspector-follow-up | hyperspell: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | hyperspell | registration-capture-gap | inspector-follow-up | hyperspell: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | kitchen-sink: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | kitchen-sink: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | kitchen-sink | registration-capture-gap | inspector-follow-up | kitchen-sink: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | lightclawbot | registration-capture-gap | inspector-follow-up | lightclawbot: runtime registrations need capture before contract judgment |
| Severity | Class | Fixture | Code | Decision | Title |
| -------- | ----------------- | ------------------ | ----------------------------------- | ------------------- | ------------------------------------------------------------------------------- |
| P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports |
| P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | yuanbao: plugin SDK import aliases are missing from target package exports |
| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment |
| P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | clawmetry: compat-dependent behavior lacks registry coverage |
| P1 | upstream-metadata | clawmetry | package-npm-pack-entrypoint-missing | plugin-upstream-fix | clawmetry: advertised npm artifact is missing OpenClaw entrypoints |
| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | clawrouter: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | codex-app-server: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | connectclaw: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | dingtalk-connector | registration-capture-gap | inspector-follow-up | dingtalk-connector: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes |
| P1 | compat-gap | honcho | missing-compat-record | core-compat-adapter | honcho: compat-dependent behavior lacks registry coverage |
| P1 | inspector-gap | honcho | registration-capture-gap | inspector-follow-up | honcho: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | hyperspell | registration-capture-gap | inspector-follow-up | hyperspell: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | kitchen-sink | before-tool-call-probe | inspector-follow-up | kitchen-sink: before_tool_call needs terminal/block/approval probes |
| P1 | inspector-gap | kitchen-sink | conversation-access-hook | inspector-follow-up | kitchen-sink: conversation-access hooks need privacy-boundary probes |
| P1 | inspector-gap | kitchen-sink | registration-capture-gap | inspector-follow-up | kitchen-sink: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | lightclawbot | registration-capture-gap | inspector-follow-up | lightclawbot: runtime registrations need capture before contract judgment |
| P1 | inspector-gap | llm-trace-phoenix | conversation-access-hook | inspector-follow-up | llm-trace-phoenix: conversation-access hooks need privacy-boundary probes |
## Ref Regressions
@ -68,7 +68,7 @@ _none_
| Action | ID | Message | Evidence |
| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| warn | compatibility-report.live-p0-issues | 4 live P0 issues tracked | clawmetry:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, hyperspell:unknown-hook-name:none, yuanbao:sdk-export-missing:untracked |
| warn | compatibility-report.live-p0-issues | 3 live P0 issues tracked | clawmetry:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, yuanbao:sdk-export-missing:untracked |
| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 |
| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness |
| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes |
@ -91,7 +91,9 @@ _none_
## Profile Findings
_none_
| Action | ID | Metric | Baseline | Current | Message |
| ------ | ---------------- | ------------ | -------- | ------- | --------------------------------------- |
| warn | profile.peak-rss | maxPeakRssMb | 65.1 | 119.1 | maxPeakRssMb regressed 54 over baseline |
## Artifacts

View File

@ -1,8 +1,8 @@
{
"schemaVersion": 1,
"generatedAt": "2026-05-01T10:38:24Z",
"runUrl": "https://github.com/openclaw/crabpot/actions/runs/25211350556",
"mode": "dependabot",
"generatedAt": "2026-05-02T16:18:31Z",
"runUrl": "https://github.com/openclaw/crabpot/actions/runs/25256185647",
"mode": "check",
"openclawLabel": "openclaw@latest (2026.4.29, a448042c2edd)",
"status": "pass",
"metrics": {
@ -11,15 +11,15 @@
"warnings": 69,
"suggestions": 112,
"issues": 181,
"p0Issues": 4,
"p0Issues": 3,
"p1Issues": 39,
"liveIssues": 4,
"liveP0Issues": 4,
"liveIssues": 3,
"liveP0Issues": 3,
"compatGaps": 3,
"deprecationWarnings": 28,
"inspectorGaps": 117,
"upstreamIssues": 29,
"contractProbes": 175,
"deprecationWarnings": 27,
"inspectorGaps": 116,
"upstreamIssues": 32,
"contractProbes": 176,
"policyFailures": 0,
"policyWarnings": 20,
"refDiffFailures": 0,
@ -27,9 +27,9 @@
"executionPass": 12,
"executionFail": 0,
"executionBlocked": 18,
"syntheticReady": 292,
"syntheticReady": 293,
"syntheticBlocked": 0,
"syntheticTotal": 292,
"syntheticTotal": 293,
"coldReady": 3,
"coldBlocked": 37,
"coldTotal": 40,
@ -39,23 +39,23 @@
"platformWindowsRisks": 14,
"platformContainerRisks": 14,
"loaderJitiCandidates": 21,
"importLoopP50Ms": 1401,
"importLoopP95Ms": 1502,
"importLoopP50Ms": 1611,
"importLoopP95Ms": 1637,
"importLoopOpenClawLifecycleCount": 3,
"importLoopOpenClawImportP50Ms": 96,
"importLoopOpenClawImportP95Ms": 98.6,
"importLoopOpenClawActivationP50Ms": 0.2,
"importLoopOpenClawActivationP95Ms": 0.2,
"importLoopOpenClawImportP50Ms": 97.2,
"importLoopOpenClawImportP95Ms": 99,
"importLoopOpenClawActivationP50Ms": 0.3,
"importLoopOpenClawActivationP95Ms": 0.3,
"importLoopMetricBasis": "baseline-adjusted",
"importLoopMaxRssMb": 3.3,
"importLoopMaxCpuMs": 175,
"importLoopRssSampleCount": 169,
"importLoopCpuSampleCount": 169,
"runtimeP50Ms": 492,
"runtimeP95Ms": 523,
"runtimeMaxRssMb": 90.6,
"runtimeRssSampleCount": 458,
"runtimeCpuSampleCount": 458,
"importLoopMaxRssMb": 10.7,
"importLoopMaxCpuMs": 102,
"importLoopRssSampleCount": 189,
"importLoopCpuSampleCount": 189,
"runtimeP50Ms": 756,
"runtimeP95Ms": 799,
"runtimeMaxRssMb": 119.1,
"runtimeRssSampleCount": 674,
"runtimeCpuSampleCount": 674,
"runtimeSamplesPerCommand": 3,
"runtimeWallTimeBasis": "command-median-p95"
},
@ -79,15 +79,6 @@
"decision": "core-compat-adapter",
"title": "honcho: plugin SDK import aliases are missing from target package exports"
},
{
"id": "CRABPOT-D7817FEA",
"severity": "P0",
"issueClass": "live-issue",
"fixture": "hyperspell",
"code": "unknown-hook-name",
"decision": "core-compat-adapter",
"title": "hyperspell: fixture uses a hook missing from target OpenClaw"
},
{
"id": "CRABPOT-97F49BB1",
"severity": "P0",
@ -115,6 +106,15 @@
"decision": "core-compat-adapter",
"title": "clawmetry: compat-dependent behavior lacks registry coverage"
},
{
"id": "CRABPOT-FC01CA77",
"severity": "P1",
"issueClass": "upstream-metadata",
"fixture": "clawmetry",
"code": "package-npm-pack-entrypoint-missing",
"decision": "plugin-upstream-fix",
"title": "clawmetry: advertised npm artifact is missing OpenClaw entrypoints"
},
{
"id": "CRABPOT-CE344535",
"severity": "P1",

View File

@ -7,18 +7,18 @@
"runs": 3,
"entrypoint": ".crabpot/import-loop/baseline-plugin.mjs",
"reference": {
"wallMs": 1422,
"peakRssMb": 282.6,
"cpuMsEstimate": 2593
"wallMs": 1591,
"peakRssMb": 279.8,
"cpuMsEstimate": 2859
},
"max": {
"wallMs": 1986,
"peakRssMb": 287.6,
"cpuMsEstimate": 3441
"wallMs": 2169,
"peakRssMb": 288.2,
"cpuMsEstimate": 3700
},
"statSampleCount": 189,
"rssSampleCount": 189,
"cpuSampleCount": 189,
"statSampleCount": 209,
"rssSampleCount": 209,
"cpuSampleCount": 209,
"failCount": 0,
"samples": [
{
@ -31,31 +31,31 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 99.3,
"activationMs": 0.2,
"importMs": 98.4,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 99.3,
"source": "/tmp/crabpot-openclaw-plugin-ICDjwl/index.mjs"
"elapsedMs": 98.4,
"source": "/tmp/crabpot-openclaw-plugin-MDzVfd/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-ICDjwl/index.mjs"
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-MDzVfd/index.mjs"
}
]
},
"wallMs": 1986,
"peakRssMb": 287.6,
"peakCpuPercent": 188,
"cpuMsEstimate": 3441,
"statSampleCount": 78,
"rssSampleCount": 78,
"cpuSampleCount": 78,
"wallMs": 2169,
"peakRssMb": 288.2,
"peakCpuPercent": 185,
"cpuMsEstimate": 3700,
"statSampleCount": 85,
"rssSampleCount": 85,
"cpuSampleCount": 85,
"stderrPreview": ""
},
{
@ -68,31 +68,31 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 94.3,
"importMs": 97.2,
"activationMs": 0.2,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 94.3,
"source": "/tmp/crabpot-openclaw-plugin-uke59w/index.mjs"
"elapsedMs": 97.2,
"source": "/tmp/crabpot-openclaw-plugin-OPEJuQ/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-uke59w/index.mjs"
"source": "/tmp/crabpot-openclaw-plugin-OPEJuQ/index.mjs"
}
]
},
"wallMs": 1385,
"peakRssMb": 282.6,
"peakCpuPercent": 209,
"cpuMsEstimate": 2495,
"statSampleCount": 55,
"rssSampleCount": 55,
"cpuSampleCount": 55,
"wallMs": 1557,
"peakRssMb": 277.3,
"peakCpuPercent": 211,
"cpuMsEstimate": 2859,
"statSampleCount": 62,
"rssSampleCount": 62,
"cpuSampleCount": 62,
"stderrPreview": ""
},
{
@ -105,31 +105,31 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 94.4,
"importMs": 101.9,
"activationMs": 0.2,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 94.4,
"source": "/tmp/crabpot-openclaw-plugin-ThURVb/index.mjs"
"elapsedMs": 101.9,
"source": "/tmp/crabpot-openclaw-plugin-jbt5ne/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-ThURVb/index.mjs"
"source": "/tmp/crabpot-openclaw-plugin-jbt5ne/index.mjs"
}
]
},
"wallMs": 1422,
"peakRssMb": 281.5,
"peakCpuPercent": 208,
"cpuMsEstimate": 2593,
"statSampleCount": 56,
"rssSampleCount": 56,
"cpuSampleCount": 56,
"wallMs": 1591,
"peakRssMb": 279.8,
"peakCpuPercent": 206,
"cpuMsEstimate": 2835,
"statSampleCount": 62,
"rssSampleCount": 62,
"cpuSampleCount": 62,
"stderrPreview": ""
}
]
@ -138,25 +138,25 @@
"runs": 3,
"baselineRuns": 3,
"baselineFailCount": 0,
"p50WallMs": 1401,
"p95WallMs": 1502,
"p50PluginWallDeltaMs": 0,
"p95PluginWallDeltaMs": 80,
"p50WallMs": 1611,
"p95WallMs": 1637,
"p50PluginWallDeltaMs": 20,
"p95PluginWallDeltaMs": 46,
"openClawLifecycleCount": 3,
"p50OpenClawImportMs": 96,
"p95OpenClawImportMs": 98.6,
"p50OpenClawActivationMs": 0.2,
"p95OpenClawActivationMs": 0.2,
"maxPeakRssMb": 285.9,
"maxCpuMsEstimate": 2768,
"maxPluginPeakRssDeltaMb": 3.3,
"maxPluginCpuDeltaMsEstimate": 175,
"baselineReferenceWallMs": 1422,
"baselineReferencePeakRssMb": 282.6,
"baselineReferenceCpuMsEstimate": 2593,
"statSampleCount": 169,
"rssSampleCount": 169,
"cpuSampleCount": 169,
"p50OpenClawImportMs": 97.2,
"p95OpenClawImportMs": 99,
"p50OpenClawActivationMs": 0.3,
"p95OpenClawActivationMs": 0.3,
"maxPeakRssMb": 290.5,
"maxCpuMsEstimate": 2961,
"maxPluginPeakRssDeltaMb": 10.7,
"maxPluginCpuDeltaMsEstimate": 102,
"baselineReferenceWallMs": 1591,
"baselineReferencePeakRssMb": 279.8,
"baselineReferenceCpuMsEstimate": 2859,
"statSampleCount": 189,
"rssSampleCount": 189,
"cpuSampleCount": 189,
"capturedCount": 6,
"failCount": 0
},
@ -171,35 +171,35 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 96,
"importMs": 99,
"activationMs": 0.2,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 96,
"source": "/tmp/crabpot-openclaw-plugin-aWWFMm/index.mjs"
"elapsedMs": 99,
"source": "/tmp/crabpot-openclaw-plugin-ngKt5r/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-aWWFMm/index.mjs"
"source": "/tmp/crabpot-openclaw-plugin-ngKt5r/index.mjs"
}
]
},
"wallMs": 1401,
"peakRssMb": 282.7,
"peakCpuPercent": 208,
"cpuMsEstimate": 2530,
"statSampleCount": 55,
"rssSampleCount": 55,
"cpuSampleCount": 55,
"wallMs": 1637,
"peakRssMb": 284.9,
"peakCpuPercent": 206,
"cpuMsEstimate": 2961,
"statSampleCount": 65,
"rssSampleCount": 65,
"cpuSampleCount": 65,
"stderrPreview": "",
"pluginWallDeltaMs": 0,
"pluginPeakRssDeltaMb": 0.1,
"pluginCpuDeltaMsEstimate": 0
"pluginWallDeltaMs": 46,
"pluginPeakRssDeltaMb": 5.1,
"pluginCpuDeltaMsEstimate": 102
},
{
"index": 1,
@ -211,35 +211,35 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 98.6,
"activationMs": 0.2,
"importMs": 97.2,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 98.6,
"source": "/tmp/crabpot-openclaw-plugin-SGDxdY/index.mjs"
"elapsedMs": 97.2,
"source": "/tmp/crabpot-openclaw-plugin-P0CclI/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-SGDxdY/index.mjs"
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-P0CclI/index.mjs"
}
]
},
"wallMs": 1502,
"peakRssMb": 285.9,
"peakCpuPercent": 210,
"cpuMsEstimate": 2768,
"statSampleCount": 60,
"rssSampleCount": 60,
"cpuSampleCount": 60,
"wallMs": 1611,
"peakRssMb": 290.5,
"peakCpuPercent": 204,
"cpuMsEstimate": 2873,
"statSampleCount": 63,
"rssSampleCount": 63,
"cpuSampleCount": 63,
"stderrPreview": "",
"pluginWallDeltaMs": 80,
"pluginPeakRssDeltaMb": 3.3,
"pluginCpuDeltaMsEstimate": 175
"pluginWallDeltaMs": 20,
"pluginPeakRssDeltaMb": 10.7,
"pluginCpuDeltaMsEstimate": 14
},
{
"index": 2,
@ -251,31 +251,31 @@
"pluginId": "crabpot-lifecycle-probe",
"importPhase": "full",
"activationPhase": "full:register",
"importMs": 93.5,
"activationMs": 0.2,
"importMs": 95.5,
"activationMs": 0.3,
"openclawPath": "/home/runner/work/crabpot/crabpot/openclaw",
"phases": [
{
"phase": "full",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 93.5,
"source": "/tmp/crabpot-openclaw-plugin-iOJCOW/index.mjs"
"elapsedMs": 95.5,
"source": "/tmp/crabpot-openclaw-plugin-e16FXG/index.mjs"
},
{
"phase": "full:register",
"pluginId": "crabpot-lifecycle-probe",
"elapsedMs": 0.2,
"source": "/tmp/crabpot-openclaw-plugin-iOJCOW/index.mjs"
"elapsedMs": 0.3,
"source": "/tmp/crabpot-openclaw-plugin-e16FXG/index.mjs"
}
]
},
"wallMs": 1366,
"peakRssMb": 280.7,
"peakCpuPercent": 210,
"cpuMsEstimate": 2497,
"statSampleCount": 54,
"rssSampleCount": 54,
"cpuSampleCount": 54,
"wallMs": 1536,
"peakRssMb": 276.5,
"peakCpuPercent": 209,
"cpuMsEstimate": 2811,
"statSampleCount": 61,
"rssSampleCount": 61,
"cpuSampleCount": 61,
"stderrPreview": "",
"pluginWallDeltaMs": 0,
"pluginPeakRssDeltaMb": 0,

View File

@ -11,25 +11,25 @@ Entrypoint: test/fixtures/lazy-import-plugin.mjs
| runs | 3 |
| baselineRuns | 3 |
| baselineFailCount | 0 |
| p50WallMs | 1401 |
| p95WallMs | 1502 |
| p50PluginWallDeltaMs | 0 |
| p95PluginWallDeltaMs | 80 |
| maxPluginPeakRssDeltaMb | 3.3 MB |
| maxPluginCpuDeltaMsEstimate | 175 ms |
| p50WallMs | 1611 |
| p95WallMs | 1637 |
| p50PluginWallDeltaMs | 20 |
| p95PluginWallDeltaMs | 46 |
| maxPluginPeakRssDeltaMb | 10.7 MB |
| maxPluginCpuDeltaMsEstimate | 102 ms |
| openClawLifecycleCount | 3 |
| p50OpenClawImportMs | 96 ms |
| p95OpenClawImportMs | 98.6 ms |
| p50OpenClawActivationMs | 0.2 ms |
| p95OpenClawActivationMs | 0.2 ms |
| maxPeakRssMb | 285.9 MB |
| maxCpuMsEstimate | 2768 ms |
| baselineReferenceWallMs | 1422 ms |
| baselineReferencePeakRssMb | 282.6 MB |
| baselineReferenceCpuMsEstimate | 2593 ms |
| statSampleCount | 169 |
| rssSampleCount | 169 |
| cpuSampleCount | 169 |
| p50OpenClawImportMs | 97.2 ms |
| p95OpenClawImportMs | 99 ms |
| p50OpenClawActivationMs | 0.3 ms |
| p95OpenClawActivationMs | 0.3 ms |
| maxPeakRssMb | 290.5 MB |
| maxCpuMsEstimate | 2961 ms |
| baselineReferenceWallMs | 1591 ms |
| baselineReferencePeakRssMb | 279.8 MB |
| baselineReferenceCpuMsEstimate | 2859 ms |
| statSampleCount | 189 |
| rssSampleCount | 189 |
| cpuSampleCount | 189 |
| capturedCount | 6 |
| failCount | 0 |
@ -40,19 +40,19 @@ Entrypoint: test/fixtures/lazy-import-plugin.mjs
| mode | minimal-plugin-capture |
| runs | 3 |
| entrypoint | .crabpot/import-loop/baseline-plugin.mjs |
| referenceWallMs | 1422 ms |
| referencePeakRssMb | 282.6 MB |
| referenceCpuMsEstimate | 2593 ms |
| maxWallMs | 1986 ms |
| maxPeakRssMb | 287.6 MB |
| maxCpuMsEstimate | 3441 ms |
| statSampleCount | 189 |
| referenceWallMs | 1591 ms |
| referencePeakRssMb | 279.8 MB |
| referenceCpuMsEstimate | 2859 ms |
| maxWallMs | 2169 ms |
| maxPeakRssMb | 288.2 MB |
| maxCpuMsEstimate | 3700 ms |
| statSampleCount | 209 |
| failCount | 0 |
## Samples
| Run | Status | Captured | OpenClaw Import | OpenClaw Activate | Plugin Wall Delta | Plugin RSS Delta | Plugin CPU Delta | Raw Wall | Raw Peak RSS | Raw CPU Estimate | RSS/CPU samples | Exit |
| --- | -------- | -------- | --------------- | ----------------- | ----------------- | ---------------- | ---------------- | -------- | ------------ | ---------------- | --------------- | ---- |
| 0 | captured | 2 | 96 ms | 0.2 ms | 0 ms | 0.1 MB | 0 ms | 1401 ms | 282.7 MB | 2530 ms | 55/55 | 0 |
| 1 | captured | 2 | 98.6 ms | 0.2 ms | 80 ms | 3.3 MB | 175 ms | 1502 ms | 285.9 MB | 2768 ms | 60/60 | 0 |
| 2 | captured | 2 | 93.5 ms | 0.2 ms | 0 ms | 0 MB | 0 ms | 1366 ms | 280.7 MB | 2497 ms | 54/54 | 0 |
| 0 | captured | 2 | 99 ms | 0.2 ms | 46 ms | 5.1 MB | 102 ms | 1637 ms | 284.9 MB | 2961 ms | 65/65 | 0 |
| 1 | captured | 2 | 97.2 ms | 0.3 ms | 20 ms | 10.7 MB | 14 ms | 1611 ms | 290.5 MB | 2873 ms | 63/63 | 0 |
| 2 | captured | 2 | 95.5 ms | 0.3 ms | 0 ms | 0 MB | 0 ms | 1536 ms | 276.5 MB | 2811 ms | 61/61 | 0 |

View File

@ -8,25 +8,25 @@ Status: PASS
| Metric | Value |
| -------------------- | ----- |
| Issue findings | 181 |
| 🔴 P0 | 4 |
| 🔴 P0 | 3 |
| 🟠 P1 | 39 |
| Live issues | 4 |
| Live P0 issues | 4 |
| Live issues | 3 |
| Live P0 issues | 3 |
| Compat gaps | 3 |
| Deprecation warnings | 28 |
| Inspector gaps | 117 |
| Upstream metadata | 29 |
| Contract probes | 175 |
| Deprecation warnings | 27 |
| Inspector gaps | 116 |
| Upstream metadata | 32 |
| Contract probes | 176 |
## Triage Overview
| Class | Count | P0 | Meaning |
| ------------------- | ----- | -- | --------------------------------------------------------------------------------------------------------------- |
| live-issue | 4 | 4 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. |
| live-issue | 3 | 3 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. |
| compat-gap | 3 | - | Compatibility behavior is needed but missing from the target OpenClaw compat registry. |
| deprecation-warning | 28 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. |
| inspector-gap | 117 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. |
| upstream-metadata | 29 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. |
| deprecation-warning | 27 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. |
| inspector-gap | 116 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. |
| upstream-metadata | 32 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. |
| fixture-regression | 0 | - | Fixture no longer exposes an expected seam; investigate fixture pin or scanner drift. |
## P0 Live Issues
@ -43,12 +43,6 @@ Status: PASS
- evidence:
- [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11)
- 🔴 P0 **hyperspell** `live-issue` `core-compat-adapter`
- **unknown-hook-name**: hyperspell: fixture uses a hook missing from target OpenClaw
- state: blocking · compat:none · live
- evidence:
- [file_changed @ index.ts:122](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L122)
- 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter`
- **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports
- state: blocking · compat:untracked · live
@ -74,12 +68,6 @@ Status: PASS
- evidence:
- [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11)
- 🔴 P0 **hyperspell** `live-issue` `core-compat-adapter`
- **unknown-hook-name**: hyperspell: fixture uses a hook missing from target OpenClaw
- state: blocking · compat:none · live
- evidence:
- [file_changed @ index.ts:122](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L122)
- 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter`
- **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports
- state: blocking · compat:untracked · live
@ -211,13 +199,6 @@ Status: PASS
- [openclaw/plugin-sdk @ search.ts:3](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/tools/search.ts#L3)
- [openclaw/plugin-sdk @ session.ts:3](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/tools/session.ts#L3)
- 🟡 P2 **hyperspell** `deprecation-warning` `core-compat-adapter`
- **legacy-before-agent-start**: hyperspell: legacy before_agent_start hook compatibility is still used
- state: open · compat:deprecated · deprecated
- evidence:
- [before_agent_start @ index.ts:102](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L102)
- [before_agent_start @ index.ts:111](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L111)
- 🟡 P2 **hyperspell** `deprecation-warning` `core-compat-adapter`
- **legacy-root-sdk-import**: hyperspell: root plugin SDK barrel is still used by fixtures
- state: open · compat:deprecated · deprecated
@ -236,13 +217,13 @@ Status: PASS
- **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used
- state: open · compat:deprecated · deprecated
- evidence:
- [before_agent_start @ generated-hooks.js:10](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L10)
- [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11)
- 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter`
- **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures
- state: open · compat:deprecated · deprecated
- evidence:
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-sdk-imports.ts#L2)
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2)
- 🟡 P2 **llm-trace-phoenix** `deprecation-warning` `core-compat-adapter`
- **legacy-root-sdk-import**: llm-trace-phoenix: root plugin SDK barrel is still used by fixtures
@ -442,13 +423,6 @@ Status: PASS
- [registerMemoryPromptSection @ index.ts:97](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L97)
- [registerMemoryRuntime @ runtime.ts:274](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/runtime.ts#L274)
- 🟠 P1 **hyperspell** `inspector-gap` `inspector-follow-up`
- **conversation-access-hook**: hyperspell: conversation-access hooks need privacy-boundary probes
- state: open · compat:active
- evidence:
- [agent_end @ index.ts:105](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L105)
- [agent_end @ index.ts:116](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L116)
- 🟠 P1 **hyperspell** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: hyperspell: runtime registrations need capture before contract judgment
- state: open · compat:active
@ -459,60 +433,60 @@ Status: PASS
- [registerCommand @ index.ts:46](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L46)
- [registerCommand @ index.ts:57](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L57)
- [registerCommand @ index.ts:68](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L68)
- [registerService @ index.ts:134](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L134)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes
- state: open · compat:active
- evidence:
- [before_tool_call @ generated-hooks.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L18)
- [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes
- state: open · compat:active
- evidence:
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:22](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L22)
- [llm_output @ generated-hooks.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L23)
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25)
- [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment
- state: open · compat:active
- evidence:
- [registerAutoEnableProbe @ generated-registrars.js:6](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L6)
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerCommand @ generated-registrars.js:11](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L11)
- [registerCommand @ kitchen-runtime.js:58](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L58)
- [registerCommand @ kitchen-runtime.js:59](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L59)
- [registerCompactionProvider @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L12)
- [registerCompactionProvider @ kitchen-runtime.js:103](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L103)
- [registerConfigMigration @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L13)
- [registerContextEngine @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L14)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:94](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L94)
- [registerGatewayDiscoveryService @ generated-registrars.js:16](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L16)
- [registerGatewayMethod @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L17)
- [registerGatewayMethod @ kitchen-runtime.js:115](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L115)
- [registerHook @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L18)
- [registerHttpRoute @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L19)
- [registerHttpRoute @ kitchen-runtime.js:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L113)
- [registerInteractiveHandler @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L21)
- [registerInteractiveHandler @ kitchen-runtime.js:61](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L61)
- [registerMemoryCapability @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L23)
- [registerMemoryCorpusSupplement @ generated-registrars.js:24](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L24)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:100](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L100)
- [registerMemoryFlushPlan @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L26)
- [registerMemoryPromptSection @ generated-registrars.js:27](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L27)
- [registerMemoryPromptSupplement @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L28)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:119](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L119)
- [registerMemoryRuntime @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L29)
- [registerNodeHostCommand @ generated-registrars.js:32](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L32)
- [registerReload @ generated-registrars.js:36](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L36)
- [registerSecurityAuditCollector @ generated-registrars.js:37](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L37)
- [registerService @ generated-registrars.js:38](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L38)
- [registerService @ kitchen-runtime.js:112](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L112)
- [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12)
- [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50)
- [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51)
- [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13)
- [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95)
- [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14)
- [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86)
- [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18)
- [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19)
- [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107)
- [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20)
- [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21)
- [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105)
- [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23)
- [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53)
- [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25)
- [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92)
- [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28)
- [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29)
- [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111)
- [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31)
- [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34)
- [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35)
- [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39)
- [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41)
- [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42)
- [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104)
- 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment
@ -911,8 +885,6 @@ Status: PASS
- [registerTool @ tools.ts:21](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L21)
- [registerTool @ tools.ts:52](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L52)
- [registerTool @ tools.ts:95](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L95)
- [registerTool @ index.ts:89](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L89)
- [registerTool @ index.ts:92](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L92)
- 🟡 P2 **inworld-tts** `inspector-gap` `inspector-follow-up`
- **package-typescript-source-entrypoint**: inworld-tts: cold import needs TypeScript source entrypoint support
@ -924,8 +896,8 @@ Status: PASS
- **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes
- state: open · compat:active
- evidence:
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up`
- **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes
@ -1238,6 +1210,12 @@ Status: PASS
## Upstream Metadata Issues
- 🟠 P1 **clawmetry** `upstream-metadata` `plugin-upstream-fix`
- **package-npm-pack-entrypoint-missing**: clawmetry: advertised npm artifact is missing OpenClaw entrypoints
- state: open · compat:none
- evidence:
- [extension:./index.ts @ index.ts](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/index.ts)
- 🟡 P2 **a2a-gateway** `upstream-metadata` `plugin-upstream-fix`
- **manifest-unknown-fields**: a2a-gateway: manifest uses unsupported top-level fields
- state: open · compat:none
@ -1265,6 +1243,13 @@ Status: PASS
- [homepage @ openclaw.plugin.json](https://github.com/agentchatme/agentchat/blob/1460cece00ebd3829fb39d5db5ee23050937ed02/integrations/openclaw-channel/openclaw.plugin.json)
- [icon @ openclaw.plugin.json](https://github.com/agentchatme/agentchat/blob/1460cece00ebd3829fb39d5db5ee23050937ed02/integrations/openclaw-channel/openclaw.plugin.json)
- 🟡 P2 **clawmetry** `upstream-metadata` `plugin-upstream-fix`
- **package-install-metadata-incomplete**: clawmetry: OpenClaw package install metadata is incomplete
- state: open · compat:none
- evidence:
- openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec
- openclaw.release.publishToNpm requires openclaw.install.npmSpec
- 🟡 P2 **clawrouter** `upstream-metadata` `plugin-upstream-fix`
- **package-plugin-api-compat-missing**: clawrouter: plugin API compatibility range is missing
- state: open · compat:none
@ -1302,6 +1287,13 @@ Status: PASS
- evidence:
- [package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json)
- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix`
- **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target
- state: open · compat:none
- evidence:
- minHostVersion:>=2026.4.1
- buildOpenClawVersion:2026.4.1
- 🟡 P2 **lightclawbot** `upstream-metadata` `plugin-upstream-fix`
- **manifest-unknown-fields**: lightclawbot: manifest uses unsupported top-level fields
- state: open · compat:none
@ -1432,12 +1424,6 @@ Status: PASS
- evidence:
- [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11)
- 🔴 P0 **hyperspell** `live-issue` `core-compat-adapter`
- **unknown-hook-name**: hyperspell: fixture uses a hook missing from target OpenClaw
- state: blocking · compat:none · live
- evidence:
- [file_changed @ index.ts:122](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L122)
- 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter`
- **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports
- state: blocking · compat:untracked · live
@ -1466,6 +1452,12 @@ Status: PASS
- evidence:
- plugin-sdk-export-aliases
- 🟠 P1 **clawmetry** `upstream-metadata` `plugin-upstream-fix`
- **package-npm-pack-entrypoint-missing**: clawmetry: advertised npm artifact is missing OpenClaw entrypoints
- state: open · compat:none
- evidence:
- [extension:./index.ts @ index.ts](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/index.ts)
- 🟠 P1 **clawmetry** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: clawmetry: runtime registrations need capture before contract judgment
- state: open · compat:active
@ -1541,13 +1533,6 @@ Status: PASS
- [registerMemoryPromptSection @ index.ts:97](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L97)
- [registerMemoryRuntime @ runtime.ts:274](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/runtime.ts#L274)
- 🟠 P1 **hyperspell** `inspector-gap` `inspector-follow-up`
- **conversation-access-hook**: hyperspell: conversation-access hooks need privacy-boundary probes
- state: open · compat:active
- evidence:
- [agent_end @ index.ts:105](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L105)
- [agent_end @ index.ts:116](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L116)
- 🟠 P1 **hyperspell** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: hyperspell: runtime registrations need capture before contract judgment
- state: open · compat:active
@ -1558,60 +1543,60 @@ Status: PASS
- [registerCommand @ index.ts:46](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L46)
- [registerCommand @ index.ts:57](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L57)
- [registerCommand @ index.ts:68](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L68)
- [registerService @ index.ts:134](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L134)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes
- state: open · compat:active
- evidence:
- [before_tool_call @ generated-hooks.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L18)
- [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes
- state: open · compat:active
- evidence:
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:22](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L22)
- [llm_output @ generated-hooks.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L23)
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25)
- [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26)
- 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment
- state: open · compat:active
- evidence:
- [registerAutoEnableProbe @ generated-registrars.js:6](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L6)
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerCommand @ generated-registrars.js:11](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L11)
- [registerCommand @ kitchen-runtime.js:58](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L58)
- [registerCommand @ kitchen-runtime.js:59](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L59)
- [registerCompactionProvider @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L12)
- [registerCompactionProvider @ kitchen-runtime.js:103](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L103)
- [registerConfigMigration @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L13)
- [registerContextEngine @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L14)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:94](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L94)
- [registerGatewayDiscoveryService @ generated-registrars.js:16](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L16)
- [registerGatewayMethod @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L17)
- [registerGatewayMethod @ kitchen-runtime.js:115](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L115)
- [registerHook @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L18)
- [registerHttpRoute @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L19)
- [registerHttpRoute @ kitchen-runtime.js:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L113)
- [registerInteractiveHandler @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L21)
- [registerInteractiveHandler @ kitchen-runtime.js:61](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L61)
- [registerMemoryCapability @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L23)
- [registerMemoryCorpusSupplement @ generated-registrars.js:24](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L24)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:100](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L100)
- [registerMemoryFlushPlan @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L26)
- [registerMemoryPromptSection @ generated-registrars.js:27](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L27)
- [registerMemoryPromptSupplement @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L28)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:119](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L119)
- [registerMemoryRuntime @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L29)
- [registerNodeHostCommand @ generated-registrars.js:32](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L32)
- [registerReload @ generated-registrars.js:36](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L36)
- [registerSecurityAuditCollector @ generated-registrars.js:37](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L37)
- [registerService @ generated-registrars.js:38](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L38)
- [registerService @ kitchen-runtime.js:112](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L112)
- [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12)
- [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50)
- [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51)
- [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13)
- [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95)
- [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14)
- [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86)
- [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18)
- [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19)
- [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107)
- [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20)
- [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21)
- [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105)
- [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23)
- [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53)
- [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25)
- [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92)
- [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28)
- [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29)
- [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111)
- [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31)
- [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34)
- [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35)
- [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39)
- [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41)
- [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42)
- [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104)
- 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up`
- **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment
@ -1895,6 +1880,13 @@ Status: PASS
- evidence:
- [node-fetch @ package.json](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/package.json)
- 🟡 P2 **clawmetry** `upstream-metadata` `plugin-upstream-fix`
- **package-install-metadata-incomplete**: clawmetry: OpenClaw package install metadata is incomplete
- state: open · compat:none
- evidence:
- openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec
- openclaw.release.publishToNpm requires openclaw.install.npmSpec
- 🟡 P2 **clawmetry** `inspector-gap` `inspector-follow-up`
- **package-typescript-source-entrypoint**: clawmetry: cold import needs TypeScript source entrypoint support
- state: open · compat:none
@ -2157,13 +2149,6 @@ Status: PASS
- [registerTool @ search.ts:8](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/tools/search.ts#L8)
- [registerTool @ session.ts:8](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/tools/session.ts#L8)
- 🟡 P2 **hyperspell** `deprecation-warning` `core-compat-adapter`
- **legacy-before-agent-start**: hyperspell: legacy before_agent_start hook compatibility is still used
- state: open · compat:deprecated · deprecated
- evidence:
- [before_agent_start @ index.ts:102](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L102)
- [before_agent_start @ index.ts:111](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L111)
- 🟡 P2 **hyperspell** `deprecation-warning` `core-compat-adapter`
- **legacy-root-sdk-import**: hyperspell: root plugin SDK barrel is still used by fixtures
- state: open · compat:deprecated · deprecated
@ -2193,8 +2178,13 @@ Status: PASS
- [registerTool @ tools.ts:21](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L21)
- [registerTool @ tools.ts:52](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L52)
- [registerTool @ tools.ts:95](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L95)
- [registerTool @ index.ts:89](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L89)
- [registerTool @ index.ts:92](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L92)
- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix`
- **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target
- state: open · compat:none
- evidence:
- minHostVersion:>=2026.4.1
- buildOpenClawVersion:2026.4.1
- 🟡 P2 **inworld-tts** `inspector-gap` `inspector-follow-up`
- **package-typescript-source-entrypoint**: inworld-tts: cold import needs TypeScript source entrypoint support
@ -2212,20 +2202,20 @@ Status: PASS
- **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes
- state: open · compat:active
- evidence:
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter`
- **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used
- state: open · compat:deprecated · deprecated
- evidence:
- [before_agent_start @ generated-hooks.js:10](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L10)
- [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11)
- 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter`
- **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures
- state: open · compat:deprecated · deprecated
- evidence:
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-sdk-imports.ts#L2)
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2)
- 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up`
- **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes
@ -2853,46 +2843,46 @@ Status: PASS
- [registerCommand @ index.ts:46](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L46)
- [registerCommand @ index.ts:57](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L57)
- [registerCommand @ index.ts:68](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L68)
- [registerService @ index.ts:134](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L134)
- 🟠 P1 **kitchen-sink** `inspector-capture-api`
- contract: External inspector capture records service, route, gateway, command, and interactive registrations.
- id: `api.capture.runtime-registrars:kitchen-sink`
- evidence:
- [registerAutoEnableProbe @ generated-registrars.js:6](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L6)
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerCommand @ generated-registrars.js:11](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L11)
- [registerCommand @ kitchen-runtime.js:58](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L58)
- [registerCommand @ kitchen-runtime.js:59](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L59)
- [registerCompactionProvider @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L12)
- [registerCompactionProvider @ kitchen-runtime.js:103](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L103)
- [registerConfigMigration @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L13)
- [registerContextEngine @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L14)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:94](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L94)
- [registerGatewayDiscoveryService @ generated-registrars.js:16](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L16)
- [registerGatewayMethod @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L17)
- [registerGatewayMethod @ kitchen-runtime.js:115](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L115)
- [registerHook @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L18)
- [registerHttpRoute @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L19)
- [registerHttpRoute @ kitchen-runtime.js:113](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L113)
- [registerInteractiveHandler @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L21)
- [registerInteractiveHandler @ kitchen-runtime.js:61](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L61)
- [registerMemoryCapability @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L23)
- [registerMemoryCorpusSupplement @ generated-registrars.js:24](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L24)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:100](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L100)
- [registerMemoryFlushPlan @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L26)
- [registerMemoryPromptSection @ generated-registrars.js:27](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L27)
- [registerMemoryPromptSupplement @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L28)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:119](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L119)
- [registerMemoryRuntime @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L29)
- [registerNodeHostCommand @ generated-registrars.js:32](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L32)
- [registerReload @ generated-registrars.js:36](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L36)
- [registerSecurityAuditCollector @ generated-registrars.js:37](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L37)
- [registerService @ generated-registrars.js:38](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L38)
- [registerService @ kitchen-runtime.js:112](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L112)
- [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12)
- [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50)
- [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51)
- [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13)
- [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95)
- [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14)
- [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15)
- [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113)
- [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17)
- [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86)
- [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18)
- [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19)
- [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107)
- [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20)
- [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21)
- [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105)
- [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23)
- [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53)
- [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25)
- [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26)
- [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92)
- [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28)
- [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29)
- [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30)
- [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111)
- [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31)
- [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34)
- [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35)
- [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39)
- [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41)
- [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42)
- [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104)
- 🟠 P1 **lightclawbot** `inspector-capture-api`
- contract: External inspector capture records service, route, gateway, command, and interactive registrations.
@ -2992,7 +2982,7 @@ Status: PASS
- contract: Hook returns preserve terminal, block, and approval semantics.
- id: `hook.before_tool_call.terminal-block-approval:kitchen-sink`
- evidence:
- [before_tool_call @ generated-hooks.js:18](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L18)
- [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19)
- 🟠 P1 **nemoclaw** `hook-runner`
- contract: Hook returns preserve terminal, block, and approval semantics.
@ -3025,20 +3015,13 @@ Status: PASS
- [agent_end @ capture.ts:151](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/hooks/capture.ts#L151)
- [agent_end @ subagent.ts:34](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/hooks/subagent.ts#L34)
- 🟠 P1 **hyperspell** `hook-runner`
- contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior.
- id: `hook.llm-observer.privacy-payload:hyperspell`
- evidence:
- [agent_end @ index.ts:105](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L105)
- [agent_end @ index.ts:116](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L116)
- 🟠 P1 **kitchen-sink** `hook-runner`
- contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior.
- id: `hook.llm-observer.privacy-payload:kitchen-sink`
- evidence:
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:22](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L22)
- [llm_output @ generated-hooks.js:23](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L23)
- [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7)
- [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25)
- [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26)
- 🟠 P1 **llm-trace-phoenix** `hook-runner`
- contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior.
@ -3118,8 +3101,8 @@ Status: PASS
- contract: Channel setup, message envelope, sender metadata, and config schema remain stable.
- id: `channel.runtime.envelope-config-metadata:kitchen-sink`
- evidence:
- [registerChannel @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-registrars.js#L7)
- [registerChannel @ kitchen-runtime.js:63](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/kitchen-runtime.js#L63)
- [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8)
- [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55)
- 🟡 P2 **mocrane-wecom** `channel-runtime`
- contract: Channel setup, message envelope, sender metadata, and config schema remain stable.
@ -3164,18 +3147,11 @@ Status: PASS
- evidence:
- [before_agent_start @ subagent.ts:18](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/hooks/subagent.ts#L18)
- 🟡 P2 **hyperspell** `hook-runner`
- contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build.
- id: `hook.compat.before-agent-start-migration:hyperspell`
- evidence:
- [before_agent_start @ index.ts:102](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L102)
- [before_agent_start @ index.ts:111](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L111)
- 🟡 P2 **kitchen-sink** `hook-runner`
- contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build.
- id: `hook.compat.before-agent-start-migration:kitchen-sink`
- evidence:
- [before_agent_start @ generated-hooks.js:10](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-hooks.js#L10)
- [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11)
- 🟡 P2 **nemoclaw** `hook-runner`
- contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build.
@ -3666,7 +3642,7 @@ Status: PASS
- contract: Root plugin SDK barrel remains importable or has a machine-readable migration path.
- id: `sdk.import.root-barrel-cold-import:kitchen-sink`
- evidence:
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/f24c6aea640e6a141543af308dd4a20f929c6d9e/src/generated-sdk-imports.ts#L2)
- [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2)
- 🟡 P2 **llm-trace-phoenix** `sdk-alias`
- contract: Root plugin SDK barrel remains importable or has a machine-readable migration path.
@ -3785,8 +3761,6 @@ Status: PASS
- [registerTool @ tools.ts:21](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L21)
- [registerTool @ tools.ts:52](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L52)
- [registerTool @ tools.ts:95](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L95)
- [registerTool @ index.ts:89](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L89)
- [registerTool @ index.ts:92](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/index.ts#L92)
- 🟡 P2 **lossless-claw** `tool-runtime`
- contract: Registered runtime tools expose stable names, input schemas, and result metadata.
@ -4020,6 +3994,20 @@ Status: PASS
- evidence:
- [extension @ index.ts](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/index.ts)
- 🟢 P3 **clawmetry** `package-loader`
- contract: Release publishing metadata declares canonical ClawHub and npm install specs.
- id: `package.metadata.install-release:clawmetry`
- evidence:
- openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec
- openclaw.release.publishToNpm requires openclaw.install.npmSpec
- 🟢 P3 **inworld-tts** `package-loader`
- contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin.
- id: `package.metadata.min-host-version:inworld-tts`
- evidence:
- minHostVersion:>=2026.4.1
- buildOpenClawVersion:2026.4.1
- 🟢 P3 **lightclawbot** `package-loader`
- contract: Package and OpenClaw manifest versions stay aligned for release compatibility reporting.
- id: `package.metadata.version-alignment:lightclawbot`
@ -4027,6 +4015,12 @@ Status: PASS
- package:1.1.2
- manifest:1.0.0
- 🟢 P3 **clawmetry** `package-loader`
- contract: Advertised npm artifacts include every declared OpenClaw package entrypoint.
- id: `package.npm-pack.entrypoints:clawmetry`
- evidence:
- [extension:./index.ts @ index.ts](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/index.ts)
- 🟢 P3 **apify** `sdk-alias`
- contract: Root plugin SDK barrel remains importable or has a machine-readable migration path.
- id: `sdk.import.root-barrel-cold-import:apify`

View File

@ -36,15 +36,15 @@
"summary": {
"commandCount": 9,
"sampleCount": 27,
"rssSampleCount": 458,
"cpuSampleCount": 458,
"rssSampleCount": 674,
"cpuSampleCount": 674,
"wallTimeBasis": "command-median-p95",
"p50WallMs": 492,
"p95WallMs": 523,
"maxPeakRssMb": 90.6,
"maxRssDeltaMb": 61.8,
"maxCpuMsEstimate": 513,
"maxHarnessHeapDeltaMb": 1.9
"p50WallMs": 756,
"p95WallMs": 799,
"maxPeakRssMb": 119.1,
"maxRssDeltaMb": 90.2,
"maxCpuMsEstimate": 911,
"maxHarnessHeapDeltaMb": 2.9
},
"targetOpenClaw": {
"status": "ok",
@ -59,11 +59,11 @@
},
"fixtureInventory": {
"fixtures": 33,
"sourceFiles": 998,
"observedHooks": 84,
"observedRegistrations": 114,
"observedSdkImports": 350,
"contractProbes": 175,
"sourceFiles": 1009,
"observedHooks": 82,
"observedRegistrations": 121,
"observedSdkImports": 379,
"contractProbes": 176,
"issueFindings": 181
}
},
@ -76,8 +76,8 @@
"summary": {
"checkCount": 10,
"failCount": 0,
"warnCount": 0,
"passCount": 10
"warnCount": 1,
"passCount": 9
},
"checks": [
{
@ -86,18 +86,18 @@
"metric": "p95WallMs",
"message": "p95WallMs stayed within 50% regression threshold",
"baseline": 1273,
"current": 523,
"delta": -750,
"percent": -58.9
"current": 799,
"delta": -474,
"percent": -37.2
},
{
"id": "profile.peak-rss",
"action": "pass",
"action": "warn",
"metric": "maxPeakRssMb",
"message": "maxPeakRssMb stayed within 50 absolute regression threshold",
"message": "maxPeakRssMb regressed 54 over baseline",
"baseline": 65.1,
"current": 90.6,
"delta": 25.5
"current": 119.1,
"delta": 54
},
{
"id": "profile.node-boot",
@ -105,8 +105,8 @@
"metric": "nodeBootWallMs",
"message": "nodeBootWallMs stayed within 500 absolute regression threshold",
"baseline": 917,
"current": 29,
"delta": -888
"current": 31,
"delta": -886
},
{
"id": "registry.compatRecords",

View File

@ -10,8 +10,8 @@ Strict: false
| ------------- | ----- |
| Checks | 10 |
| Fail | 0 |
| Warn | 0 |
| Pass | 10 |
| Warn | 1 |
| Pass | 9 |
| Current runs | 3 |
| Baseline runs | 3 |
@ -19,9 +19,9 @@ Strict: false
| Action | ID | Metric | Baseline | Current | Delta | Percent | Message |
| ------ | ------------------------------- | ---------------------- | -------- | ------- | ----- | ------- | -------------------------------------------------------------- |
| pass | profile.wall-p95 | p95WallMs | 1273 | 523 | -750 | -58.9% | p95WallMs stayed within 50% regression threshold |
| pass | profile.peak-rss | maxPeakRssMb | 65.1 | 90.6 | 25.5 | - | maxPeakRssMb stayed within 50 absolute regression threshold |
| pass | profile.node-boot | nodeBootWallMs | 917 | 29 | -888 | - | nodeBootWallMs stayed within 500 absolute regression threshold |
| pass | profile.wall-p95 | p95WallMs | 1273 | 799 | -474 | -37.2% | p95WallMs stayed within 50% regression threshold |
| warn | profile.peak-rss | maxPeakRssMb | 65.1 | 119.1 | 54 | - | maxPeakRssMb regressed 54 over baseline |
| pass | profile.node-boot | nodeBootWallMs | 917 | 31 | -886 | - | nodeBootWallMs stayed within 500 absolute regression threshold |
| pass | registry.compatRecords | compatRecords | 19 | 61 | 42 | - | registry surface delta is tracked as context |
| pass | registry.hookNames | hookNames | 31 | 35 | 4 | - | registry surface delta is tracked as context |
| pass | registry.apiRegistrars | apiRegistrars | 40 | 49 | 9 | - | registry surface delta is tracked as context |

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -8,16 +8,16 @@ Samples per command: 3
| Metric | Value |
| ---------------------- | ------------------ |
| Commands | 9 |
| P50 wall time | 492 ms |
| Command P95 wall time | 523 ms |
| P50 wall time | 756 ms |
| Command P95 wall time | 799 ms |
| Wall time basis | command-median-p95 |
| Profile samples | 27 |
| RSS samples | 458 |
| CPU samples | 458 |
| Max peak RSS | 90.6 MB |
| Max RSS delta | 61.8 MB |
| Max CPU estimate | 513 ms |
| Max harness heap delta | 1.9 MB |
| RSS samples | 674 |
| CPU samples | 674 |
| Max peak RSS | 119.1 MB |
| Max RSS delta | 90.2 MB |
| Max CPU estimate | 911 ms |
| Max harness heap delta | 2.9 MB |
## Target OpenClaw Registry Surface
@ -38,37 +38,37 @@ Samples per command: 3
| Metric | Value |
| --------------------- | ----- |
| fixtures | 33 |
| sourceFiles | 998 |
| observedHooks | 84 |
| observedRegistrations | 114 |
| observedSdkImports | 350 |
| contractProbes | 175 |
| sourceFiles | 1009 |
| observedHooks | 82 |
| observedRegistrations | 121 |
| observedSdkImports | 379 |
| contractProbes | 176 |
| issueFindings | 181 |
## Boot And Memory Samples
| ID | Label | Median wall | Max wall | Max peak RSS | Max RSS delta | CPU estimate | Heap delta | RSS/CPU samples | Exit codes |
| ---------------------- | ----------------------------------------------- | ----------- | -------- | ------------ | ------------- | ------------ | ---------- | --------------- | ---------- |
| node-boot | Node boot | 29 ms | 30 ms | 28.8 MB | 0 MB | 0 ms | 0.3 MB | 3/3 | 0 |
| fixture-inspection | Fixture inspection | 425 ms | 430 ms | 84.9 MB | 56.2 MB | 424 ms | 1.7 MB | 51/51 | 0 |
| compat-report-registry | Compatibility report plus target registry parse | 492 ms | 496 ms | 85.6 MB | 56.9 MB | 491 ms | 1.9 MB | 58/58 | 0 |
| contract-capture | Contract capture inventory | 491 ms | 493 ms | 86 MB | 57.2 MB | 475 ms | 1.9 MB | 57/57 | 0 |
| synthetic-probe-plan | Synthetic probe plan | 496 ms | 501 ms | 85.6 MB | 56.8 MB | 501 ms | 1.9 MB | 60/60 | 0 |
| cold-import-readiness | Cold import readiness | 496 ms | 508 ms | 90.6 MB | 61.8 MB | 497 ms | 1.8 MB | 60/60 | 0 |
| workspace-plan | Workspace execution plan | 512 ms | 525 ms | 89.2 MB | 60.5 MB | 510 ms | 1.8 MB | 61/61 | 0 |
| platform-probes | Platform and loader probes | 523 ms | 530 ms | 88.4 MB | 59.6 MB | 513 ms | 1.8 MB | 63/63 | 0 |
| import-loop-profile | Repeated cold import capture loop | 340 ms | 477 ms | 60.4 MB | 31.6 MB | 166 ms | 1.6 MB | 45/45 | 0 |
| node-boot | Node boot | 31 ms | 33 ms | 30 MB | 0 MB | 0 ms | 0.4 MB | 3/3 | 0 |
| fixture-inspection | Fixture inspection | 653 ms | 671 ms | 110.7 MB | 82 MB | 741 ms | 2.5 MB | 78/78 | 0 |
| compat-report-registry | Compatibility report plus target registry parse | 761 ms | 769 ms | 112.2 MB | 83.5 MB | 835 ms | 2.9 MB | 90/90 | 0 |
| contract-capture | Contract capture inventory | 747 ms | 753 ms | 112.1 MB | 83.4 MB | 825 ms | 2.8 MB | 90/90 | 0 |
| synthetic-probe-plan | Synthetic probe plan | 756 ms | 756 ms | 113 MB | 84.3 MB | 824 ms | 2.6 MB | 89/89 | 0 |
| cold-import-readiness | Cold import readiness | 757 ms | 759 ms | 117.6 MB | 88.8 MB | 866 ms | 2.5 MB | 89/89 | 0 |
| workspace-plan | Workspace execution plan | 799 ms | 848 ms | 119 MB | 90.2 MB | 911 ms | 2.8 MB | 95/95 | 0 |
| platform-probes | Platform and loader probes | 794 ms | 796 ms | 119.1 MB | 90 MB | 879 ms | 2.7 MB | 93/93 | 0 |
| import-loop-profile | Repeated cold import capture loop | 393 ms | 401 ms | 60.6 MB | 31.9 MB | 180 ms | -0.1 MB | 47/47 | 0 |
## Category Rollups
| Category | Commands | P50 wall | P95 wall | Max peak RSS | CPU estimate | RSS/CPU samples | Command IDs |
| ---------------- | -------- | -------- | -------- | ------------ | ------------ | --------------- | ---------------------- |
| baseline | 1 | 29 ms | 30 ms | 28.8 MB | 0 ms | 3/3 | node-boot |
| fixture-scan | 1 | 425 ms | 430 ms | 84.9 MB | 424 ms | 51/51 | fixture-inspection |
| target-registry | 1 | 492 ms | 496 ms | 85.6 MB | 491 ms | 58/58 | compat-report-registry |
| contract-capture | 1 | 491 ms | 493 ms | 86 MB | 475 ms | 57/57 | contract-capture |
| synthetic-probes | 1 | 496 ms | 501 ms | 85.6 MB | 501 ms | 60/60 | synthetic-probe-plan |
| cold-import | 1 | 496 ms | 508 ms | 90.6 MB | 497 ms | 60/60 | cold-import-readiness |
| workspace-plan | 1 | 512 ms | 525 ms | 89.2 MB | 510 ms | 61/61 | workspace-plan |
| platform-probes | 1 | 523 ms | 530 ms | 88.4 MB | 513 ms | 63/63 | platform-probes |
| import-loop | 1 | 340 ms | 477 ms | 60.4 MB | 166 ms | 45/45 | import-loop-profile |
| baseline | 1 | 31 ms | 33 ms | 30 MB | 0 ms | 3/3 | node-boot |
| fixture-scan | 1 | 653 ms | 671 ms | 110.7 MB | 741 ms | 78/78 | fixture-inspection |
| target-registry | 1 | 761 ms | 769 ms | 112.2 MB | 835 ms | 90/90 | compat-report-registry |
| contract-capture | 1 | 747 ms | 753 ms | 112.1 MB | 825 ms | 90/90 | contract-capture |
| synthetic-probes | 1 | 756 ms | 756 ms | 113 MB | 824 ms | 89/89 | synthetic-probe-plan |
| cold-import | 1 | 757 ms | 759 ms | 117.6 MB | 866 ms | 89/89 | cold-import-readiness |
| workspace-plan | 1 | 799 ms | 848 ms | 119 MB | 911 ms | 95/95 | workspace-plan |
| platform-probes | 1 | 794 ms | 796 ms | 119.1 MB | 879 ms | 93/93 | platform-probes |
| import-loop | 1 | 393 ms | 401 ms | 60.6 MB | 180 ms | 47/47 | import-loop-profile |

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ Generated: deterministic
| Metric | Value |
| ------------------- | ----- |
| Fixtures | 33 |
| Probes | 292 |
| Hook probes | 88 |
| Registration probes | 204 |
| Ready | 292 |
| Probes | 293 |
| Hook probes | 84 |
| Registration probes | 209 |
| Ready | 293 |
| Blocked | 0 |
| Direct execution | 112 |
| Opt-in execution | 25 |
| Metadata-only | 67 |
| Direct execution | 110 |
| Opt-in execution | 24 |
| Metadata-only | 75 |
## Probe Inventory
@ -49,13 +49,6 @@ Generated: deterministic
| lossless-claw | hook | gateway_stop | ready | hook-direct | plugins/lossless-claw/src/plugin/index.ts:2241 | hook payload and return value are captured |
| lossless-claw | hook | session_end | ready | hook-direct | plugins/lossless-claw/src/plugin/index.ts:2024 | hook payload and return value are captured |
| connectclaw | hook | before_agent_start | ready | hook-direct | plugins/connectclaw/packages/plugin/src/hooks.ts:17 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| hyperspell | hook | after_compaction | ready | hook-direct | plugins/hyperspell/index.ts:103 | hook payload and return value are captured |
| hyperspell | hook | agent_end | ready | hook-direct | plugins/hyperspell/index.ts:105 | final conversation payload is redacted as expected; agent id and run metadata are present |
| hyperspell | hook | agent_end | ready | hook-direct | plugins/hyperspell/index.ts:116 | final conversation payload is redacted as expected; agent id and run metadata are present |
| hyperspell | hook | before_agent_start | ready | hook-direct | plugins/hyperspell/index.ts:102 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| hyperspell | hook | before_agent_start | ready | hook-direct | plugins/hyperspell/index.ts:111 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| hyperspell | hook | file_changed | ready | hook-direct | plugins/hyperspell/index.ts:122 | hook payload and return value are captured |
| hyperspell | hook | session_end | ready | hook-direct | plugins/hyperspell/index.ts:104 | hook payload and return value are captured |
| honcho | hook | agent_end | ready | hook-direct | plugins/honcho/hooks/capture.ts:151 | final conversation payload is redacted as expected; agent id and run metadata are present |
| honcho | hook | agent_end | ready | hook-direct | plugins/honcho/hooks/subagent.ts:34 | final conversation payload is redacted as expected; agent id and run metadata are present |
| honcho | hook | before_agent_start | ready | hook-direct | plugins/honcho/hooks/subagent.ts:18 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
@ -68,35 +61,38 @@ Generated: deterministic
| kitchen-sink | hook | after_compaction | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:5 | hook payload and return value are captured |
| kitchen-sink | hook | after_tool_call | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:6 | hook payload and return value are captured |
| kitchen-sink | hook | agent_end | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:7 | final conversation payload is redacted as expected; agent id and run metadata are present |
| kitchen-sink | hook | before_agent_finalize | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:8 | hook payload and return value are captured |
| kitchen-sink | hook | before_agent_reply | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:9 | hook payload and return value are captured |
| kitchen-sink | hook | before_agent_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:10 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| kitchen-sink | hook | before_compaction | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:11 | hook payload and return value are captured |
| kitchen-sink | hook | before_dispatch | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:12 | hook payload and return value are captured |
| kitchen-sink | hook | before_install | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:13 | hook payload and return value are captured |
| kitchen-sink | hook | before_message_write | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:14 | hook payload and return value are captured |
| kitchen-sink | hook | before_model_resolve | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:15 | hook payload and return value are captured |
| kitchen-sink | hook | before_prompt_build | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:16 | prompt mutation result is preserved; agent and conversation metadata are present |
| kitchen-sink | hook | before_reset | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:17 | hook payload and return value are captured |
| kitchen-sink | hook | before_tool_call | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:18 | block/allow return shapes are preserved; terminal and approval metadata are present |
| kitchen-sink | hook | gateway_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:19 | hook payload and return value are captured |
| kitchen-sink | hook | gateway_stop | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:20 | hook payload and return value are captured |
| kitchen-sink | hook | inbound_claim | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:21 | claim payload preserves channel/source identity; routing metadata is present |
| kitchen-sink | hook | llm_input | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:22 | model input payload is redacted as expected; model and agent metadata are present |
| kitchen-sink | hook | llm_output | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:23 | model output payload is redacted as expected; model and agent metadata are present |
| kitchen-sink | hook | message_received | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:24 | hook payload and return value are captured |
| kitchen-sink | hook | message_sending | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:25 | hook payload and return value are captured |
| kitchen-sink | hook | message_sent | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:26 | hook payload and return value are captured |
| kitchen-sink | hook | model_call_ended | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:27 | hook payload and return value are captured |
| kitchen-sink | hook | model_call_started | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:28 | hook payload and return value are captured |
| kitchen-sink | hook | reply_dispatch | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:29 | hook payload and return value are captured |
| kitchen-sink | hook | session_end | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:30 | hook payload and return value are captured |
| kitchen-sink | hook | session_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:31 | hook payload and return value are captured |
| kitchen-sink | hook | subagent_delivery_target | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:32 | target routing result is preserved; parent/subagent metadata are present |
| kitchen-sink | hook | subagent_ended | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:33 | subagent completion payload is preserved; status metadata is present |
| kitchen-sink | hook | subagent_spawned | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:34 | spawn payload is preserved; parent/subagent metadata are present |
| kitchen-sink | hook | subagent_spawning | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:35 | hook payload and return value are captured |
| kitchen-sink | hook | tool_result_persist | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:36 | hook payload and return value are captured |
| kitchen-sink | hook | agent_turn_prepare | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:8 | hook payload and return value are captured |
| kitchen-sink | hook | before_agent_finalize | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:9 | hook payload and return value are captured |
| kitchen-sink | hook | before_agent_reply | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:10 | hook payload and return value are captured |
| kitchen-sink | hook | before_agent_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:11 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| kitchen-sink | hook | before_compaction | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:12 | hook payload and return value are captured |
| kitchen-sink | hook | before_dispatch | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:13 | hook payload and return value are captured |
| kitchen-sink | hook | before_install | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:14 | hook payload and return value are captured |
| kitchen-sink | hook | before_message_write | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:15 | hook payload and return value are captured |
| kitchen-sink | hook | before_model_resolve | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:16 | hook payload and return value are captured |
| kitchen-sink | hook | before_prompt_build | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:17 | prompt mutation result is preserved; agent and conversation metadata are present |
| kitchen-sink | hook | before_reset | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:18 | hook payload and return value are captured |
| kitchen-sink | hook | before_tool_call | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:19 | block/allow return shapes are preserved; terminal and approval metadata are present |
| kitchen-sink | hook | cron_changed | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:20 | hook payload and return value are captured |
| kitchen-sink | hook | gateway_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:21 | hook payload and return value are captured |
| kitchen-sink | hook | gateway_stop | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:22 | hook payload and return value are captured |
| kitchen-sink | hook | heartbeat_prompt_contribution | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:23 | hook payload and return value are captured |
| kitchen-sink | hook | inbound_claim | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:24 | claim payload preserves channel/source identity; routing metadata is present |
| kitchen-sink | hook | llm_input | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:25 | model input payload is redacted as expected; model and agent metadata are present |
| kitchen-sink | hook | llm_output | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:26 | model output payload is redacted as expected; model and agent metadata are present |
| kitchen-sink | hook | message_received | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:27 | hook payload and return value are captured |
| kitchen-sink | hook | message_sending | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:28 | hook payload and return value are captured |
| kitchen-sink | hook | message_sent | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:29 | hook payload and return value are captured |
| kitchen-sink | hook | model_call_ended | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:30 | hook payload and return value are captured |
| kitchen-sink | hook | model_call_started | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:31 | hook payload and return value are captured |
| kitchen-sink | hook | reply_dispatch | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:32 | hook payload and return value are captured |
| kitchen-sink | hook | session_end | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:33 | hook payload and return value are captured |
| kitchen-sink | hook | session_start | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:34 | hook payload and return value are captured |
| kitchen-sink | hook | subagent_delivery_target | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:35 | target routing result is preserved; parent/subagent metadata are present |
| kitchen-sink | hook | subagent_ended | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:36 | subagent completion payload is preserved; status metadata is present |
| kitchen-sink | hook | subagent_spawned | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:37 | spawn payload is preserved; parent/subagent metadata are present |
| kitchen-sink | hook | subagent_spawning | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:38 | hook payload and return value are captured |
| kitchen-sink | hook | tool_result_persist | ready | hook-direct | plugins/kitchen-sink/src/generated-hooks.js:39 | hook payload and return value are captured |
| nemoclaw | hook | before_agent_start | ready | hook-direct | plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | legacy startup hook payload is accepted; migration metadata can map to prompt/model hooks |
| nemoclaw | hook | before_tool_call | ready | hook-direct | plugins/nemoclaw/nemoclaw/src/index.ts:384 | block/allow return shapes are preserved; terminal and approval metadata are present |
| memory-tencentdb | hook | agent_end | ready | hook-direct | plugins/memory-tencentdb/.crabpot-package/index.ts:820 | final conversation payload is redacted as expected; agent id and run metadata are present |
@ -147,12 +143,9 @@ Generated: deterministic
| hyperspell | registration | registerCommand | ready | direct | plugins/hyperspell/index.ts:46 | command id is stable; interactive command payload is captured |
| hyperspell | registration | registerCommand | ready | direct | plugins/hyperspell/index.ts:57 | command id is stable; interactive command payload is captured |
| hyperspell | registration | registerCommand | ready | direct | plugins/hyperspell/index.ts:68 | command id is stable; interactive command payload is captured |
| hyperspell | registration | registerService | ready | lifecycle-opt-in | plugins/hyperspell/index.ts:134 | service id is stable; start/stop lifecycle handlers are captured |
| hyperspell | registration | registerTool | ready | direct | plugins/hyperspell/graph/tools.ts:21 | tool name is stable; input schema is captured; result shape metadata is captured |
| hyperspell | registration | registerTool | ready | direct | plugins/hyperspell/graph/tools.ts:52 | tool name is stable; input schema is captured; result shape metadata is captured |
| hyperspell | registration | registerTool | ready | direct | plugins/hyperspell/graph/tools.ts:95 | tool name is stable; input schema is captured; result shape metadata is captured |
| hyperspell | registration | registerTool | ready | direct | plugins/hyperspell/index.ts:89 | tool name is stable; input schema is captured; result shape metadata is captured |
| hyperspell | registration | registerTool | ready | direct | plugins/hyperspell/index.ts:92 | tool name is stable; input schema is captured; result shape metadata is captured |
| honcho | registration | definePluginEntry | ready | metadata-only | plugins/honcho/index.ts:85 | entrypoint register function is callable; entrypoint metadata is preserved |
| honcho | registration | registerCli | ready | direct | plugins/honcho/commands/cli.ts:38 | command name is stable; argument schema is captured |
| honcho | registration | registerMemoryPromptSection | ready | metadata-only | plugins/honcho/index.ts:97 | memory prompt section id is stable; render metadata is captured |
@ -166,75 +159,83 @@ Generated: deterministic
| honcho | registration | registerTool | ready | direct | plugins/honcho/tools/session.ts:8 | tool name is stable; input schema is captured; result shape metadata is captured |
| composio | registration | registerCli | ready | direct | plugins/composio/src/cli.ts:46 | command name is stable; argument schema is captured |
| composio | registration | registerTool | ready | direct | plugins/composio/src/tools.ts:89 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerAgentHarness | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:4 | registration arguments are captured |
| kitchen-sink | registration | registerAgentToolResultMiddleware | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:5 | registration arguments are captured |
| kitchen-sink | registration | registerAgentToolResultMiddleware | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:107 | registration arguments are captured |
| kitchen-sink | registration | registerAutoEnableProbe | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:6 | registration arguments are captured |
| kitchen-sink | registration | registerChannel | ready | channel-opt-in | plugins/kitchen-sink/src/generated-registrars.js:7 | channel id is stable; inbound/outbound envelope shape is captured; sender metadata is preserved |
| kitchen-sink | registration | registerChannel | ready | channel-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:63 | channel id is stable; inbound/outbound envelope shape is captured; sender metadata is preserved |
| kitchen-sink | registration | registerCli | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:8 | command name is stable; argument schema is captured |
| kitchen-sink | registration | registerCli | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:117 | command name is stable; argument schema is captured |
| kitchen-sink | registration | registerCliBackend | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:9 | registration arguments are captured |
| kitchen-sink | registration | registerCodexAppServerExtensionFactory | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:10 | registration arguments are captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:11 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:58 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:59 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCompactionProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:12 | registration arguments are captured |
| kitchen-sink | registration | registerCompactionProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:103 | registration arguments are captured |
| kitchen-sink | registration | registerConfigMigration | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:13 | registration arguments are captured |
| kitchen-sink | registration | registerContextEngine | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:14 | context engine id is stable; factory metadata is captured |
| kitchen-sink | registration | registerAgentEventSubscription | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:4 | registration arguments are captured |
| kitchen-sink | registration | registerAgentHarness | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:5 | registration arguments are captured |
| kitchen-sink | registration | registerAgentToolResultMiddleware | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:6 | registration arguments are captured |
| kitchen-sink | registration | registerAgentToolResultMiddleware | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:99 | registration arguments are captured |
| kitchen-sink | registration | registerAutoEnableProbe | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:7 | registration arguments are captured |
| kitchen-sink | registration | registerChannel | ready | channel-opt-in | plugins/kitchen-sink/src/generated-registrars.js:8 | channel id is stable; inbound/outbound envelope shape is captured; sender metadata is preserved |
| kitchen-sink | registration | registerChannel | ready | channel-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:55 | channel id is stable; inbound/outbound envelope shape is captured; sender metadata is preserved |
| kitchen-sink | registration | registerCli | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:9 | command name is stable; argument schema is captured |
| kitchen-sink | registration | registerCli | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:109 | command name is stable; argument schema is captured |
| kitchen-sink | registration | registerCliBackend | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:10 | registration arguments are captured |
| kitchen-sink | registration | registerCodexAppServerExtensionFactory | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:11 | registration arguments are captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:12 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:50 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCommand | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:51 | command id is stable; interactive command payload is captured |
| kitchen-sink | registration | registerCompactionProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:13 | registration arguments are captured |
| kitchen-sink | registration | registerCompactionProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:95 | registration arguments are captured |
| kitchen-sink | registration | registerConfigMigration | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:14 | registration arguments are captured |
| kitchen-sink | registration | registerContextEngine | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:15 | context engine id is stable; factory metadata is captured |
| kitchen-sink | registration | registerControlUiDescriptor | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:16 | registration arguments are captured |
| kitchen-sink | registration | registerDetachedTaskRuntime | ready | metadata-only | plugins/kitchen-sink/scripts/sync-surface.mjs:113 | registration arguments are captured |
| kitchen-sink | registration | registerDetachedTaskRuntime | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:15 | registration arguments are captured |
| kitchen-sink | registration | registerDetachedTaskRuntime | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:94 | registration arguments are captured |
| kitchen-sink | registration | registerGatewayDiscoveryService | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:16 | registration arguments are captured |
| kitchen-sink | registration | registerGatewayMethod | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:17 | method name is stable; request and response schema are captured |
| kitchen-sink | registration | registerGatewayMethod | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:115 | method name is stable; request and response schema are captured |
| kitchen-sink | registration | registerHook | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:18 | legacy hook name is stable; handler metadata is captured |
| kitchen-sink | registration | registerHttpRoute | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:19 | route method and path are captured; auth policy metadata is captured |
| kitchen-sink | registration | registerHttpRoute | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:113 | route method and path are captured; auth policy metadata is captured |
| kitchen-sink | registration | registerImageGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:20 | registration arguments are captured |
| kitchen-sink | registration | registerImageGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:69 | registration arguments are captured |
| kitchen-sink | registration | registerInteractiveHandler | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:21 | handler id is stable; interaction payload and response shape are captured |
| kitchen-sink | registration | registerInteractiveHandler | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:61 | handler id is stable; interaction payload and response shape are captured |
| kitchen-sink | registration | registerMediaUnderstandingProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:22 | registration arguments are captured |
| kitchen-sink | registration | registerMediaUnderstandingProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:72 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCapability | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:23 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCorpusSupplement | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:24 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCorpusSupplement | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:100 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryEmbeddingProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:25 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryEmbeddingProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:97 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryFlushPlan | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:26 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryPromptSection | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:27 | memory prompt section id is stable; render metadata is captured |
| kitchen-sink | registration | registerMemoryPromptSupplement | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:28 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryPromptSupplement | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:119 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryRuntime | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:29 | memory runtime id is stable; runtime factory metadata is captured |
| kitchen-sink | registration | registerMigrationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:30 | registration arguments are captured |
| kitchen-sink | registration | registerMusicGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:31 | registration arguments are captured |
| kitchen-sink | registration | registerMusicGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:85 | registration arguments are captured |
| kitchen-sink | registration | registerNodeHostCommand | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:32 | registration arguments are captured |
| kitchen-sink | registration | registerProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:33 | registration arguments are captured |
| kitchen-sink | registration | registerProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:67 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeTranscriptionProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:34 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeTranscriptionProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:76 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeVoiceProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:35 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeVoiceProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:79 | registration arguments are captured |
| kitchen-sink | registration | registerReload | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:36 | registration arguments are captured |
| kitchen-sink | registration | registerSecurityAuditCollector | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:37 | registration arguments are captured |
| kitchen-sink | registration | registerService | ready | lifecycle-opt-in | plugins/kitchen-sink/src/generated-registrars.js:38 | service id is stable; start/stop lifecycle handlers are captured |
| kitchen-sink | registration | registerService | ready | lifecycle-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:112 | service id is stable; start/stop lifecycle handlers are captured |
| kitchen-sink | registration | registerSpeechProvider | ready | provider-opt-in | plugins/kitchen-sink/src/generated-registrars.js:39 | provider id is stable; speech request overrides are captured |
| kitchen-sink | registration | registerSpeechProvider | ready | provider-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:74 | provider id is stable; speech request overrides are captured |
| kitchen-sink | registration | registerTextTransforms | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:40 | registration arguments are captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:41 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:64 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:65 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:66 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerVideoGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:42 | registration arguments are captured |
| kitchen-sink | registration | registerVideoGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:82 | registration arguments are captured |
| kitchen-sink | registration | registerWebFetchProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:43 | registration arguments are captured |
| kitchen-sink | registration | registerWebFetchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:91 | registration arguments are captured |
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:44 | registration arguments are captured |
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:88 | registration arguments are captured |
| kitchen-sink | registration | registerDetachedTaskRuntime | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:17 | registration arguments are captured |
| kitchen-sink | registration | registerDetachedTaskRuntime | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:86 | registration arguments are captured |
| kitchen-sink | registration | registerGatewayDiscoveryService | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:18 | registration arguments are captured |
| kitchen-sink | registration | registerGatewayMethod | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:19 | method name is stable; request and response schema are captured |
| kitchen-sink | registration | registerGatewayMethod | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:107 | method name is stable; request and response schema are captured |
| kitchen-sink | registration | registerHook | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:20 | legacy hook name is stable; handler metadata is captured |
| kitchen-sink | registration | registerHttpRoute | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:21 | route method and path are captured; auth policy metadata is captured |
| kitchen-sink | registration | registerHttpRoute | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:105 | route method and path are captured; auth policy metadata is captured |
| kitchen-sink | registration | registerImageGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:22 | registration arguments are captured |
| kitchen-sink | registration | registerImageGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:61 | registration arguments are captured |
| kitchen-sink | registration | registerInteractiveHandler | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:23 | handler id is stable; interaction payload and response shape are captured |
| kitchen-sink | registration | registerInteractiveHandler | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:53 | handler id is stable; interaction payload and response shape are captured |
| kitchen-sink | registration | registerMediaUnderstandingProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:24 | registration arguments are captured |
| kitchen-sink | registration | registerMediaUnderstandingProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:64 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCapability | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:25 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCorpusSupplement | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:26 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryCorpusSupplement | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:92 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryEmbeddingProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:27 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryEmbeddingProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:89 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryFlushPlan | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:28 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryPromptSection | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:29 | memory prompt section id is stable; render metadata is captured |
| kitchen-sink | registration | registerMemoryPromptSupplement | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:30 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryPromptSupplement | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:111 | registration arguments are captured |
| kitchen-sink | registration | registerMemoryRuntime | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:31 | memory runtime id is stable; runtime factory metadata is captured |
| kitchen-sink | registration | registerMigrationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:32 | registration arguments are captured |
| kitchen-sink | registration | registerMusicGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:33 | registration arguments are captured |
| kitchen-sink | registration | registerMusicGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:77 | registration arguments are captured |
| kitchen-sink | registration | registerNodeHostCommand | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:34 | registration arguments are captured |
| kitchen-sink | registration | registerNodeInvokePolicy | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:35 | registration arguments are captured |
| kitchen-sink | registration | registerProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:36 | registration arguments are captured |
| kitchen-sink | registration | registerProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:59 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeTranscriptionProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:37 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeTranscriptionProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:68 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeVoiceProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:38 | registration arguments are captured |
| kitchen-sink | registration | registerRealtimeVoiceProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:71 | registration arguments are captured |
| kitchen-sink | registration | registerReload | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:39 | registration arguments are captured |
| kitchen-sink | registration | registerRuntimeLifecycle | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:40 | registration arguments are captured |
| kitchen-sink | registration | registerSecurityAuditCollector | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:41 | registration arguments are captured |
| kitchen-sink | registration | registerService | ready | lifecycle-opt-in | plugins/kitchen-sink/src/generated-registrars.js:42 | service id is stable; start/stop lifecycle handlers are captured |
| kitchen-sink | registration | registerService | ready | lifecycle-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:104 | service id is stable; start/stop lifecycle handlers are captured |
| kitchen-sink | registration | registerSessionExtension | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:43 | registration arguments are captured |
| kitchen-sink | registration | registerSessionSchedulerJob | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:44 | registration arguments are captured |
| kitchen-sink | registration | registerSpeechProvider | ready | provider-opt-in | plugins/kitchen-sink/src/generated-registrars.js:45 | provider id is stable; speech request overrides are captured |
| kitchen-sink | registration | registerSpeechProvider | ready | provider-opt-in | plugins/kitchen-sink/src/kitchen-runtime.js:66 | provider id is stable; speech request overrides are captured |
| kitchen-sink | registration | registerTextTransforms | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:46 | registration arguments are captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/generated-registrars.js:47 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:56 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:57 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerTool | ready | direct | plugins/kitchen-sink/src/kitchen-runtime.js:58 | tool name is stable; input schema is captured; result shape metadata is captured |
| kitchen-sink | registration | registerToolMetadata | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:48 | registration arguments are captured |
| kitchen-sink | registration | registerTrustedToolPolicy | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:49 | registration arguments are captured |
| kitchen-sink | registration | registerVideoGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:50 | registration arguments are captured |
| kitchen-sink | registration | registerVideoGenerationProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:74 | registration arguments are captured |
| kitchen-sink | registration | registerWebFetchProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:51 | registration arguments are captured |
| kitchen-sink | registration | registerWebFetchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:83 | registration arguments are captured |
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/generated-registrars.js:52 | registration arguments are captured |
| kitchen-sink | registration | registerWebSearchProvider | ready | metadata-only | plugins/kitchen-sink/src/kitchen-runtime.js:80 | registration arguments are captured |
| nemoclaw | registration | registerCommand | ready | direct | plugins/nemoclaw/nemoclaw/src/index.ts:336 | command id is stable; interactive command payload is captured |
| nemoclaw | registration | registerProvider | ready | metadata-only | plugins/nemoclaw/nemoclaw/src/index.ts:372 | registration arguments are captured |
| memory-tencentdb | registration | registerCli | ready | direct | plugins/memory-tencentdb/.crabpot-package/index.ts:957 | command name is stable; argument schema is captured |