chore(release): prepare v0.41.0 - #1214
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed August 2, 2026, 11:26 AM ET / 15:26 UTC. ClawSweeper reviewWhat this changesThis PR converts the Unreleased changelog into a dated v0.41.0 section, bumps the Worker package metadata, and adds a blocked release-source authorization record pending a signed tag. Merge readiness⛔ Blocked until real behavior proof is added - 6 items remain Keep this PR open. Its release changelog hunk is behind current Priority: P2 Review scores
Verification
How this fits togetherRelease preparation turns the current Unreleased changelog and Worker package version into a tag-ready release commit. A later signed-tag authorization record binds that release commit to immutable Git identities before the credential-free candidate producer may proceed. flowchart LR
A[Current main changes] --> B[Release preparation branch]
B --> C[Versioned changelog]
B --> D[Worker package metadata]
B --> E[Blocked source record]
C --> F[Signed release tag]
D --> F
E --> G[Authorized candidate producer]
F --> G
Decision needed
Why: Tagging this release is an irreversible, gated operation; the release owner must explicitly confirm whether those current-main changes ship in v0.41.0 or are deferred to a later release. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Rebase the preparation branch onto current main, make v0.41.0 contain the complete current Unreleased section, preserve the package-version and blocked-record changes, and attach redacted terminal proof of the blocked preflight before release approval. Do we have a high-confidence way to reproduce the issue? Yes. A current three-way merge reproduces a conflict in Is this the best way to solve the issue? No. The branch must first be rebased onto current main and preserve the complete Unreleased section; its blocked-record behavior also needs direct preflight evidence before merge. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0171ae2ee19f. LabelsLabel justifications:
EvidenceWhat 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 (10 earlier review cycles; latest 8 shown)
|
Summary
Release scope includes work tracked in #1208. The late merge #1203 is included and credited to @morluto.
Verification
Fresh local
npm ci --prefix workerwas attempted repeatedly but registry tarball requests timed out. The local Worker proof used a lockfile-identical dependency tree from the adjacent exact-origin-main validation checkout, verified withnpm ls --prefix worker --all. Hosted CI run https://github.com/openclaw/crabbox/actions/runs/30671525807 passed all eight jobs on exact head132b02ee27db382bd3d08c2489191dbbb6b72b86, including its fresh Worker install, Go race/all-modules/coverage gate, scripts, docs, Apple VM, Windows cancellation, connector lifecycles, and GoReleaser snapshot. Dependency freshness was inspected withgo list -m -u -json allandnpm outdated --prefix worker --json; a broad dependency refresh already landed in #1194, and newer post-refresh upstream patch/minor releases were not mixed into this frozen release-preparation diff.The coordinator-backed live smoke was not run because it requires coordinator credentials, which this preparation lane is explicitly forbidden to touch. No tag, producer, signing, draft, publication, npm publish, or Homebrew action was run.
Maintainer handoff
The release contract says:
After this PR merges, run these gates in order from a clean
maincheckout.1. Sign and push the immutable tag
Required credential: the repository-approved SSH signing key must be available through the maintainer's configured Git signing agent. No GitHub Release, Homebrew, Actions, codesign, or notary environment variable is required for tag creation; repository push authentication is required only for the final push.
The annotation subject is deliberately the bare
v0.41.0; never replace it with descriptive text.2. Authorize the exact signed source in a protected PR
Required credential: normal GitHub branch/PR authentication only. No release, Homebrew, Actions, codesign, or notary credential is required. Recompute the IDs from the immutable tag, replace both pending sentinels, set the record to
ready, and remove the blocker:Stop until that record-only PR has required review, green CI, and is merged. Then return to clean
main.3. Run only the credential-free producer
Required platform/tools: Apple Silicon macOS and the exact repository-pinned Go, GoReleaser, Swift, Xcode, macOS, and architecture requirements checked by the producer. Every variable below must be absent, not merely empty:
GH_TOKEN,GITHUB_TOKEN,HOMEBREW_TAP_GITHUB_TOKEN,HOMEBREW_GITHUB_API_TOKEN,ACTIONS_RUNTIME_TOKEN,ACTIONS_ID_TOKEN_REQUEST_TOKEN,CODESIGN_IDENTITY,MAC_RELEASE_CODESIGN_IDENTITY, andNOTARYTOOL_KEYCHAIN_PROFILE.Stop there. Signing/packaging, draft creation, native verification, publication, and Homebrew each require their own later authorization under
docs/RELEASING.md.