Skip to content

feat: dogfood reusable ClawHub package publish#91574

Merged
Patrick-Erichsen merged 1 commit into
mainfrom
pe/dogfood-clawhub-package-publish
Jun 9, 2026
Merged

feat: dogfood reusable ClawHub package publish#91574
Patrick-Erichsen merged 1 commit into
mainfrom
pe/dogfood-clawhub-package-publish

Conversation

@Patrick-Erichsen

Copy link
Copy Markdown
Contributor

Summary

  • Pack OpenClaw ClawHub plugin releases as prebuilt ClawPack artifacts before publish.
  • Delegate the final publish/validation step to ClawHub's reusable package-publish.yml workflow at merged ClawHub commit c9bb13023598dcc547fdf4a93b9d42512b8c8854.
  • Preserve the clawhub-plugin-release environment approval as a separate gate before the reusable workflow runs.
  • Add artifact-safe release-plan names and --pack support to the OpenClaw publish helper.

Tests

  • ./node_modules/.bin/vitest run --config test/vitest/vitest.tooling.config.ts test/plugin-clawhub-release.test.ts test/scripts/package-acceptance-workflow.test.ts (passed before final pin update from PR SHA to merged ClawHub SHA)
  • bash -n scripts/plugin-clawhub-publish.sh && git diff --check
  • rg assertion verified the final workflow/test pin uses c9bb13023598dcc547fdf4a93b9d42512b8c8854 and no stale 0a74b345 / 98dbb6e6 / facf20ce pins remain

Note: a final rerun of the Vitest command after the SHA-only pin update was blocked locally by Node startup hangs; the final code delta after the passing run was only the ClawHub commit SHA replacement, covered by the shell assertion above.

@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts size: M maintainer Maintainer-authored PR labels Jun 9, 2026
@clawsweeper

clawsweeper Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed June 8, 2026, 11:10 PM ET / 03:10 UTC.

Summary
The PR changes the Plugin ClawHub Release workflow to prepack ClawPack artifacts, upload them, delegate publishing to a pinned ClawHub reusable workflow, and adds --pack plus artifact-name support and workflow assertions.

PR surface: Tests +84, Config -12, Other +25. Total +97 across 5 files.

Reproducibility: yes. for the review finding: source inspection shows the PR uses package_artifact_name, the pinned ClawHub workflow rejects source_path with prebuilt artifacts, and the CLI defaults tarball publish source paths to .. A live workflow dispatch has not been provided.

Review metrics: 2 noteworthy metrics.

  • Reusable publish delegation: 1 reusable workflow call added. The final ClawHub publish now runs in openclaw/clawhub, so permissions, secrets, artifacts, and provenance depend on the pinned external workflow contract.
  • Pack helper surface: 1 script mode added, 1 required env for that mode. The --pack handoff now determines which ClawPack artifact is uploaded before the release approval and reusable publish steps.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🧂 unranked krab
Result: blocked until real behavior proof is added.

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

Rank-up moves:

  • [P1] Fix the prebuilt artifact publish contract so OpenClaw passes and ClawHub records extensions/<plugin> as the source path.
  • [P1] Add or update focused workflow assertions that fail if plugin source-path provenance is omitted.
  • [P1] Add redacted real workflow dispatch or reusable publish output after the fix.

Proof guidance:

  • [P1] Needs real behavior proof before merge: Missing: the PR body lists tests/static checks only, so the contributor should add redacted workflow-dispatch or ClawHub reusable publish output, update the PR body to trigger re-review, and redact secrets, IPs, private endpoints, phone numbers, and other private details.

Risk before merge

  • [P1] Merging as-is can publish OpenClaw plugin package provenance with source.path set to . instead of extensions/<plugin>, weakening release auditability for official ClawHub packages.
  • [P1] The PR moves final publishing into a pinned reusable workflow that receives CLAWHUB_TOKEN and id-token: write, but no redacted workflow dispatch or reusable publish output proves the end-to-end path after the patch.
  • [P1] The PR carries the protected maintainer label and changes release publishing gates, so release-owner review is needed even after the concrete provenance bug is fixed.

Maintainer options:

  1. Fix artifact provenance before merge (recommended)
    Update or repin the ClawHub reusable workflow so prebuilt artifact publishes can carry a provenance source path, pass matrix.plugin.packageDir, and prove it with focused tests plus a redacted dispatch log.
  2. Accept root-level provenance explicitly
    Release owners could intentionally accept repo-root package provenance for OpenClaw plugin artifacts, but that should be documented as a deliberate auditability tradeoff before landing.
  3. Pause until ClawHub supports the contract
    If ClawHub’s reusable workflow is not ready to support monorepo artifact provenance, keep this PR paused or close it in favor of a narrower follow-up after the upstream contract exists.

Next step before merge

  • [P1] This needs release-owner handling because the fix depends on the ClawHub reusable workflow contract and the PR has a protected maintainer label.

Security
Needs attention: The diff changes official ClawHub package publishing and currently loses plugin source-path provenance in the artifact publish path.

Review findings

  • [P1] Preserve source path when publishing prebuilt artifacts — .github/workflows/plugin-clawhub-release.yml:452
Review details

Best possible solution:

Keep the reusable workflow direction only after the pinned ClawHub workflow can carry monorepo source-path provenance for prebuilt artifacts, OpenClaw passes each plugin packageDir through, focused tests cover it, and a redacted real workflow run proves the path.

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

Yes for the review finding: source inspection shows the PR uses package_artifact_name, the pinned ClawHub workflow rejects source_path with prebuilt artifacts, and the CLI defaults tarball publish source paths to .. A live workflow dispatch has not been provided.

Is this the best way to solve the issue?

No, not yet. Delegating publish to ClawHub is a plausible owner-boundary direction, but the best fix must preserve plugin subdirectory provenance and prove the real publish path before merge.

Full review comments:

  • [P1] Preserve source path when publishing prebuilt artifacts — .github/workflows/plugin-clawhub-release.yml:452
    This switches the caller to package_artifact_name, but the pinned ClawHub workflow rejects source_path when a prebuilt artifact is used and then invokes the CLI without --source-path. The CLI defaults tarball publish source metadata to ., so OpenClaw plugin releases would point at the repo root instead of extensions/<plugin>, losing the monorepo provenance the current direct publish path preserves.
    Confidence: 0.91

Overall correctness: patch is incorrect
Overall confidence: 0.9

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against c9050c982d95.

Label changes

Label justifications:

  • P2: This is a normal-priority release automation improvement with a concrete pre-merge blocker, not an active user-facing outage.
  • merge-risk: 🚨 automation: The PR rewires the Plugin ClawHub Release workflow around artifact upload and a reusable workflow call, so release automation behavior can change even with unit tests green.
  • merge-risk: 🚨 security-boundary: The PR changes official package publishing provenance and passes publish credentials/OIDC through a pinned reusable workflow, which is a supply-chain boundary.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🧂 unranked krab.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Missing: the PR body lists tests/static checks only, so the contributor should add redacted workflow-dispatch or ClawHub reusable publish output, update the PR body to trigger re-review, and redact secrets, IPs, private endpoints, phone numbers, and other private details.
Evidence reviewed

PR surface:

Tests +84, Config -12, Other +25. Total +97 across 5 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 2 90 6 +84
Docs 0 0 0 0
Config 1 61 73 -12
Generated 0 0 0 0
Other 2 29 4 +25
Total 5 180 83 +97

Security concerns:

  • [medium] Official package provenance can point at repo root — .github/workflows/plugin-clawhub-release.yml:452
    The reusable artifact publish path cannot carry source_path, so official OpenClaw plugin releases would be recorded against the repository root instead of the package directory, weakening supply-chain auditability.
    Confidence: 0.9

What I checked:

  • Repository policy read: Root AGENTS.md and the scoped scripts/test guides were read; their release automation, security-boundary, proof, and script wrapper rules are relevant to this PR. (AGENTS.md:1, c9050c982d95)
  • Current main behavior: Current main still publishes via scripts/plugin-clawhub-publish.sh --publish, and that helper sends --source-path "${package_dir}", so current direct publishing preserves monorepo plugin source paths. (scripts/plugin-clawhub-publish.sh:122, c9050c982d95)
  • PR caller behavior: The PR head calls ClawHub's reusable workflow in prebuilt artifact mode with package_artifact_name, source_repo, source_commit, and source_ref, but it does not pass a package source path for matrix.plugin.packageDir. (.github/workflows/plugin-clawhub-release.yml:448, 76d36d543392)
  • ClawHub reusable workflow contract: The pinned ClawHub workflow defines source_path, but explicitly rejects source_path when package_artifact_name resolves to a prebuilt artifact; it only appends --source-path to the CLI command when that input is set. (openclaw/clawhub/.github/workflows/package-publish.yml:384, c9bb13023598)
  • ClawHub CLI source provenance fallback: For tarball publishes with sourceRepo and sourceCommit but no sourcePath, ClawHub's CLI builds publish source metadata with path: rawPath || ".", which would point OpenClaw plugin releases at the repository root. (openclaw/clawhub/packages/clawhub/src/cli/commands/packages.ts:2227, c9bb13023598)
  • Test coverage gap: The PR updates workflow string assertions for the reusable workflow and artifact name, but the assertions do not prove source-path provenance is preserved through the artifact publish path. (test/scripts/package-acceptance-workflow.test.ts:1567, 76d36d543392)

Likely related people:

  • vincentkoc: Current main blame and file history for the OpenClaw ClawHub release workflow and helper point to recent Vincent Koc commits that own the existing release path being changed. (role: recent OpenClaw release workflow contributor; confidence: high; commits: 5f6ee9f913c7, 3ed8d5f2c39b; files: .github/workflows/plugin-clawhub-release.yml, scripts/plugin-clawhub-publish.sh, scripts/lib/plugin-clawhub-release.ts)
  • Patrick-Erichsen: The pinned ClawHub commit adding prebuilt package publish artifacts and recent package publish command history are authored by Patrick-Erichsen, so the cross-repo workflow contract issue likely routes through that area. (role: ClawHub reusable workflow and package publish contributor; confidence: high; commits: c9bb13023598, be70ae5e9f9c; files: openclaw/clawhub/.github/workflows/package-publish.yml, openclaw/clawhub/packages/clawhub/src/cli/commands/packages.ts)
  • steipete: ClawHub workflow history shows Peter Steinberger authored the earlier monorepo package publish support, which is the invariant this PR needs to preserve for OpenClaw plugin packages. (role: adjacent ClawHub monorepo provenance contributor; confidence: medium; commits: 768a50149eee; files: openclaw/clawhub/.github/workflows/package-publish.yml)
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: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. labels Jun 9, 2026
@Patrick-Erichsen Patrick-Erichsen force-pushed the pe/dogfood-clawhub-package-publish branch from 76d36d5 to 57abb23 Compare June 9, 2026 03:13
@Patrick-Erichsen Patrick-Erichsen merged commit e8cf6df into main Jun 9, 2026
146 checks passed
@Patrick-Erichsen Patrick-Erichsen deleted the pe/dogfood-clawhub-package-publish branch June 9, 2026 03:19
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Jun 12, 2026
…26.6.6) (#1040)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/openclaw/openclaw](https://openclaw.ai) ([source](https://github.com/openclaw/openclaw)) | patch | `2026.6.5` → `2026.6.6` |

---

### Release Notes

<details>
<summary>openclaw/openclaw (ghcr.io/openclaw/openclaw)</summary>

### [`v2026.6.6`](https://github.com/openclaw/openclaw/blob/HEAD/CHANGELOG.md#202666)

[Compare Source](openclaw/openclaw@v2026.6.5...v2026.6.6)

##### Highlights

- Security boundaries are substantially tighter across transcripts, sandbox binds, host environment inheritance, MCP stdio, Codex HTTP access, native search policy, elevated sender checks, deleted-agent ACP bypasses, loopback tools, Discord moderation, and Teams group actions; exec approvals now fail closed on timeout. ([#&#8203;91529](openclaw/openclaw#91529), [#&#8203;91618](openclaw/openclaw#91618), [#&#8203;91615](openclaw/openclaw#91615), [#&#8203;91619](openclaw/openclaw#91619), [#&#8203;91741](openclaw/openclaw#91741), [#&#8203;91745](openclaw/openclaw#91745), [#&#8203;91746](openclaw/openclaw#91746), [#&#8203;91748](openclaw/openclaw#91748), [#&#8203;91749](openclaw/openclaw#91749), [#&#8203;91750](openclaw/openclaw#91750), [#&#8203;91751](openclaw/openclaw#91751), [#&#8203;91752](openclaw/openclaw#91752), [#&#8203;91763](openclaw/openclaw#91763), [#&#8203;89938](openclaw/openclaw#89938)) Thanks [@&#8203;joshavant](https://github.com/joshavant), [@&#8203;pgondhi987](https://github.com/pgondhi987), [@&#8203;mmaps](https://github.com/mmaps), [@&#8203;eleqtrizit](https://github.com/eleqtrizit), [@&#8203;shakkernerd](https://github.com/shakkernerd), and [@&#8203;drobison00](https://github.com/drobison00).
- Telegram delivery is safer and more coherent: account-scoped topics route to the right agent, streamed text survives tool calls, `/compact` works on generic ingress, callback handling uses concrete APIs, draft chunking is shared, durable dispatch dedupe moved into the SDK, and unauthorized DM text stays out of cache and prompt context. ([#&#8203;91189](openclaw/openclaw#91189), [#&#8203;88682](openclaw/openclaw#88682), [#&#8203;89588](openclaw/openclaw#89588), [#&#8203;90212](openclaw/openclaw#90212), [#&#8203;91876](openclaw/openclaw#91876), [#&#8203;91874](openclaw/openclaw#91874), [#&#8203;91904](openclaw/openclaw#91904), [#&#8203;91478](openclaw/openclaw#91478), [#&#8203;91915](openclaw/openclaw#91915)) Thanks [@&#8203;codysai001](https://github.com/codysai001), [@&#8203;alexzhu0](https://github.com/alexzhu0), [@&#8203;joelnishanth](https://github.com/joelnishanth), [@&#8203;snowzlm](https://github.com/snowzlm), [@&#8203;obviyus](https://github.com/obviyus), and [@&#8203;sallyom](https://github.com/sallyom).
- iMessage recovery and delivery now cover always-on inbound restart, durable echo markers, block streaming, idle approval discovery, hardened outbound transport, and actionable inbound startup diagnostics. ([#&#8203;91335](openclaw/openclaw#91335), [#&#8203;91449](openclaw/openclaw#91449), [#&#8203;88969](openclaw/openclaw#88969), [#&#8203;88530](openclaw/openclaw#88530), [#&#8203;91783](openclaw/openclaw#91783), [#&#8203;91785](openclaw/openclaw#91785)) Thanks [@&#8203;omarshahine](https://github.com/omarshahine), [@&#8203;jmissig](https://github.com/jmissig), and [@&#8203;colmbrogan](https://github.com/colmbrogan).
- Browser and MCP connectivity gained existing-session CDP support, discovered WebSocket validation, default-profile `cdpUrl` handling, safer browser-output boundaries, Streamable HTTP loopback transport, corrected OAuth/SSE authorization handling, and broader schema compatibility. ([#&#8203;91422](openclaw/openclaw#91422), [#&#8203;89851](openclaw/openclaw#89851), [#&#8203;91736](openclaw/openclaw#91736), [#&#8203;91747](openclaw/openclaw#91747), [#&#8203;91451](openclaw/openclaw#91451), [#&#8203;80143](openclaw/openclaw#80143)) Thanks [@&#8203;pgondhi987](https://github.com/pgondhi987), [@&#8203;anagnorisis2peripeteia](https://github.com/anagnorisis2peripeteia), [@&#8203;lifuyue](https://github.com/lifuyue), [@&#8203;eleqtrizit](https://github.com/eleqtrizit), [@&#8203;LiuwqGit](https://github.com/LiuwqGit), and [@&#8203;HemantSudarshan](https://github.com/HemantSudarshan).
- Control UI startup and first-reply latency are lower through cached model metadata, removal of the startup catalog wait, lazy slash-command loading, and first-event tracing with slow-reply diagnostics. ([#&#8203;91531](openclaw/openclaw#91531), [#&#8203;91538](openclaw/openclaw#91538), [#&#8203;91568](openclaw/openclaw#91568), [#&#8203;91583](openclaw/openclaw#91583), [#&#8203;91598](openclaw/openclaw#91598))
- Provider support expands with OpenRouter OAuth onboarding and Claude Fable 5 adaptive thinking, while Codex sessions keep correct compaction ownership, local models skip guardian review, dynamic tool progress normalizes cleanly, and Gemma 4 reasoning replay is preserved. ([#&#8203;91830](openclaw/openclaw#91830), [#&#8203;91882](openclaw/openclaw#91882), [#&#8203;91590](openclaw/openclaw#91590), [#&#8203;88630](openclaw/openclaw#88630), [#&#8203;88768](openclaw/openclaw#88768), [#&#8203;91696](openclaw/openclaw#91696)) Thanks [@&#8203;Patrick-Erichsen](https://github.com/Patrick-Erichsen), [@&#8203;joshavant](https://github.com/joshavant), [@&#8203;bdjben](https://github.com/bdjben), and [@&#8203;Coder-Wangyankun](https://github.com/Coder-Wangyankun).

##### Changes

- CLI progress: emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. ([#&#8203;89834](openclaw/openclaw#89834), [#&#8203;90883](openclaw/openclaw#90883)) Thanks [@&#8203;anagnorisis2peripeteia](https://github.com/anagnorisis2peripeteia).
- Observability: allow trusted diagnostics channels to capture tool input/output content, add first-assistant-event traces, and warn on slow initial replies. ([#&#8203;91256](openclaw/openclaw#91256), [#&#8203;91568](openclaw/openclaw#91568), [#&#8203;91583](openclaw/openclaw#91583)) Thanks [@&#8203;amknight](https://github.com/amknight).
- Plugins/ClawHub: dogfood reusable package publishing, let dry runs skip publish approval, allow declared installed trusted hooks, report managed plugin version drift, and warn instead of failing on retired Skill Workshop configuration. ([#&#8203;91574](openclaw/openclaw#91574), [#&#8203;91591](openclaw/openclaw#91591), [#&#8203;90004](openclaw/openclaw#90004), [#&#8203;90927](openclaw/openclaw#90927), [#&#8203;90838](openclaw/openclaw#90838)) Thanks [@&#8203;Patrick-Erichsen](https://github.com/Patrick-Erichsen), [@&#8203;brokemac79](https://github.com/brokemac79), and [@&#8203;lonexreb](https://github.com/lonexreb).
- Memory/providers: move the local llama.cpp runtime into its provider plugin, batch embeddings across files, persist the agent model catalog cache, and keep QMD JSON search one-shot while filtering stale REM recall previews. ([#&#8203;91324](openclaw/openclaw#91324), [#&#8203;89138](openclaw/openclaw#89138), [#&#8203;90457](openclaw/openclaw#90457), [#&#8203;91837](openclaw/openclaw#91837), [#&#8203;91851](openclaw/openclaw#91851)) Thanks [@&#8203;osolmaz](https://github.com/osolmaz), [@&#8203;mushuiyu886](https://github.com/mushuiyu886), [@&#8203;ai-hpc](https://github.com/ai-hpc), and [@&#8203;TurboTheTurtle](https://github.com/TurboTheTurtle).
- Channels/mobile: add the QQBot group mention toggle, improve iPad and iPhone control surfaces, and expose the active connection host in the TUI footer. ([#&#8203;91423](openclaw/openclaw#91423), [#&#8203;91557](openclaw/openclaw#91557), [#&#8203;89909](openclaw/openclaw#89909)) Thanks [@&#8203;cxyhhhhh](https://github.com/cxyhhhhh), [@&#8203;Solvely-Colin](https://github.com/Solvely-Colin), and [@&#8203;baskduf](https://github.com/baskduf).
- Performance: prewarm TUI runtime plugins, deduplicate plugin auto-enable fanout, trim dense text-delta snapshots, and reuse prepared startup model metadata. ([#&#8203;90782](openclaw/openclaw#90782), [#&#8203;89978](openclaw/openclaw#89978), [#&#8203;91580](openclaw/openclaw#91580), [#&#8203;91531](openclaw/openclaw#91531)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;ai-hpc](https://github.com/ai-hpc).

##### Fixes

- Agent/session recovery: drop stale approval follow-ups after session rebind, remove drained reply-queue items by identity, recover stale main and visible replies, preserve Codex context-engine compaction ownership, lower the default compaction timeout to 180 seconds while respecting explicit configuration, and keep provider-failure terminal lifecycle state correct. ([#&#8203;85679](openclaw/openclaw#85679), [#&#8203;91450](openclaw/openclaw#91450), [#&#8203;91566](openclaw/openclaw#91566), [#&#8203;91840](openclaw/openclaw#91840), [#&#8203;91590](openclaw/openclaw#91590), [#&#8203;91361](openclaw/openclaw#91361), [#&#8203;91895](openclaw/openclaw#91895)) Thanks [@&#8203;openperf](https://github.com/openperf), [@&#8203;yetval](https://github.com/yetval), [@&#8203;joshavant](https://github.com/joshavant), [@&#8203;wangmiao0668000666](https://github.com/wangmiao0668000666), and [@&#8203;TurboTheTurtle](https://github.com/TurboTheTurtle).
- User-visible content boundaries: suppress Codex/Harmony protocol artifacts, neutralize browser and LanceDB memory media directives, redact transcript images, and preserve native `/compact` replies through source suppression. ([#&#8203;89151](openclaw/openclaw#89151), [#&#8203;91422](openclaw/openclaw#91422), [#&#8203;91425](openclaw/openclaw#91425), [#&#8203;91529](openclaw/openclaw#91529), [#&#8203;90212](openclaw/openclaw#90212)) Thanks [@&#8203;joelnishanth](https://github.com/joelnishanth), [@&#8203;pgondhi987](https://github.com/pgondhi987), [@&#8203;joshavant](https://github.com/joshavant), and [@&#8203;snowzlm](https://github.com/snowzlm).
- Channel delivery: keep WhatsApp captured replies attached to the successor controller after restart, retry Feishu rate limits, preserve Mattermost thread replies, canonicalize LINE webhook paths, restore Discord reply hydration and runtime timeout exports, and show OpenAI Realtime WebRTC assistant transcripts. ([#&#8203;85823](openclaw/openclaw#85823), [#&#8203;89659](openclaw/openclaw#89659), [#&#8203;91684](openclaw/openclaw#91684), [#&#8203;91649](openclaw/openclaw#91649), [#&#8203;90263](openclaw/openclaw#90263), [#&#8203;91686](openclaw/openclaw#91686), [#&#8203;90426](openclaw/openclaw#90426)) Thanks [@&#8203;itsuzef](https://github.com/itsuzef), [@&#8203;ladygege](https://github.com/ladygege), [@&#8203;jacobtomlinson](https://github.com/jacobtomlinson), [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev), and [@&#8203;shushushv](https://github.com/shushushv).
- Cron: cancel active task runs cleanly, preserve terminal timeout/cancel state, and recover no-deliver tool warnings instead of silently losing the outcome. ([#&#8203;90666](openclaw/openclaw#90666), [#&#8203;90678](openclaw/openclaw#90678)) Thanks [@&#8203;ai-hpc](https://github.com/ai-hpc).
- Gateway/config/auth: share the approval runtime socket token, replace arrays explicitly in `config.patch`, skip the deleted-agent guard only for valid ACP harness sessions, surface headless LaunchAgent state, verify SQLite auth migration before cleanup, and arm QMD startup maintenance. ([#&#8203;87105](openclaw/openclaw#87105), [#&#8203;91551](openclaw/openclaw#91551), [#&#8203;91219](openclaw/openclaw#91219), [#&#8203;91614](openclaw/openclaw#91614), [#&#8203;91740](openclaw/openclaw#91740), [#&#8203;91978](openclaw/openclaw#91978)) Thanks [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev) and [@&#8203;scotthuang](https://github.com/scotthuang).
- Providers/Codex: clarify quota errors, restore the Codex synthetic usage line, canonicalize Codex protocol assets, require API-key auth for realtime voice, normalize ACP model refs, preserve Gemma 4 `reasoning_content`, and avoid guardian review for local models. ([#&#8203;91390](openclaw/openclaw#91390), [#&#8203;91709](openclaw/openclaw#91709), [#&#8203;91507](openclaw/openclaw#91507), [#&#8203;91567](openclaw/openclaw#91567), [#&#8203;88630](openclaw/openclaw#88630), [#&#8203;91696](openclaw/openclaw#91696)) Thanks [@&#8203;hxy91819](https://github.com/hxy91819), [@&#8203;brokemac79](https://github.com/brokemac79), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;joshavant](https://github.com/joshavant), and [@&#8203;Coder-Wangyankun](https://github.com/Coder-Wangyankun).
- Updates/builds: recover package Gateway restarts after refresh failure, expose plugin convergence repair, fall back to Corepack in PATH-less pnpm environments, seed the correct Docker store packages, and keep ClawHub dry-run and publish paths reusable. ([#&#8203;91581](openclaw/openclaw#91581), [#&#8203;91599](openclaw/openclaw#91599), [#&#8203;91547](openclaw/openclaw#91547), [#&#8203;91591](openclaw/openclaw#91591)) Thanks [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev), [@&#8203;sallyom](https://github.com/sallyom), and [@&#8203;Patrick-Erichsen](https://github.com/Patrick-Erichsen).
- UI: require explicit user intent before opening chat sessions and drain restored chat queues after session switches. ([#&#8203;91480](openclaw/openclaw#91480)) Thanks [@&#8203;TurboTheTurtle](https://github.com/TurboTheTurtle).
- Android: avoid the `dataSync` foreground-service type for persistent nodes. ([#&#8203;80082](openclaw/openclaw#80082)) Thanks [@&#8203;davelutztx](https://github.com/davelutztx).
- Native hooks: bound relay lifetimes so abandoned native hook connections cannot linger indefinitely. ([#&#8203;91550](openclaw/openclaw#91550)) Thanks [@&#8203;joshavant](https://github.com/joshavant).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1040
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer Maintainer-authored PR merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. scripts Repository scripts size: M status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant