Skip to content

Doctor: expose plugin registry findings#96169

Merged
giodl73-repo merged 2 commits into
openclaw:mainfrom
giodl73-repo:doctor-plugin-registry-structured-repairs
Jun 27, 2026
Merged

Doctor: expose plugin registry findings#96169
giodl73-repo merged 2 commits into
openclaw:mainfrom
giodl73-repo:doctor-plugin-registry-structured-repairs

Conversation

@giodl73-repo

@giodl73-repo giodl73-repo commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add structured core/doctor/plugin-registry findings for missing/stale registry state, stale managed npm bundled plugin shadows, stale local bundled install records, and managed npm OpenClaw peer-link issues
  • expose dry-run repair effects for those findings while keeping real mutation in the existing plugin registry doctor repair path
  • register the plugin registry contribution in doctor health check ordering
  • add an exhaustive fallback for plugin-registry finding/effect mappers so CI lint can prove they always return or throw

Contract

  • No public SDK, plugin, or config contract changes.
  • Default doctor --lint skips this check because it is defaultEnabled: false.
  • Explicit --only core/doctor/plugin-registry or --all can surface the finding.
  • This does not include configured plugin install backfill; that remains a separate slice.

Validation

  • node scripts/run-vitest.mjs run src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.test.ts --reporter=dot (64 passed)
  • pnpm exec oxfmt --check src/commands/doctor-plugin-registry.ts src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts
  • pnpm exec oxlint src/commands/doctor-plugin-registry.ts src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts
  • pnpm tsgo:core
  • node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo
  • node scripts/plugin-sdk-surface-report.mjs --check
  • git diff --check origin/main...HEAD
  • Maintainer prepare local gate: pnpm build passed; pnpm check failed only on the npm shrinkwrap guard, and pnpm deps:shrinkwrap:check reproduces the same stale npm-shrinkwrap.json failure on latest origin/main, outside this PR's touched surface.

Source CLI Proof

  • Head: cf4399955e2ddc8a38f5bb0f34bed4c6afc54749
  • Setup: isolated temp OPENCLAW_STATE_DIR and empty config {}.
  • Command: node scripts/run-node.mjs doctor --lint --json --only core/doctor/plugin-registry
  • Result: exit code 1, ok: false, checksRun: 1, checksSkipped: 28.
  • Redacted JSON finding:
{
  "checkId": "core/doctor/plugin-registry",
  "severity": "warning",
  "message": "Persisted plugin registry is missing or stale.",
  "path": "<temp-state>/state/openclaw.sqlite",
  "fixHint": "Run `openclaw doctor --fix` to rebuild the plugin registry from enabled plugins."
}

No dry-run preview consumer is included in this slice; real mutation remains in the existing plugin registry doctor repair path.

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

Please review PR #96169 at head 8d4e214760401b0268b18e7867f6250dc156f516. Focus: structured Doctor plugin registry findings/effects only; real registry mutation remains in the existing legacy plugin registry repair path. No public SDK/plugin/config contract changes intended.

@openclaw-barnacle openclaw-barnacle Bot added the commands Command implementations label Jun 23, 2026
@clawsweeper

clawsweeper Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper

clawsweeper Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 27, 2026, 12:05 PM ET / 16:05 UTC.

Summary
The PR adds a default-disabled structured Doctor core/doctor/plugin-registry health check that maps existing plugin-registry drift into JSON findings and dry-run effects while leaving legacy repair mutation in place.

PR surface: Source +196, Tests +152. Total +348 across 4 files.

Reproducibility: not applicable. this is a new structured Doctor diagnostic surface rather than a reported current-main bug. The PR body provides copied live CLI output for the explicit --only core/doctor/plugin-registry path at the current head.

Review metrics: 1 noteworthy metric.

  • Structured Doctor Health Checks: 1 added, 0 default-enabled. The new stable check ID expands explicit Doctor lint selection and JSON output without entering default lint runs.

Stored data model
Persistent data-model change detected: migration/backfill/repair: src/commands/doctor-plugin-registry.test.ts, migration/backfill/repair: src/commands/doctor-plugin-registry.ts, migration/backfill/repair: src/flows/doctor-health-contributions.test.ts, migration/backfill/repair: src/flows/doctor-health-contributions.ts, unknown-data-model-change: src/commands/doctor-plugin-registry.test.ts, unknown-data-model-change: src/commands/doctor-plugin-registry.ts. Confirm migration or upgrade compatibility proof before merge.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
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:

  • none.

Risk before merge

  • [P1] Explicit doctor --lint --all or --only core/doctor/plugin-registry will now emit warning findings and a nonzero lint exit for registry drift; default lint remains unchanged, but this opt-in diagnostic behavior is still a compatibility decision.
  • [P1] The PR is draft and carries the protected maintainer label, so automated cleanup or merge should wait for explicit maintainer acceptance.

Maintainer options:

  1. Accept The Opt-In Diagnostic Surface (recommended)
    Maintainers can accept that explicit Doctor lint selection now reports plugin registry drift as structured warnings while default lint remains unchanged.
  2. Pause Until Doctor Lint Policy Is Settled
    If the new --all or --only warning/exit behavior is not desired yet, keep the draft paused or close it until the diagnostic policy is decided.

Next step before merge

  • [P2] Manual review is needed because this draft PR has a protected maintainer label and an opt-in Doctor lint behavior change rather than a narrow automated repair.

Security
Cleared: No concrete security or supply-chain issue was found; the diff changes Doctor TypeScript/tests only and does not touch dependencies, workflows, permissions, or secrets.

Review details

Best possible solution:

Land the default-disabled structured plugin-registry check after maintainers accept the --all and --only warning/exit behavior, keeping the legacy Doctor path as the mutation owner.

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

Not applicable; this is a new structured Doctor diagnostic surface rather than a reported current-main bug. The PR body provides copied live CLI output for the explicit --only core/doctor/plugin-registry path at the current head.

Is this the best way to solve the issue?

Yes, subject to maintainer acceptance: the PR reuses existing plugin-registry detection and repair ownership, keeps the check default-disabled, and leaves real mutation in the legacy Doctor path.

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: This is a bounded Doctor CLI diagnostic improvement with limited blast radius but real explicit lint/JSON behavior impact.
  • merge-risk: 🚨 compatibility: Merging changes explicit Doctor lint output and exit behavior for users who run --all or select core/doctor/plugin-registry directly.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body includes redacted live CLI output for doctor --lint --json --only core/doctor/plugin-registry at head 9c0d0fbdd2bb5d86af099c48fc3dae96d92c98d8, showing the expected structured warning and exit code 1.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes redacted live CLI output for doctor --lint --json --only core/doctor/plugin-registry at head 9c0d0fbdd2bb5d86af099c48fc3dae96d92c98d8, showing the expected structured warning and exit code 1.
Evidence reviewed

PR surface:

Source +196, Tests +152. Total +348 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 2 196 0 +196
Tests 2 153 1 +152
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 349 1 +348

What I checked:

  • Repository policy read: Root AGENTS.md was present, read fully, and its PR review guidance affected this review: Doctor/plugin registry behavior is compatibility-sensitive and protected maintainer-labeled PRs should remain open for maintainer handling. (AGENTS.md:35, f857e8d66eb3)
  • Current main lacks structured plugin-registry check: On current main, the doctor:plugin-registry contribution only delegates to runPluginRegistryHealth and has no healthChecks registration, so the PR is not obsolete on main. (src/flows/doctor-health-contributions.ts:1266, f857e8d66eb3)
  • Latest release lacks structured plugin-registry check: The latest release tag v2026.6.10 shows the same legacy-only plugin-registry contribution shape, so the requested structured lint surface is not already shipped. (src/flows/doctor-health-contributions.ts:1262, aa69b12d0086)
  • PR registers opt-in check: PR head adds core/doctor/plugin-registry with defaultEnabled: false, which keeps default doctor --lint unchanged while allowing explicit --all or --only selection. (src/flows/doctor-health-contributions.ts:1269, 9c0d0fbdd2bb)
  • PR maps existing registry issues: PR head detects missing or stale registry state, stale managed npm bundled plugin shadows, stale local bundled install records, and managed npm peer-link issues, then maps them to structured findings/effects. (src/commands/doctor-plugin-registry.ts:433, 9c0d0fbdd2bb)
  • Default-disabled lint contract checked: The lint runner skips default-disabled checks unless includeAllChecks is true or an explicit onlyIds selection includes the check, matching the PR's compatibility claim. (src/flows/doctor-lint-flow.ts:38, f857e8d66eb3)

Likely related people:

  • giodl73-repo: Recent merged main history added the ordered Doctor contribution pattern and several adjacent structured Doctor health-check slices that this PR extends. (role: recent structured Doctor contributor; confidence: high; commits: cb4244fe15e3, 82a6a57330cd, c5f10b5f7c00; files: src/flows/doctor-health-contributions.ts, src/flows/doctor-lint-flow.ts)
  • steipete: History for the plugin registry/doctor area includes documentation, isolated npm install behavior, and stale managed plugin repair work by this contributor. (role: plugin registry repair contributor; confidence: medium; commits: 9d6e8b872ac3, ea682182d05a, 10caa76473df; files: src/commands/doctor-plugin-registry.ts, src/plugins/plugin-registry-snapshot.ts)
  • vincentkoc: History shows prior plugin registry migration, disable-flag handling, and registry repair lint work in the same Doctor/plugin-registry path. (role: plugin registry migration contributor; confidence: medium; commits: 793b58b3f11b, 958146bbac72, 1d49b8cdaa4a; files: src/commands/doctor-plugin-registry.ts, src/commands/doctor/shared/plugin-registry-migration.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.

@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. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current head 8d4e214760401b0268b18e7867f6250dc156f516 has the PR body updated with redacted source CLI proof for core/doctor/plugin-registry using isolated temp state/config. No code changes; real mutation remains in the existing plugin registry doctor repair path.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. 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 24, 2026
@giodl73-repo
giodl73-repo force-pushed the doctor-plugin-registry-structured-repairs branch from 8d4e214 to ffacddb Compare June 26, 2026 20:18
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current head ffacddbe78ef89f6c3d9ed704f32a3037f0aef62 rebases #96169 onto current main and narrows the structured plugin-registry lint check to opt-in (defaultEnabled: false). Default doctor --lint remains unchanged; explicit --only core/doctor/plugin-registry and --all still include the check. No SDK/plugin/config contract change.

Validation:

  • node scripts/run-vitest.mjs run src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.test.ts --reporter=verbose (62 passed)
  • pnpm exec oxfmt --check on changed files
  • direct oxlint on changed files
  • pnpm tsgo:core
  • node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo
  • node scripts/plugin-sdk-surface-report.mjs --check
  • git diff --check origin/main...HEAD

Source CLI proof refreshed for doctor --lint --json --only core/doctor/plugin-registry: exit code 1, ok:false, checksRun:1, one expected warning.

@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@galiniliev galiniliev 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.

This PR adds an opt-in structured doctor lint check for plugin registry state while leaving the existing doctor plugin-registry repair path as the only real mutation owner. That matters because doctor --lint --all and explicit --only core/doctor/plugin-registry can now surface stale registry/package state as structured JSON without changing default lint runs.

LOC: +349/-1 (4 files)

By: Gio Della-Libera (@giodl73-repo, acct 2025-09-30) | OpenClaw: 187 PRs, 14 issues, 138 commits/12mo | GitHub: 6437 commits, 221 PRs, 29 issues, 17 reviews/12mo

Findings: No blocking findings.

Affected surface: src/commands/doctor-plugin-registry.ts and src/flows/doctor-health-contributions.ts, plus focused tests for the structured issue mapping and contribution registration.

Behavior being changed: core/doctor/plugin-registry becomes a default-disabled health check. Default doctor --lint still skips it; --all or --only core/doctor/plugin-registry can now report warning findings and nonzero lint status for missing/stale registry state, stale managed npm bundled plugin shadows, stale local bundled install records, and broken managed npm OpenClaw peer links.

Best-fix verdict: best, subject to maintainer acceptance of the opt-in diagnostic surface. The PR reuses the existing plugin registry detection/repair helpers and keeps maybeRepairPluginRegistryState as the ordered legacy mutation owner, which is the right boundary for this slice.

Alternatives considered:

  • Move real repair into the structured health check now: rejected because the existing ordered doctor contribution already owns registry migration, stale shadow cleanup, peer relinking, and registry refresh sequencing before final config writes.
  • Make the check default-enabled: rejected because a missing registry can be expected in fresh/isolated state and would change default doctor --lint behavior.
  • Keep only legacy note output: rejected because that would not provide the selectable structured JSON lint surface this PR is adding.

Code read: src/commands/doctor-plugin-registry.ts, src/commands/doctor-plugin-registry.test.ts, src/flows/doctor-health-contributions.ts, src/flows/doctor-health-contributions.test.ts, src/flows/doctor-lint-flow.ts, src/flows/doctor-repair-flow.ts, src/flows/health-check-adapter.ts, src/flows/health-checks.ts, and src/commands/doctor-lint.ts.

Validation run:

  • node scripts/run-vitest.mjs run src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.test.ts --reporter=verbose (62 passed)
  • pnpm exec oxfmt --check src/commands/doctor-plugin-registry.ts src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts
  • git diff --check origin/main...HEAD
  • CLI smoke: isolated OPENCLAW_STATE_DIR + empty config, node scripts/run-node.mjs doctor --lint --json --only core/doctor/plugin-registry exited 1 with the expected Persisted plugin registry is missing or stale. warning.

Provenance: N/A; this is a structured diagnostic feature slice, not a regression fix.

Remaining uncertainty: I did not run broad CI/Testbox. The PR is still draft, so merge should still wait for explicit maintainer acceptance of the opt-in --all / --only diagnostic behavior.

@galiniliev galiniliev assigned galiniliev and unassigned steipete Jun 26, 2026
@clawsweeper clawsweeper Bot added status: 🔁 re-review loop A fresh ClawSweeper review was explicitly requested after the latest review. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 27, 2026
@giodl73-repo
giodl73-repo force-pushed the doctor-plugin-registry-structured-repairs branch from ffacddb to 9c0d0fb Compare June 27, 2026 15:53
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current head \9c0d0fbdd2bb5d86af099c48fc3dae96d92c98d8\ rebases #96169 onto current main after #95979 merged. The structured plugin-registry lint check remains opt-in (\defaultEnabled: false\): default \doctor --lint\ is unchanged, while explicit \--only core/doctor/plugin-registry\ and \--all\ include it. No SDK/plugin/config contract change.

Validation refreshed:

  • \
    ode scripts/run-vitest.mjs run src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.test.ts --reporter=verbose\ (64 passed)
  • \pnpm exec oxfmt --check ...\n- \\pnpm exec oxlint ...\\n- \pnpm tsgo:core\n- \\ ode scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo\\n- \
    ode scripts/plugin-sdk-surface-report.mjs --check\n- \\git diff --check origin/main...HEAD\\n
    Source CLI proof refreshed for \doctor --lint --json --only core/doctor/plugin-registry\: exit code 1, \ok:false\, \checksRun:1\, \checksSkipped:28\, one expected warning.

@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper clawsweeper Bot removed the status: 🔁 re-review loop A fresh ClawSweeper review was explicitly requested after the latest review. label Jun 27, 2026
@clawsweeper clawsweeper Bot added the status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. label Jun 27, 2026
@giodl73-repo
giodl73-repo marked this pull request as ready for review June 27, 2026 16:15
@giodl73-repo
giodl73-repo force-pushed the doctor-plugin-registry-structured-repairs branch from 9c0d0fb to cf43999 Compare June 27, 2026 16:48
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current head cf4399955e2ddc8a38f5bb0f34bed4c6afc54749 rebases #96169 onto current main and fixes the CI check-lint typescript(consistent-return) finding by adding an exhaustive fallback for the plugin-registry finding/effect mappers.

Contract remains unchanged: core/doctor/plugin-registry is still opt-in via defaultEnabled: false; default doctor --lint remains unchanged, while --all and --only core/doctor/plugin-registry include it. No SDK/plugin/config contract change.

Focused validation on the new head:

  • pnpm exec oxlint src/commands/doctor-plugin-registry.ts src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts
  • pnpm exec oxfmt --check src/commands/doctor-plugin-registry.ts src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts
  • node scripts/run-vitest.mjs run src/commands/doctor-plugin-registry.test.ts src/flows/doctor-health-contributions.test.ts --reporter=dot (64 passed)
  • git diff --check origin/main...HEAD
  • source CLI proof for doctor --lint --json --only core/doctor/plugin-registry: exit code 1, ok:false, checksRun:1, checksSkipped:28, one expected warning.

Maintainer prepare local gate note: pnpm build passed; pnpm check failed only on the npm shrinkwrap guard, and pnpm deps:shrinkwrap:check reproduces the same stale npm-shrinkwrap.json failure on latest origin/main, outside this PR's touched surface.

@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@giodl73-repo
giodl73-repo merged commit 1bdde66 into openclaw:main Jun 27, 2026
99 checks passed
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

Merged via squash.

Thanks @giodl73-repo!

@giodl73-repo
giodl73-repo deleted the doctor-plugin-registry-structured-repairs branch June 27, 2026 17:00
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 28, 2026
Merged via squash.

Prepared head SHA: cf43999
Co-authored-by: giodl73-repo <[email protected]>
Co-authored-by: giodl73-repo <[email protected]>
Reviewed-by: @giodl73-repo
QiuYuang pushed a commit to QiuYuang/openclaw that referenced this pull request Jul 1, 2026
Merged via squash.

Prepared head SHA: cf43999
Co-authored-by: giodl73-repo <[email protected]>
Co-authored-by: giodl73-repo <[email protected]>
Reviewed-by: @giodl73-repo
chenyangjun-xy pushed a commit to chenyangjun-xy/openclaw that referenced this pull request Jul 1, 2026
Merged via squash.

Prepared head SHA: cf43999
Co-authored-by: giodl73-repo <[email protected]>
Co-authored-by: giodl73-repo <[email protected]>
Reviewed-by: @giodl73-repo
chenyangjun-xy pushed a commit to chenyangjun-xy/openclaw that referenced this pull request Jul 3, 2026
Merged via squash.

Prepared head SHA: cf43999
Co-authored-by: giodl73-repo <[email protected]>
Co-authored-by: giodl73-repo <[email protected]>
Reviewed-by: @giodl73-repo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands Command implementations maintainer Maintainer-authored PR merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants