Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: found issues before merge. Reviewed August 31, 2026, 4:23 AM ET / 08:23 UTC. ClawSweeper reviewWhat this changesThe PR refreshes 22 plugin-fixture package pins and reports, updates plugin-inspector to 0.3.23, classifies widget presenters as metadata, and makes inspector smoke checks return failing exit codes. Regression provenancePossible regression — probable (reviewed change; failure trace). No predecessor PR is attributed. Merge readinessKeep this draft open: the promoted inspector release leaves the refreshed fixtures unable to satisfy required checks, and the security gate still has two high-severity inherited dependency findings. Priority: P2 Review scores
Verification
How this fits togetherCrabpot materializes configured OpenClaw plugin fixtures and passes them to plugin-inspector for compatibility reports. The smoke wrapper and static suite consume those reports to make CI fail on fixture breakages. flowchart LR
A[Fixture manifest] --> B[Fixture packages]
B --> C[Plugin inspector]
C --> D[Smoke wrapper]
D --> E[Static suite]
E --> F[Reports and CI]
Before merge
Findings
Agent review detailsSecurityNeeds attention: The PR does not introduce the reported OpenTelemetry findings, but its changed TencentDB fixture lock retains two high-severity dependency findings that currently block the repository security gate. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Wait for an inspector release that recognizes the compiled Teams entrypoint and preserves missing-entrypoint readiness precedence, then repin it and rerun the complete default track; land only after the TencentDB upstream security range is also resolved. Do we have a high-confidence way to reproduce the issue? Yes. The branch's generated report and supplied required-check results consistently reproduce the missing Teams registration after the refreshed fixture and inspector pins. Is this the best way to solve the issue? No. Forwarding --check is correct, but promoting the fixtures before the inspector can classify their entrypoints makes the required compatibility suite unusable. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against ac4feae222ee. LabelsLabel justifications:
EvidenceSecurity concerns:
What I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (2 earlier review cycles) |
What Problem This Solves
Refreshes stale fixture package pins and the inspector dependency, and fixes the synthetic probe planner's missing classification for widget presenter descriptors. This is a draft: required CI cannot be declared green while the upstream blockers below remain.
Why This Change Was Made
19512a12323eab2fff783820ffd20c3c04040964. The release fixes archive-extraction lifetime and bundled-source scanner memory use.registerWidgetPresenteras descriptor metadata, like other provider registrars; channel presentation itself still needs runtime context.--checkflag so reports containing breakages produce a nonzero command exit, with a regression test for both reporting and check modes.Related #294: the inspector bump overlaps that existing PR. Coordinate the two before landing. Existing Git fixture update PRs were not merged or superseded.
User Impact
The inspector uses bounded memory for bundled sources, fixture fallback pins follow the current stable release, and widget presenter metadata no longer causes an unclassified synthetic-plan failure.
Dependency Diff
@openclaw/brave-plugin2026.8.1-beta.32026.8.1@openclaw/codex2026.8.1-beta.32026.8.1@openclaw/diagnostics-otel2026.7.12026.8.1@openclaw/diagnostics-prometheus2026.8.1-beta.32026.8.1@openclaw/diffs2026.8.1-beta.32026.8.1@openclaw/discord2026.7.12026.8.1@openclaw/feishu2026.7.12026.8.1@openclaw/google-meet2026.8.1-beta.32026.8.1@openclaw/lobster2026.7.12026.8.1@openclaw/matrix2026.7.12026.8.1@openclaw/mattermost2026.7.12026.8.1@openclaw/memory-lancedb2026.8.1-beta.32026.8.1@openclaw/msteams2026.7.12026.8.1@openclaw/nextcloud-talk2026.7.12026.8.1@openclaw/nostr2026.7.12026.8.1@openclaw/synology-chat2026.7.12026.8.1@openclaw/tlon2026.7.12026.8.1@openclaw/twitch2026.7.12026.8.1@openclaw/voice-call2026.7.12026.8.1@openclaw/whatsapp2026.8.1-beta.32026.8.1@openclaw/zalo2026.7.12026.8.1@openclaw/zalouser2026.7.12026.8.1GitHub Actions references and pnpm 11.24.0 were already current. Teams now pins the same 2026.8.1 artifact materialized by the configured latest tag; its compiled-call inspection failure remains explicit. QQbot's retained beta pin is newer than its legacy package's
latesttag; migrating its package identity is covered by #287 and is outside this refresh's no-new-dependencies constraint.Evidence
Toolchain: Node 22.23.2 and npm 10.9.9, matching the required CI runtime family. This repository runs JavaScript directly and has no separate build target.
The initial
npm teststopped before tests when Zalouser extraction exceeded the local 120-second tar timeout. The remaining fixtures were materialized withCRABPOT_GIT_TIMEOUT_MS=600000(local only; no committed timeout or CI change), then the complete test runner was executed:All three failures are the existing Teams discovery issue: contract coverage, fixture inspection, and compatibility report classification. The widget-probe failure is gone. The five focused inspector pin/CLI tests, including the new failure-exit regression, pass.
Live CLI integration against the exact promoted OpenClaw checkout:
Full real-fixture reports in both dependency modes now return the correct failure exit:
Both report
msteams: missing registrations: registerChannel. Before the wrapper repair, both printed the same failure but returned exit 0 because--checkwas dropped.The override follow-up also installs the actual Teams dependency graph and exercises its Axios package against a local HTTP server:
The HTTP probe creates a loopback server, requests a JSON response through the installed Axios client, and asserts the status and response body. The full 191-test run above precedes this override-only follow-up; the focused security tests and real install/HTTP check validate that delta. Codex autoreview also reviewed the follow-up cleanly at P0.
The static compatibility, capture, synthetic, cold-import, workspace, platform, and generated-surface reports were regenerated. The candidate retains one hard fixture breakage.
npm run check:contractsandnode scripts/sync-fixtures.mjs --checkpass.The final committed-lock audit uses the repository's existing classifier and finds two high entries. The first PR CI run additionally caught Teams' stale Axios override; refreshing it to 1.20.0 removes that third gate finding. A normal repair attempt preserves the affected dependency range:
No assertion, fixture expectation, security finding, or job was disabled. Codex autoreview completed all 19 bounded chunks with no accepted/actionable P0 findings. Two normal-tier attempts stopped on model capacity; the same model completed on its supported priority tier. This review result does not imply that the documented test or audit gates pass.
CI Reasoning and Remaining Blockers
The latest observed required default-branch Check run passed. The reported red state is the scheduled development Track Dashboard, which failed four tests: three derive from missed Teams channel registration and one from widget presenter classification. This patch fixes the widget classification; it preserves the Teams expectation.
The actual
@openclaw/msteams@2026.8.1archive calls(0, require("openclaw/plugin-sdk/channel-entry-contract").defineBundledChannelEntry)({...})indist/index.cjs. Inspector 0.3.23 only recognizes the helper immediately followed by an opening parenthesis, so it returns no registrations for this valid compiled call. The standalone fixture CLI reproduces the missingregisterChannelfailure with host analysis disabled. Fix and publish the parser in plugin-inspector before landing this refresh; do not weaken the fixture assertion or rewrite upstream plugin source in Crabpot.The audit also finds two high-severity OpenTelemetry entries in TencentDB Memory. The published
@tencentdb-agent-memory/memory-tencentdb@1.0.1requires@opentelemetry/sdk-node ^0.218.0; normalnpm audit fixretains the affected graph. The original HEAD lockfile produces the same two findings today. The Jaeger advisory requires propagator 2.9.0 or newer. Request an upstream package update with a supported patched SDK range; the audit gate is unchanged.Additional CI Evidence and Upgrade Boundaries
The first PR Check run completed with failures in security, all four static lanes, and 5 of 24 isolated fixture lanes. The static failures reproduce the same three Teams assertions on Ubuntu, macOS, Windows, and the container. The follow-up override refresh repairs the Axios security finding; the two TencentDB entries remain.
The isolated failures are distinct:
brave-plugin,codex,diffs, anddiscordattempt to capture missingindex.tssource entries from npm archives. The inspector can assignsdk-alias-requiredahead of the missing-entrypoint state, so the executor's existing missing-entrypoint guard does not apply. The captured Codex execution artifact confirms that status and path. Teams' compiled CommonJS entry additionally fails to resolveopenclaw/dist/plugin-sdk/channel-entry-contract.jsthrough the mock capture runner. Fix entrypoint readiness precedence and CommonJS SDK capture at the inspector ownership boundary, then rerun the lanes; do not add policy exemptions or silently drop failing probes here.Major overrides retained for upstream compatibility review: fast-uri 3 → 4, protobufjs 7 → 8, uuid 11 → 14, basic-ftp 5 → 6, linkify-it 5 → 6, markdown-it 14 → 15, undici 7 → 8, form-data 2 → 4, tough-cookie 4 → 6, conf 10 → 15, and cos-nodejs-sdk-v5 2 beta → 3. These overrides affect externally owned plugin consumers, which cannot all be validated while the integration gates are blocked. In particular, uuid 12 removes CommonJS support; protobufjs 8 changes edition behavior. Prefer publisher-led consumer migrations over forcing these majors across the fixture graphs. No version downgrade to an older stable tag was made.
The final-head Check run completed failure at
e8e74d62af7c1a3fded4b4088412905c7466c019: all four static lanes reproduce exactly the three Teams assertions; 22 of 27 isolated lanes pass and the same five fail. Its security log confirms the Axios finding is gone and only the two TencentDB OpenTelemetry entries remain. No new failure class appeared after the override refresh.Fixture Impact
Notes
No production services, credentials, fixture source repositories, releases, tags, or merges were changed. This PR must remain a draft until the blockers and required checks are resolved.