diff --git a/CHANGELOG.md b/CHANGELOG.md index c0f8075de..f58d12c41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ Docs: https://docs.openclaw.ai -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/appcast.xml b/appcast.xml index ff1331d26..70ae391d6 100644 --- a/appcast.xml +++ b/appcast.xml @@ -3,13 +3,13 @@ OpenClaw - 2026.2.3 + 2026.2.4 Wed, 04 Feb 2026 17:47:10 -0800 https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml 8900 - 2026.2.3 + 2026.2.4 15.0 - OpenClaw 2026.2.3 + OpenClaw 2026.2.4

Changes

  • Telegram: remove last @ts-nocheck from bot-handlers.ts, use Grammy types directly, deduplicate StickerMetadata. Zero @ts-nocheck remaining in src/telegram/. (#9206)
  • @@ -50,7 +50,7 @@

View full changelog

]]>
- +
2026.2.2 diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index ce24a0008..f2670ba01 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -22,7 +22,7 @@ android { minSdk = 31 targetSdk = 36 versionCode = 202602030 - versionName = "2026.2.3" + versionName = "2026.2.4" } buildTypes { diff --git a/apps/ios/Sources/Info.plist b/apps/ios/Sources/Info.plist index 05844860d..5d2b8b26a 100644 --- a/apps/ios/Sources/Info.plist +++ b/apps/ios/Sources/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2026.2.3 + 2026.2.4 CFBundleVersion 20260202 NSAppTransportSecurity diff --git a/apps/ios/Tests/Info.plist b/apps/ios/Tests/Info.plist index e91296b85..3f858bf93 100644 --- a/apps/ios/Tests/Info.plist +++ b/apps/ios/Tests/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 2026.2.3 + 2026.2.4 CFBundleVersion 20260202 diff --git a/apps/ios/project.yml b/apps/ios/project.yml index 0d711c549..82b0df676 100644 --- a/apps/ios/project.yml +++ b/apps/ios/project.yml @@ -81,7 +81,7 @@ targets: properties: CFBundleDisplayName: OpenClaw CFBundleIconName: AppIcon - CFBundleShortVersionString: "2026.2.3" + CFBundleShortVersionString: "2026.2.4" CFBundleVersion: "20260202" UILaunchScreen: {} UIApplicationSceneManifest: @@ -130,5 +130,5 @@ targets: path: Tests/Info.plist properties: CFBundleDisplayName: OpenClawTests - CFBundleShortVersionString: "2026.2.3" + CFBundleShortVersionString: "2026.2.4" CFBundleVersion: "20260202" diff --git a/apps/macos/Sources/OpenClaw/Resources/Info.plist b/apps/macos/Sources/OpenClaw/Resources/Info.plist index 02290f0c3..9ed7e6a0c 100644 --- a/apps/macos/Sources/OpenClaw/Resources/Info.plist +++ b/apps/macos/Sources/OpenClaw/Resources/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2026.2.3 + 2026.2.4 CFBundleVersion 202602020 CFBundleIconFile diff --git a/docs/platforms/mac/release.md b/docs/platforms/mac/release.md index 7e849279f..33708326c 100644 --- a/docs/platforms/mac/release.md +++ b/docs/platforms/mac/release.md @@ -34,17 +34,17 @@ Notes: # From repo root; set release IDs so Sparkle feed is enabled. # APP_BUILD must be numeric + monotonic for Sparkle compare. BUNDLE_ID=bot.molt.mac \ -APP_VERSION=2026.2.3 \ +APP_VERSION=2026.2.4 \ APP_BUILD="$(git rev-list --count HEAD)" \ BUILD_CONFIG=release \ SIGN_IDENTITY="Developer ID Application: ()" \ scripts/package-mac-app.sh # Zip for distribution (includes resource forks for Sparkle delta support) -ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.2.3.zip +ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.2.4.zip # Optional: also build a styled DMG for humans (drag to /Applications) -scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.3.dmg +scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.4.dmg # Recommended: build + notarize/staple zip + DMG # First, create a keychain profile once: @@ -52,14 +52,14 @@ scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.3.dmg # --apple-id "" --team-id "" --password "" NOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \ BUNDLE_ID=bot.molt.mac \ -APP_VERSION=2026.2.3 \ +APP_VERSION=2026.2.4 \ APP_BUILD="$(git rev-list --count HEAD)" \ BUILD_CONFIG=release \ SIGN_IDENTITY="Developer ID Application: ()" \ scripts/package-mac-dist.sh # Optional: ship dSYM alongside the release -ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.2.3.dSYM.zip +ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.2.4.dSYM.zip ``` ## Appcast entry @@ -67,7 +67,7 @@ ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenCl Use the release note generator so Sparkle renders formatted HTML notes: ```bash -SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.2.3.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml +SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.2.4.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml ``` Generates HTML release notes from `CHANGELOG.md` (via [`scripts/changelog-to-html.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/changelog-to-html.sh)) and embeds them in the appcast entry. @@ -75,7 +75,7 @@ Commit the updated `appcast.xml` alongside the release assets (zip + dSYM) when ## Publish & verify -- Upload `OpenClaw-2026.2.3.zip` (and `OpenClaw-2026.2.3.dSYM.zip`) to the GitHub release for tag `v2026.2.3`. +- Upload `OpenClaw-2026.2.4.zip` (and `OpenClaw-2026.2.4.dSYM.zip`) to the GitHub release for tag `v2026.2.4`. - Ensure the raw appcast URL matches the baked feed: `https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml`. - Sanity checks: - `curl -I https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml` returns 200. diff --git a/extensions/bluebubbles/package.json b/extensions/bluebubbles/package.json index e2e2c1cc6..705f4da76 100644 --- a/extensions/bluebubbles/package.json +++ b/extensions/bluebubbles/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/bluebubbles", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw BlueBubbles channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/copilot-proxy/package.json b/extensions/copilot-proxy/package.json index 8b0c6dc74..7e949d34c 100644 --- a/extensions/copilot-proxy/package.json +++ b/extensions/copilot-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/copilot-proxy", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Copilot Proxy provider plugin", "type": "module", "devDependencies": { diff --git a/extensions/diagnostics-otel/package.json b/extensions/diagnostics-otel/package.json index 989af140e..ee5c19245 100644 --- a/extensions/diagnostics-otel/package.json +++ b/extensions/diagnostics-otel/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/diagnostics-otel", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw diagnostics OpenTelemetry exporter", "type": "module", "dependencies": { diff --git a/extensions/discord/package.json b/extensions/discord/package.json index 3e132533f..8eef4cd97 100644 --- a/extensions/discord/package.json +++ b/extensions/discord/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/discord", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Discord channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/feishu/package.json b/extensions/feishu/package.json index 86d34d080..f6659bf22 100644 --- a/extensions/feishu/package.json +++ b/extensions/feishu/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/feishu", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Feishu channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/google-antigravity-auth/package.json b/extensions/google-antigravity-auth/package.json index 32e86c5b0..ef2287368 100644 --- a/extensions/google-antigravity-auth/package.json +++ b/extensions/google-antigravity-auth/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/google-antigravity-auth", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Google Antigravity OAuth provider plugin", "type": "module", "devDependencies": { diff --git a/extensions/google-gemini-cli-auth/package.json b/extensions/google-gemini-cli-auth/package.json index 6a074e6f4..ba85a4115 100644 --- a/extensions/google-gemini-cli-auth/package.json +++ b/extensions/google-gemini-cli-auth/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/google-gemini-cli-auth", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Gemini CLI OAuth provider plugin", "type": "module", "devDependencies": { diff --git a/extensions/googlechat/package.json b/extensions/googlechat/package.json index 8889d7ea4..ee1f67853 100644 --- a/extensions/googlechat/package.json +++ b/extensions/googlechat/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/googlechat", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Google Chat channel plugin", "type": "module", "dependencies": { diff --git a/extensions/imessage/package.json b/extensions/imessage/package.json index 6944695e2..d52d4f9f1 100644 --- a/extensions/imessage/package.json +++ b/extensions/imessage/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/imessage", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw iMessage channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/line/package.json b/extensions/line/package.json index 2a770915d..f4fce7f54 100644 --- a/extensions/line/package.json +++ b/extensions/line/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/line", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw LINE channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/llm-task/package.json b/extensions/llm-task/package.json index cac11347a..620a3a108 100644 --- a/extensions/llm-task/package.json +++ b/extensions/llm-task/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/llm-task", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw JSON-only LLM task plugin", "type": "module", "devDependencies": { diff --git a/extensions/lobster/package.json b/extensions/lobster/package.json index aa09020e6..14c4795bc 100644 --- a/extensions/lobster/package.json +++ b/extensions/lobster/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/lobster", - "version": "2026.2.3", + "version": "2026.2.4", "description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)", "type": "module", "devDependencies": { diff --git a/extensions/matrix/CHANGELOG.md b/extensions/matrix/CHANGELOG.md index 64f02ccf4..7614aabdb 100644 --- a/extensions/matrix/CHANGELOG.md +++ b/extensions/matrix/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/matrix/package.json b/extensions/matrix/package.json index bdbb1ccae..414136222 100644 --- a/extensions/matrix/package.json +++ b/extensions/matrix/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/matrix", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Matrix channel plugin", "type": "module", "dependencies": { diff --git a/extensions/mattermost/package.json b/extensions/mattermost/package.json index 1646d053b..69589f893 100644 --- a/extensions/mattermost/package.json +++ b/extensions/mattermost/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/mattermost", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Mattermost channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/memory-core/package.json b/extensions/memory-core/package.json index 654d7c13a..1fee43121 100644 --- a/extensions/memory-core/package.json +++ b/extensions/memory-core/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-core", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw core memory search plugin", "type": "module", "devDependencies": { diff --git a/extensions/memory-lancedb/package.json b/extensions/memory-lancedb/package.json index 8f48dd2ba..2264b9612 100644 --- a/extensions/memory-lancedb/package.json +++ b/extensions/memory-lancedb/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/memory-lancedb", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture", "type": "module", "dependencies": { diff --git a/extensions/minimax-portal-auth/package.json b/extensions/minimax-portal-auth/package.json index 0c9c78b13..2669c5ac3 100644 --- a/extensions/minimax-portal-auth/package.json +++ b/extensions/minimax-portal-auth/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/minimax-portal-auth", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw MiniMax Portal OAuth provider plugin", "type": "module", "devDependencies": { diff --git a/extensions/msteams/CHANGELOG.md b/extensions/msteams/CHANGELOG.md index dd357b09b..574dd3f57 100644 --- a/extensions/msteams/CHANGELOG.md +++ b/extensions/msteams/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/msteams/package.json b/extensions/msteams/package.json index f84736a53..981f3bdda 100644 --- a/extensions/msteams/package.json +++ b/extensions/msteams/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/msteams", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Microsoft Teams channel plugin", "type": "module", "dependencies": { diff --git a/extensions/nextcloud-talk/package.json b/extensions/nextcloud-talk/package.json index f0ab9312e..b43766aa3 100644 --- a/extensions/nextcloud-talk/package.json +++ b/extensions/nextcloud-talk/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nextcloud-talk", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Nextcloud Talk channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/nostr/CHANGELOG.md b/extensions/nostr/CHANGELOG.md index df7320441..9ce3bda95 100644 --- a/extensions/nostr/CHANGELOG.md +++ b/extensions/nostr/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/nostr/package.json b/extensions/nostr/package.json index 67efad2d8..9756b8eca 100644 --- a/extensions/nostr/package.json +++ b/extensions/nostr/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/nostr", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs", "type": "module", "dependencies": { diff --git a/extensions/open-prose/package.json b/extensions/open-prose/package.json index 9f9cc5ef2..a628b178d 100644 --- a/extensions/open-prose/package.json +++ b/extensions/open-prose/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/open-prose", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenProse VM skill pack plugin (slash command + telemetry).", "type": "module", "devDependencies": { diff --git a/extensions/signal/package.json b/extensions/signal/package.json index d1ad36ae8..6a0ea59f4 100644 --- a/extensions/signal/package.json +++ b/extensions/signal/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/signal", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Signal channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/slack/package.json b/extensions/slack/package.json index 74c0a7fa9..e1435f0c1 100644 --- a/extensions/slack/package.json +++ b/extensions/slack/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/slack", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Slack channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/telegram/package.json b/extensions/telegram/package.json index bd5765337..d034b31bf 100644 --- a/extensions/telegram/package.json +++ b/extensions/telegram/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/telegram", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Telegram channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/tlon/package.json b/extensions/tlon/package.json index 6af0e76a1..75207dd83 100644 --- a/extensions/tlon/package.json +++ b/extensions/tlon/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/tlon", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Tlon/Urbit channel plugin", "type": "module", "dependencies": { diff --git a/extensions/twitch/CHANGELOG.md b/extensions/twitch/CHANGELOG.md index d55e86ea1..125e88c66 100644 --- a/extensions/twitch/CHANGELOG.md +++ b/extensions/twitch/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/twitch/package.json b/extensions/twitch/package.json index e0cd832a8..ada1f69d4 100644 --- a/extensions/twitch/package.json +++ b/extensions/twitch/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/twitch", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Twitch channel plugin", "type": "module", "dependencies": { diff --git a/extensions/voice-call/CHANGELOG.md b/extensions/voice-call/CHANGELOG.md index ec338df09..bf63823c4 100644 --- a/extensions/voice-call/CHANGELOG.md +++ b/extensions/voice-call/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/voice-call/package.json b/extensions/voice-call/package.json index 3b260f71c..80131d0ce 100644 --- a/extensions/voice-call/package.json +++ b/extensions/voice-call/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/voice-call", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw voice-call plugin", "type": "module", "dependencies": { diff --git a/extensions/whatsapp/package.json b/extensions/whatsapp/package.json index 8135b8068..8ac3a638d 100644 --- a/extensions/whatsapp/package.json +++ b/extensions/whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/whatsapp", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw WhatsApp channel plugin", "type": "module", "devDependencies": { diff --git a/extensions/zalo/CHANGELOG.md b/extensions/zalo/CHANGELOG.md index c2f01e96d..5c965af11 100644 --- a/extensions/zalo/CHANGELOG.md +++ b/extensions/zalo/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/zalo/package.json b/extensions/zalo/package.json index 8ef1676e5..95c0f3bfe 100644 --- a/extensions/zalo/package.json +++ b/extensions/zalo/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalo", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Zalo channel plugin", "type": "module", "dependencies": { diff --git a/extensions/zalouser/CHANGELOG.md b/extensions/zalouser/CHANGELOG.md index 04efc879a..43740b5a8 100644 --- a/extensions/zalouser/CHANGELOG.md +++ b/extensions/zalouser/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 2026.2.3 +## 2026.2.4 ### Changes diff --git a/extensions/zalouser/package.json b/extensions/zalouser/package.json index 67731e9d1..a3ded9a64 100644 --- a/extensions/zalouser/package.json +++ b/extensions/zalouser/package.json @@ -1,6 +1,6 @@ { "name": "@openclaw/zalouser", - "version": "2026.2.3", + "version": "2026.2.4", "description": "OpenClaw Zalo Personal Account plugin via zca-cli", "type": "module", "dependencies": { diff --git a/package.json b/package.json index c5f1ace5a..71782a1cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openclaw", - "version": "2026.2.3", + "version": "2026.2.4", "description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent", "keywords": [], "license": "MIT",