Skip to content

fix(googlechat): support spaceType field for DM vs Space detection - #58993

Merged
vincentkoc merged 7 commits into
openclaw:mainfrom
Starhappysh:fix/googlechat-spacetype-dm-detection-58514
Jun 22, 2026
Merged

vincentkoc merged 7 commits into
openclaw:mainfrom
Starhappysh:fix/googlechat-spacetype-dm-detection-58514

Conversation

@Starhappysh

@Starhappysh Starhappysh commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Modern Google Chat direct messages can omit the deprecated type field. Without a modern-field classifier, those DMs are treated as groups, entering group access policy and the group session route instead of the direct route.

Evidence

  • Real environment tested: Blacksmith Testbox Linux CI environment.
  • Exact steps or command run after this patch: corepack pnpm test:serial extensions/googlechat/src/monitor.test.ts
  • Evidence after fix: 13 monitor ingress tests passed, including spaceType: "DIRECT_MESSAGE", singleUserBotDm: true, SPACE, and GROUP_CHAT routes and group-policy behavior.
  • Observed result after fix: Modern DM payloads select the direct peer/session route; Space and group payloads remain on the group route.
  • What was not tested: Live Google Chat account delivery and Space/group session creation. The latter is intentionally outside this PR and remains tracked by [Bug]: Google Chat: Space/Group messages silently ignored (DMs work correctly) #58514.

Scope

This fixes modern DM classification only. It does not change how SPACE or GROUP_CHAT messages pass group policy or create group sessions, so #58514 remains open.

Verification

  • corepack pnpm test:serial extensions/googlechat/src/monitor.test.ts on Blacksmith Testbox
  • .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main

@greptile-apps

greptile-apps Bot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes a DM detection regression in the Google Chat integration caused by the deprecation of the space.type field ("DM" | "ROOM") in favor of space.spaceType ("DIRECT_MESSAGE" | "SPACE") and space.singleUserBotDm. When the legacy field is absent, the old check always fell through to isGroup = true, causing DMs to be processed as group messages and silently dropped when no group policy was configured.

Changes:

  • types.ts: Adds spaceType?: string and singleUserBotDm?: boolean to GoogleChatSpace to model the newer API fields.
  • monitor.ts: Replaces the single type-based check with a three-way && guard — isGroup is false (i.e. treated as DM) if any of the three fields signals a direct message. This correctly handles both legacy and current API payloads.

The logic is sound: all three conditions must be "not a DM signal" for the message to be classified as a group message, so any single DM indicator short-circuits to isGroup = false.

Confidence Score: 5/5

This PR is safe to merge — it is a targeted, well-reasoned bug fix with no regressions introduced.

The fix correctly uses conjunction (&&) so that any single DM indicator (type === 'DM', spaceType === 'DIRECT_MESSAGE', or singleUserBotDm === true) sets isGroup = false. All edge cases (legacy-only payload, modern-only payload, mixed payload, empty payload) are handled correctly. The type additions are minimal and safe. No existing behaviour is broken for group/space messages. All remaining observations are P2.

No files require special attention.

Reviews (1): Last reviewed commit: "fix(googlechat): use spaceType and singl..." | Re-trigger Greptile

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Google Chat channel’s DM vs Space (group) detection to support newer Google Chat API payloads where space.type is deprecated, preventing inbound messages from being misrouted/dropped due to incorrect classification.

Changes:

  • Extend GoogleChatSpace with spaceType and singleUserBotDm fields.
  • Update inbound message classification to fall back through type, spaceType, and singleUserBotDm when determining group vs DM.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
extensions/googlechat/src/types.ts Adds newer Google Chat space fields required to interpret modern payloads.
extensions/googlechat/src/monitor.ts Updates DM/group detection logic to use legacy + modern API fields for correct routing and policy evaluation.

Comment thread extensions/googlechat/src/monitor.ts Outdated
@clawsweeper

clawsweeper Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 22, 2026, 4:37 AM ET / 08:37 UTC.

Summary
The branch adds Google Chat modern space classification and regression tests, while its current compare also carries stale-main maintenance changes outside the Google Chat surface.

PR surface: Source -41, Tests +289, Other +24. Total +272 across 26 files.

Reproducibility: Do we have a high-confidence way to reproduce the issue? Yes at source/report level: current main and v2026.6.9 only read space.type, while the discussion includes live Google Chat symptoms and the PR tests cover modern payload shapes; I did not run a fresh live Google Chat account test in this read-only review.

Review metrics: 1 noteworthy metric.

  • Merge Refresh State: DIRTY; 4 ahead, 7 behind; no potential merge commit. The stale 26-file compare should not be treated as the final landing surface until the branch is refreshed against current main.

Stored data model
Persistent data-model change detected: database schema: extensions/qa-lab/src/test-file-scenario-runner.test.ts, migration/backfill/repair: qa/scenarios/memory/active-memory-preprompt-recall.yaml, persistent cache schema: extensions/qa-lab/src/providers/mock-openai/server.test.ts, persistent cache schema: qa/scenarios/runtime/long-context-cache-stability.yaml, serialized state: extensions/qa-lab/src/test-file-scenario-runner.test.ts, serialized state: qa/scenarios/memory/active-memory-preprompt-recall.yaml, and 4 more. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #58514
Summary: This PR is a focused candidate fix for modern Google Chat space metadata classification within the broader open Google Chat Space/group message-loss report.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Resolve the DIRTY/CONFLICTING merge state against current main.
  • Keep the final merge result scoped to the three Google Chat classifier/type/test files.

Risk before merge

  • [P1] Current PR head is DIRTY/CONFLICTING and diverged from current main, so maintainers need a fresh merge result before landing.
  • [P1] The classifier feeds Google Chat direct/group access policy, session routing, and reply context; live Space/group delivery remains outside this scoped PR and should stay tracked by the canonical issue.

Maintainer options:

  1. Refresh Branch To Current Main (recommended)
    Rebase or otherwise resolve the current DIRTY merge state so maintainers can verify that only the Google Chat classifier/type/test changes land.
  2. Land The Scoped Classifier Fix
    After the merge result is clean, accept the remaining live-transport uncertainty because the patch is narrow, covered by focused route tests, and has a maintainer proof override.
  3. Ask For Live Google Chat Proof
    Require a redacted live Google Chat DM or Space run before merge if maintainers want transport proof beyond the source-level reproduction and Testbox monitor tests.

Next step before merge

  • [P2] Manual maintainer handling is needed because GitHub reports the PR as DIRTY/CONFLICTING; the underlying Google Chat fix remains valid and not yet on main or in v2026.6.9.

Security
Cleared: No concrete security or supply-chain concern was found in the scoped Google Chat classifier/type/test change; the stale compare needs merge refresh but does not add dependency or secret-handling changes by itself.

Review details

Best possible solution:

Refresh the branch so the merge result is only the Google Chat classifier, type, and test changes, then land the scoped compatibility fix while keeping broader Space/group ingress work on the canonical issue.

Do we have a high-confidence way to reproduce the issue?

Do we have a high-confidence way to reproduce the issue? Yes at source/report level: current main and v2026.6.9 only read space.type, while the discussion includes live Google Chat symptoms and the PR tests cover modern payload shapes; I did not run a fresh live Google Chat account test in this read-only review.

Is this the best way to solve the issue?

Is this the best way to solve the issue? Yes for the scoped bug: classifying the Google Chat Space object in the plugin monitor before access policy and route building is the narrow owner-boundary fix. The branch still needs merge-state refresh before maintainers can land it safely.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against d9a38130b1a8.

Label changes

Label justifications:

  • P1: The PR targets a broken Google Chat channel-routing path that can silently send delivered messages through the wrong direct/group access and session route.
  • merge-risk: 🚨 message-delivery: The diff changes how inbound Google Chat messages are classified before access policy, session routing, reply threading, and context delivery.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Override: A maintainer applied proof: override for this PR.
Evidence reviewed

PR surface:

Source -41, Tests +289, Other +24. Total +272 across 26 files.

View PR surface stats
Area Files Added Removed Net
Source 11 50 91 -41
Tests 9 347 58 +289
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 6 46 22 +24
Total 26 443 171 +272

What I checked:

Likely related people:

  • steipete: Recent history shows repeated Google Chat monitor, access-policy, bot-loop, and channel refactor work on the same inbound route. (role: recent area contributor; confidence: high; commits: 7dbc7702c353, 1507a9701b83, 4785a073d6c0; files: extensions/googlechat/src/monitor.ts, extensions/googlechat/src/monitor-access.ts, extensions/googlechat/src/monitor.test.ts)
  • iHildy: GitHub path history shows the beta Google Chat channel introduction that the current GoogleChatSpace type and monitor path descend from. (role: introduced behavior; confidence: medium; commits: b76cd6695d11; files: extensions/googlechat/src/types.ts, extensions/googlechat/src/monitor.ts)
  • jailbirt: Recently fixed Google Chat DM routing/thread behavior in the same monitor path, merged as fix(googlechat): don't set replyToId in DM conversations #87054. (role: adjacent recent contributor; confidence: medium; commits: da822dd28bf8; files: extensions/googlechat/src/monitor.ts, extensions/googlechat/src/monitor.test.ts)
  • vincentkoc: Maintained the PR head, supplied the proof override/land-ready context, and has nearby Google Chat plugin-boundary history. (role: recent branch maintainer; confidence: medium; commits: 2b67a3f76e90, c90c7b74aace, 30782fc11e03; files: extensions/googlechat/src/monitor.ts, extensions/googlechat/src/types.ts, extensions/googlechat/src/channel.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@marcelocompucorp

Copy link
Copy Markdown

Reproduction confirmed on v2026.5.7 — additional diagnostic detail in support of PR #58993

Hit this exact issue this week. Posting the detail in case it's useful as the "real behavior proof" @clawsweeper is asking for on this PR.

Environment

  • OpenClaw version: v2026.5.7, installed via npm install -g openclaw
  • Node.js 25.6.0 (via Linuxbrew)
  • OS: Ubuntu 24.04 LTS
  • Run as a user systemd service (openclaw-gateway.service)
  • Channel: Google Chat plugin, audienceType: app-url, behind Tailscale Funnel
  • Tested with two separate Google Cloud projects:
    1. Original project where "Build this Chat app as a Workspace add-on" was ticked (greyed-out / locked)
    2. Fresh project with that checkbox explicitly unticked, new service account, app status set to Live

Symptoms

  • DMs to the bot work end-to-end (pairing, replies, etc.).
  • @mentions in a Google Chat Space silently produce nothing — no agent response, no error to the user, just Google's eventual "App is not responding" timeout in the UI.
  • ADDED_TO_SPACE events do not appear to reach the agent either: removing and re-adding the bot to a Space produces zero observable activity in the gateway logs.

What Google's side sees

For the Workspace Add-on project, Cloud Logging shows Google attempting delivery and getting 400s back:

"deploymentFunction": "https://<redacted>/googlechat",
"deployment": "projects/chat/keys/<project-number>",
"error": {
  "code": 3,
  "message": "status code: 400, reason phrase: HTTP error response: HTTP/1.1 400 Bad Request\nResponse body: invalid payload"
}

Log type: type.googleapis.com/google.cloud.gsuiteaddons.logging.v1.GSuiteAddOnsLogEntry

For the standard Chat API project (add-on flag unticked), Cloud Logging shows zero error entries for Space @mentions even with "Log errors to Cloud Logging" enabled before re-adding the bot. The Chat API metrics page shows successful outbound calls (CreateMessage, ListSpaces, UpdateMessage) but no inbound errors. This is consistent with the hypothesis in this PR: Google delivers the payload, OpenClaw returns HTTP 200, OpenClaw silently classifies the message as a group and drops it during policy evaluation — so Google has nothing to log.

What OpenClaw's side sees

Running journalctl --user -u openclaw-gateway -f | grep -i googlechat and then @mentioning the bot in a Space produces zero googlechat-prefixed log lines — not just no group session creation, but no log activity at all from the plugin. Only googlechat:direct:* sessions appear, and only when sending DMs. This suggests the message is being dropped before any googlechat code path emits a log entry.

Other configurations ruled out (saves the next person time)

The following were tried during debugging and made no difference:

  • Switching audienceType between app-url and project-number (with corresponding Google Cloud Console "Authentication audience" change)
  • Setting appPrincipal to the service account's unique ID, then to the value Google reported in the "unexpected add-on principal" error
  • Switching webhook URL between Tailscale Funnel and a reverse-proxied public hostname
  • Removing/re-adding the bot to the Space multiple times
  • Renaming the app to force Google to re-register the webhook
  • Creating a completely fresh Google Cloud project from scratch with no add-on flag (per the issue's "tested with both" note)

Final config that produces the bug:

  • Pure Chat API app, add-on flag never ticked
  • audienceType: app-url, appPrincipal matching Google's signing principal
  • groupPolicy: allowlist with the target space ID in the list (also tested with the default — same result)
  • Visibility set to the workspace org
  • DMs verified working in the same session, with the same auth, against the same webhook URL

Why this lines up with the fix

This PR's claim is that with modern Google Chat API payloads (where space.type is absent and only space.spaceType / space.singleUserBotDm are present), the existing classifier (space.type ?? "").toUpperCase() !== "DM" resolves to true and routes the message into the group path, where it's silently dropped by policy evaluation. That is exactly the observed behaviour: HTTP 200 to Google, no group session created, no error anywhere except a missing reply.

Note: still reproduces on v2026.5.7. No googlechat-specific changes in the 2026.4.x or 2026.5.x release notes that would address this — the only Google Chat work in 2026.5.x was externalising the plugin to npm.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 High-priority user-facing bug, regression, or broken workflow. labels May 19, 2026
@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label May 19, 2026
@clawsweeper clawsweeper Bot added merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels May 19, 2026
@clawsweeper

clawsweeper Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.

Where did the egg go?
  • The egg game starts only after the PR passes the real-behavior proof check.
  • Before that, no creature or rarity is rolled. The treat waits for real proof.
  • This is still just collectible flavor: proof affects review readiness, not creature quality.

@marcelocompucorp

Copy link
Copy Markdown

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.
Where did the egg go?

* The egg game starts only after the PR passes the real-behavior proof check.

* Before that, no creature or rarity is rolled. The treat waits for real proof.

* This is still just collectible flavor: proof affects review readiness, not creature quality.

Hey, but I added a comment with all details: #58993 (comment)

@RomneyDa

Copy link
Copy Markdown
Member

Heads up: this PR needs to be updated against current main before the new required Dependency Guard check can pass.

@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jun 14, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 16, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the stale Marked as stale due to inactivity label Jun 17, 2026
@clawsweeper clawsweeper Bot removed the rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. label Jun 18, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 22, 2026
@clawsweeper clawsweeper Bot removed the merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. label Jun 22, 2026
@vincentkoc
vincentkoc force-pushed the fix/googlechat-spacetype-dm-detection-58514 branch 3 times, most recently from b7c13d5 to dac578e Compare June 22, 2026 05:00
@openclaw-barnacle openclaw-barnacle Bot removed the stale Marked as stale due to inactivity label Jun 22, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This assigned pull request has been automatically marked as stale after being open for 27 days.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jun 22, 2026
@vincentkoc
vincentkoc force-pushed the fix/googlechat-spacetype-dm-detection-58514 branch 3 times, most recently from 2fde296 to c4b1183 Compare June 22, 2026 07:13
Starhappysh and others added 3 commits June 22, 2026 15:37
The Google Chat API deprecated the `type` field on Space objects in
favor of `spaceType` ("DIRECT_MESSAGE" | "SPACE") and the boolean
`singleUserBotDm`. When the legacy `type` field is absent, the
existing check `spaceType !== "DM"" always evaluates to true, causing
all messages (including DMs) to be treated as group messages. Group
messages are then subject to group policy evaluation and may be
silently dropped if no group allowlist is configured.

The fix checks all three fields: legacy `type`, modern `spaceType`,
and `singleUserBotDm`, so both old and new API payload formats work.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vincentkoc
vincentkoc force-pushed the fix/googlechat-spacetype-dm-detection-58514 branch from c4b1183 to c90c7b7 Compare June 22, 2026 07:38
@openclaw-barnacle openclaw-barnacle Bot added channel: msteams Channel integration: msteams scripts Repository scripts extensions: qa-lab labels Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Guard

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • extensions/clickclack/npm-shrinkwrap.json
  • extensions/fireworks/npm-shrinkwrap.json
  • extensions/irc/npm-shrinkwrap.json
  • extensions/mattermost/npm-shrinkwrap.json
  • extensions/moonshot/npm-shrinkwrap.json
  • extensions/searxng/npm-shrinkwrap.json
  • extensions/signal/npm-shrinkwrap.json
  • extensions/sms/npm-shrinkwrap.json
  • extensions/tavily/npm-shrinkwrap.json
  • extensions/tencent/npm-shrinkwrap.json
  • extensions/venice/npm-shrinkwrap.json
  • extensions/vercel-ai-gateway/npm-shrinkwrap.json
  • extensions/zai/npm-shrinkwrap.json

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile, shrinkwrap, or workspace dependency policy changes are present.
  • Treat package-lock.json and npm-shrinkwrap.json diffs as security-review surfaces.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Dependency graph changes are blocked

OpenClaw does not accept dependency graph changes through PRs unless a repository admin or security explicitly authorizes the current head SHA. Dependency updates are generated internally by maintainers so external PRs cannot change the resolved graph.

Detected dependency graph changes:

  • extensions/clickclack/npm-shrinkwrap.json changed.
  • extensions/fireworks/npm-shrinkwrap.json changed.
  • extensions/irc/npm-shrinkwrap.json changed.
  • extensions/mattermost/npm-shrinkwrap.json changed.
  • extensions/moonshot/npm-shrinkwrap.json changed.
  • extensions/searxng/npm-shrinkwrap.json changed.
  • extensions/signal/npm-shrinkwrap.json changed.
  • extensions/sms/npm-shrinkwrap.json changed.
  • extensions/tavily/npm-shrinkwrap.json changed.
  • extensions/tencent/npm-shrinkwrap.json changed.
  • extensions/venice/npm-shrinkwrap.json changed.
  • extensions/vercel-ai-gateway/npm-shrinkwrap.json changed.
  • extensions/zai/npm-shrinkwrap.json changed.

To remove lockfile changes, restore them from the target branch:

git fetch origin
git checkout 'origin/main' -- 'extensions/clickclack/npm-shrinkwrap.json' 'extensions/fireworks/npm-shrinkwrap.json' 'extensions/irc/npm-shrinkwrap.json' 'extensions/mattermost/npm-shrinkwrap.json' 'extensions/moonshot/npm-shrinkwrap.json' 'extensions/searxng/npm-shrinkwrap.json' 'extensions/signal/npm-shrinkwrap.json' 'extensions/sms/npm-shrinkwrap.json' 'extensions/tavily/npm-shrinkwrap.json' 'extensions/tencent/npm-shrinkwrap.json' 'extensions/venice/npm-shrinkwrap.json' 'extensions/vercel-ai-gateway/npm-shrinkwrap.json' 'extensions/zai/npm-shrinkwrap.json'
git commit -m 'chore: remove dependency lockfile change'
git push

If this PR intentionally needs a dependency graph change, ask a repository admin or member of @openclaw/openclaw-secops to comment:

/allow-dependencies-change

The action will approve the current head SHA (467d289c32931cebadf4047f3332a347e0b681fd) when it reruns. A later push requires a fresh approval.

@vincentkoc

Copy link
Copy Markdown
Member

Merged via squash.

Thanks @Starhappysh!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling channel: googlechat Channel integration: googlechat channel: irc channel: mattermost Channel integration: mattermost channel: msteams Channel integration: msteams channel: signal Channel integration: signal channel: sms Channel integration: sms channel: whatsapp-web Channel integration: whatsapp-web cli CLI command changes commands Command implementations dependencies-changed PR changes dependency-related files docs Improvements or additions to documentation extensions: llama-cpp extensions: moonshot extensions: qa-lab extensions: tavily extensions: tencent extensions: venice extensions: vercel-ai-gateway extensions: zai merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. P1 High-priority user-facing bug, regression, or broken workflow. proof: override Maintainer override for the external PR real behavior proof gate. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: XL stale Marked as stale due to inactivity status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. triage: blank-template Candidate: PR template appears mostly untouched.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants