Skip to content

Sync/upstream 2026 03 08#99

Merged
linfangw merged 465 commits into
mainfrom
sync/upstream-2026-03-08
Mar 8, 2026
Merged

Sync/upstream 2026 03 08#99
linfangw merged 465 commits into
mainfrom
sync/upstream-2026-03-08

Conversation

@linfangw

@linfangw linfangw commented Mar 8, 2026

Copy link
Copy Markdown
Member

No description provided.

steipete and others added 30 commits March 7, 2026 22:39
…@joetomasone)

Land openclaw#9040 by @joetomasone. Add fail-closed config loading, compat coverage, and changelog entry for openclaw#5052.

Co-authored-by: Joe Tomasone <joe@tomasone.com>
… thanks @riftzen-bit)

Co-authored-by: riftzen-bit <binb53339@gmail.com>
…lsdcc01)

Land openclaw#33757 by @lsdcc01 without the unrelated dependency bump. Preserve negative FTS5 BM25 ordering in hybrid scoring and add changelog coverage for openclaw#5767.

Co-authored-by: 丁春才0668000523 <ding.chuncai1@xydigit.com>
…, thanks @ademczuk)

Co-authored-by: ademczuk <andrew.demczuk@gmail.com>
…anks @ademczuk)

Co-authored-by: ademczuk <andrew.demczuk@gmail.com>
Landed from contributor PR openclaw#28428 by @l0cka.

Co-authored-by: Daniel Alkurdi <danielalkurdi@gmail.com>
… thanks @Gundam98)

Co-authored-by: Gundam98 <huhanwen98@gmail.com>
Landed from contributor PR openclaw#28608 by @KimGLee.

Co-authored-by: Kim <150593189+KimGLee@users.noreply.github.com>
steipete and others added 26 commits March 8, 2026 03:22
Co-authored-by: Tom <hxtxmu@gmail.com>
macOS app/chat/browser/cron/permissions fixes.

Co-authored-by: ImHermes1 <lukeforn@gmail.com>
Resolve merge conflicts across agent tools, daemon services, and tests while preserving QVerisBot fork integrations. Restore daemon service install wrapper compatibility and verify with full pnpm test.

Made-with: Cursor
@linfangw linfangw merged commit 0036efd into main Mar 8, 2026
2 of 9 checks passed
@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request streamlines the build and deployment processes across Docker, iOS, and macOS platforms, while simultaneously bolstering the robustness and security of various communication channel integrations. It introduces new functionalities such as browser control for macOS nodes and advanced MCP server configuration for ACPX, alongside significant refinements to the chat user interface and extensive documentation updates.

Highlights

  • Build & Deployment Enhancements: Updated Dockerfile for multi-stage builds, slim variants, and pinned base images, alongside iOS app versioning and Fastlane improvements for App Store Connect API key handling, including Keychain support.
  • Platform-Specific Features: Introduced browser control capability for macOS nodes and refined macOS permission settings UI. Android app package IDs and release signing configurations were also updated.
  • Channel Integration Improvements: Enhanced BlueBubbles and Feishu extensions with refactored account management, webhook handling, and improved security policy warnings. ACPX extension now supports advanced MCP server configuration.
  • Chat UI & Markdown Processing: Improved chat user interface with better handling of markdown images, untrusted context, and tool results. Image paste support was added for the macOS chat composer.
  • Documentation Updates: Comprehensive updates across CLI commands, concepts, and platforms to reflect new features, clarify existing functionalities, and enhance security notes.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .detect-secrets.cfg
    • Added new patterns to exclude from secret detection.
  • .pre-commit-config.yaml
    • Added new exclude lines and files for secret detection.
  • .secrets.baseline
    • Updated baseline secrets, including new patterns and excluding a test file.
  • AGENTS.md
    • Added guidelines for PR landing comments and changelog attribution, and a new security note.
  • Dockerfile
    • Refactored for multi-stage builds, introduced slim variants, pinned base images, and updated build steps.
  • SECURITY.md
    • Added new security notes regarding operator-control surfaces and trusted-operator features.
  • apps/android/app/build.gradle.kts
    • Updated application ID, version codes, and added release signing configuration.
  • apps/android/app/proguard-rules.pro
    • Updated keep rule for the new application ID.
  • apps/android/app/src/main/java/ai.openclaw/android/ui/ConnectTabScreen.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated import for MainViewModel.
  • apps/android/app/src/main/java/ai/openclaw/android/CameraHudState.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/DeviceNames.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/InstallResultReceiver.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/LocationMode.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/MainActivity.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
    • Updated imports for UI components.
  • apps/android/app/src/main/java/ai/openclaw/android/MainViewModel.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/NodeApp.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/NodeForegroundService.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
    • Updated ACTION_STOP constant to reflect new package name.
  • apps/android/app/src/main/java/ai/openclaw/android/NodeRuntime.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/PermissionRequester.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/ScreenCaptureRequester.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/SecurePrefs.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/SessionKey.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/VoiceWakeMode.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/WakeWords.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/main/java/ai/openclaw/android/chat/ChatController.kt
    • Renamed package from ai.openclaw.android.chat to ai.openclaw.app.chat.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/chat/ChatModels.kt
    • Renamed package from ai.openclaw.android.chat to ai.openclaw.app.chat.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/BonjourEscapes.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/DeviceAuthPayload.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/DeviceAuthStore.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
    • Updated import for SecurePrefs.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/DeviceIdentityStore.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/GatewayDiscovery.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/GatewayEndpoint.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/GatewayProtocol.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/GatewaySession.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/GatewayTls.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/gateway/InvokeErrorParser.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/main/java/ai/openclaw/android/node/A2UIHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/AppUpdateHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/node/CalendarHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/CameraCaptureManager.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for PermissionRequester.
  • apps/android/app/src/main/java/ai/openclaw/android/node/CameraHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/node/CanvasController.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for BuildConfig.
  • apps/android/app/src/main/java/ai/openclaw/android/node/ConnectionManager.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/node/ContactsHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/DebugHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/node/DeviceHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/node/DeviceNotificationListenerService.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/main/java/ai/openclaw/android/node/GatewayEventHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for SecurePrefs and GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/InvokeCommandRegistry.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various protocol commands.
  • apps/android/app/src/main/java/ai/openclaw/android/node/InvokeDispatcher.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various protocol commands.
  • apps/android/app/src/main/java/ai/openclaw/android/node/JpegSizeLimiter.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/main/java/ai/openclaw/android/node/LocationCaptureManager.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/main/java/ai/openclaw/android/node/LocationHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for LocationMode and GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/MotionHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/NodeUtils.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for parseInvokeErrorFromThrowable.
  • apps/android/app/src/main/java/ai/openclaw/android/node/NotificationsHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/PhotosHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/ScreenHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/ScreenRecordManager.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for ScreenCaptureRequester and PermissionRequester.
  • apps/android/app/src/main/java/ai/openclaw/android/node/SmsHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/node/SmsManager.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for PermissionRequester.
  • apps/android/app/src/main/java/ai/openclaw/android/node/SystemHandler.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/main/java/ai/openclaw/android/protocol/OpenClawCanvasA2UIAction.kt
    • Renamed package from ai.openclaw.android.protocol to ai.openclaw.app.protocol.
  • apps/android/app/src/main/java/ai/openclaw/android/protocol/OpenClawProtocolConstants.kt
    • Renamed package from ai.openclaw.android.protocol to ai.openclaw.app.protocol.
  • apps/android/app/src/main/java/ai/openclaw/android/tools/ToolDisplay.kt
    • Renamed package from ai.openclaw.android.tools to ai.openclaw.app.tools.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/CameraHudOverlay.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/CanvasScreen.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated import for MainViewModel.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/ChatSheet.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated imports for MainViewModel and ChatSheetContent.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/GatewayConfigResolver.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/MobileUiTokens.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated import for R.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/OnboardingFlow.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/OpenClawTheme.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/PostOnboardingTabs.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated import for MainViewModel.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/RootScreen.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated import for MainViewModel.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/SettingsSheet.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/TalkOrbOverlay.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/VoiceTabScreen.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/Base64ImageState.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/ChatComposer.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated imports for UI tokens.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/ChatMarkdown.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated imports for UI tokens.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/ChatMessageListCard.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated imports for chat components and UI tokens.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/ChatMessageViews.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated imports for chat components and UI tokens.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/ChatSheetContent.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated imports for various components.
  • apps/android/app/src/main/java/ai/openclaw/android/ui/chat/SessionFilters.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated import for ChatSessionEntry.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/ElevenLabsStreamingTts.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/MicCaptureManager.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/StreamingMediaDataSource.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/TalkDirectiveParser.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/TalkModeManager.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
    • Updated imports for GatewaySession and session key utilities.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/VoiceWakeCommandExtractor.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/main/java/ai/openclaw/android/voice/VoiceWakeManager.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/test/java/ai.openclaw/android/gateway/BonjourEscapesTest.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/test/java/ai/openclaw/android/NodeForegroundServiceTest.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/test/java/ai/openclaw/android/WakeWordsTest.kt
    • Renamed package from ai.openclaw.android to ai.openclaw.app.
  • apps/android/app/src/test/java/ai/openclaw/android/gateway/DeviceAuthPayloadTest.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/test/java/ai/openclaw/android/gateway/GatewaySessionInvokeTest.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/test/java/ai/openclaw/android/gateway/GatewaySessionInvokeTimeoutTest.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/test/java/ai/openclaw/android/gateway/InvokeErrorParserTest.kt
    • Renamed package from ai.openclaw.android.gateway to ai.openclaw.app.gateway.
  • apps/android/app/src/test/java/ai/openclaw/android/node/AppUpdateHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Added pragma: allowlist secret comment.
  • apps/android/app/src/test/java/ai/openclaw/android/node/CalendarHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/CameraHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/CanvasControllerSnapshotParamsTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/ConnectionManagerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewayEndpoint.
  • apps/android/app/src/test/java/ai/openclaw/android/node/ContactsHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/DeviceHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/InvokeCommandRegistryTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated imports for various protocol commands.
  • apps/android/app/src/test/java/ai/openclaw/android/node/JpegSizeLimiterTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/MotionHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/NodeHandlerRobolectricTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/NotificationsHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
    • Updated import for GatewaySession.
  • apps/android/app/src/test/java/ai/openclaw/android/node/PhotosHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/SmsManagerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/node/SystemHandlerTest.kt
    • Renamed package from ai.openclaw.android.node to ai.openclaw.app.node.
  • apps/android/app/src/test/java/ai/openclaw/android/protocol/OpenClawCanvasA2UIActionTest.kt
    • Renamed package from ai.openclaw.android.protocol to ai.openclaw.app.protocol.
  • apps/android/app/src/test/java/ai/openclaw/android/protocol/OpenClawProtocolConstantsTest.kt
    • Renamed package from ai.openclaw.android.protocol to ai.openclaw.app.protocol.
  • apps/android/app/src/test/java/ai/openclaw/android/ui/GatewayConfigResolverTest.kt
    • Renamed package from ai.openclaw.android.ui to ai.openclaw.app.ui.
  • apps/android/app/src/test/java/ai/openclaw/android/ui/chat/SessionFiltersTest.kt
    • Renamed package from ai.openclaw.android.ui.chat to ai.openclaw.app.ui.chat.
    • Updated import for ChatSessionEntry.
  • apps/android/app/src/test/java/ai/openclaw/android/voice/TalkDirectiveParserTest.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/test/java/ai/openclaw/android/voice/TalkModeConfigParsingTest.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/app/src/test/java/ai/openclaw/android/voice/VoiceWakeCommandExtractorTest.kt
    • Renamed package from ai.openclaw.android.voice to ai.openclaw.app.voice.
  • apps/android/benchmark/build.gradle.kts
    • Updated namespace.
  • apps/android/benchmark/src/main/java/ai/openclaw/android/benchmark/StartupMacrobenchmark.kt
    • Renamed package from ai.openclaw.android.benchmark to ai.openclaw.app.benchmark.
    • Updated package name constant.
  • apps/android/scripts/perf-startup-benchmark.sh
    • Updated CLASS_FILTER for new package name.
  • apps/android/scripts/perf-startup-hotspots.sh
    • Updated PACKAGE variable for new package name.
  • apps/ios/ActivityWidget/Info.plist
    • Updated bundle version and short version string.
  • apps/ios/LocalSigning.xcconfig.example
    • Updated bundle IDs and development team placeholder.
  • apps/ios/ShareExtension/Info.plist
    • Updated bundle version and short version string.
  • apps/ios/Signing.xcconfig
    • Updated bundle IDs and development team.
  • apps/ios/Sources/Gateway/GatewaySettingsStore.swift
    • Modified isoTimestamp to be a function and updated calls.
  • apps/ios/Sources/Info.plist
    • Added BGTaskSchedulerPermittedIdentifiers, ITSAppUsesNonExemptEncryption, and new usage descriptions for motion and photo library. Updated bundle version and short version string.
  • apps/ios/Sources/RootCanvas.swift
    • Refactored quick setup presentation logic and UI layout for status pill and overlay buttons.
  • apps/ios/Tests/Info.plist
    • Updated bundle version and short version string.
  • apps/ios/Tests/RootCanvasPresentationTests.swift
    • Added new test file for RootCanvas quick setup presentation logic.
  • apps/ios/WatchApp/Info.plist
    • Updated bundle version and short version string.
  • apps/ios/WatchExtension/Info.plist
    • Updated bundle version and short version string.
  • apps/ios/fastlane/Appfile
    • Updated app identifier and added more detailed App Store Connect API key instructions.
  • apps/ios/fastlane/Fastfile
    • Added Keychain support for App Store Connect API keys, improved environment variable handling, and added auth_check lane.
  • apps/ios/fastlane/SETUP.md
    • Updated setup instructions for Fastlane, including Keychain integration and auth_check command.
  • apps/ios/fastlane/metadata/README.md
    • Added new file with instructions for App Store metadata upload.
  • apps/ios/fastlane/metadata/en-US/description.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/keywords.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/marketing_url.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/name.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/privacy_url.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/promotional_text.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/release_notes.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/subtitle.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/en-US/support_url.txt
    • Added new metadata file for App Store listing.
  • apps/ios/fastlane/metadata/review_information/email_address.txt
    • Added new review information file for App Store listing.
  • apps/ios/fastlane/metadata/review_information/first_name.txt
    • Added new review information file for App Store listing.
  • apps/ios/fastlane/metadata/review_information/last_name.txt
    • Added new review information file for App Store listing.
  • apps/ios/fastlane/metadata/review_information/notes.txt
    • Added new review information file for App Store listing.
  • apps/ios/fastlane/metadata/review_information/phone_number.txt
    • Added new review information file for App Store listing.
  • apps/ios/project.yml
    • Updated bundle versions and short version strings across all targets.
  • apps/macos/Sources/OpenClaw/GatewayConnection.swift
    • Added LossyDecodable structs and methods for robust cron job decoding.
  • apps/macos/Sources/OpenClaw/GatewayEndpointStore.swift
    • Added localConfig methods for resolving gateway configuration and updated dashboard URL to use fragment for token.
  • apps/macos/Sources/OpenClaw/HostEnvSanitizer.swift
    • Added blockedOverridePrefixes and isBlockedOverride for enhanced environment variable sanitization.
  • apps/macos/Sources/OpenClaw/HostEnvSecurityPolicy.generated.swift
    • Expanded blockedOverrideKeys and added blockedOverridePrefixes for security.
  • apps/macos/Sources/OpenClaw/NodeMode/MacNodeBrowserProxy.swift
    • Added new file for browser proxy functionality.
  • apps/macos/Sources/OpenClaw/NodeMode/MacNodeModeCoordinator.swift
    • Added browser control capability to node coordinator.
  • apps/macos/Sources/OpenClaw/NodeMode/MacNodeRuntime.swift
    • Integrated browser proxy into Mac node runtime.
  • apps/macos/Sources/OpenClaw/PermissionsSettings.swift
    • Improved permission settings UI with pending status and refresh transitions.
  • apps/macos/Sources/OpenClaw/Resources/Info.plist
    • Updated bundle version and short version string.
  • apps/macos/Sources/OpenClaw/SettingsRootView.swift
    • Added didBecomeActiveNotification observer for permission refresh.
  • apps/macos/Sources/OpenClawProtocol/GatewayModels.swift
    • Added workspacedir to AgentParams.
  • apps/macos/Tests/OpenClawIPCTests/CronModelsTests.swift
    • Added tests for lossy decoding of cron jobs and runs.
  • apps/macos/Tests/OpenClawIPCTests/GatewayEndpointStoreTests.swift
    • Added tests for local config resolution and dashboard URL fragment.
  • apps/macos/Tests/OpenClawIPCTests/MacNodeBrowserProxyTests.swift
    • Added new test file for MacNodeBrowserProxy.
  • apps/macos/Tests/OpenClawIPCTests/MacNodeRuntimeTests.swift
    • Added tests for browser proxy invoke handling.
  • apps/shared/OpenClawKit/Sources/OpenClawChatUI/AssistantTextParser.swift
    • Added includeThinking parameter to segments and new methods for visible content.
  • apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatComposer.swift
    • Added image paste support for macOS chat composer.
  • apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatMarkdownPreprocessor.swift
    • Enhanced markdown preprocessor to handle remote images, envelope headers, and message ID hints.
  • apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatMessageViews.swift
    • Added showsAssistantTrace parameter to chat message views.
  • apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatView.swift
    • Added showsAssistantTrace parameter to chat view and adjusted message filtering.
  • apps/shared/OpenClawKit/Sources/OpenClawKit/BrowserCommands.swift
    • Added new file for browser commands.
  • apps/shared/OpenClawKit/Sources/OpenClawKit/Capabilities.swift
    • Added browser capability.
  • apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift
    • Added workspacedir to AgentParams.
  • apps/shared/OpenClawKit/Tests/OpenClawKitTests/AssistantTextParserTests.swift
    • Added tests for AssistantTextParser visible content.
  • apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatComposerPasteSupportTests.swift
    • Added new test file for ChatComposerPasteSupport.
  • apps/shared/OpenClawKit/Tests/OpenClawKitTests/ChatMarkdownPreprocessorTests.swift
    • Added tests for markdown image flattening, envelope headers, and untrusted context stripping.
  • docker-compose.yml
    • Updated OPENCLAW_GATEWAY_TOKEN to use default value.
  • docker-setup.sh
    • Added read_env_gateway_token function and updated token resolution logic.
  • docs/channels/discord.md
    • Added notes on gateway auth for command handlers.
  • docs/channels/zalouser.md
    • Updated group policy documentation with groupAllowFrom and group history limits.
  • docs/cli/acp.md
    • Added notes on gateway auth resolution for ACP.
  • docs/cli/agent.md
    • Added note on SecretRef-managed provider credentials in models.json regeneration.
  • docs/cli/daemon.md
    • Added note on systemd EnvironmentFile for token-drift checks.
  • docs/cli/gateway.md
    • Added --password-file option and notes on password security, and systemd EnvironmentFile for token-drift checks.
  • docs/cli/index.md
    • Added --password-file option and notes on systemd EnvironmentFile and node auth resolution.
  • docs/cli/memory.md
    • Expanded options and notes for memory commands.
  • docs/cli/models.md
    • Added note on models status output for non-secret placeholders.
  • docs/cli/node.md
    • Added detailed section on gateway auth for node hosts.
  • docs/cli/secrets.md
    • Expanded audit scope to include generated model stores and sensitive header detection.
  • docs/concepts/model-providers.md
    • Updated Google Gemini model examples and compatibility notes.
  • docs/concepts/models.md
    • Clarified merge precedence for SecretRef-managed provider apiKey values in models.json.
  • docs/gateway/configuration-reference.md
    • Clarified /config command permissions, updated model aliases, changed default tools.profile to 'coding', and updated merge precedence for models.json.
  • docs/gateway/doctor.md
    • Added note on systemd EnvironmentFile for token-drift checks.
  • docs/gateway/openai-http-api.md
    • Added security note on trusted operator access for the HTTP API.
  • docs/gateway/openresponses-http-api.md
    • Added security note on trusted operator access for the HTTP API and expanded allowed image MIME types.
  • docs/gateway/protocol.md
    • Added note on stricter command-level checks for slash commands.
  • docs/gateway/remote.md
    • Expanded credential precedence documentation, including URL override safety.
  • docs/gateway/secrets.md
    • Expanded audit scope to include generated model stores and sensitive header detection.
  • docs/help/faq.md
    • Updated MiniMax model IDs, model aliases, and Control UI token persistence.
  • docs/help/testing.md
    • Updated Google Gemini model names and added note on Docker live-model runners.
  • docs/install/docker.md
    • Updated OCI base-image annotations.
  • docs/nodes/index.md
    • Expanded node host auth documentation.
  • docs/nodes/media-understanding.md
    • Updated Google Gemini model names.
  • docs/platforms/mac/release.md
    • Updated app version strings.
  • docs/providers/kilocode.md
    • Updated KiloCode default model and available models documentation.
  • docs/providers/minimax.md
    • Updated MiniMax model ID documentation.
  • docs/reference/secretref-credential-surface.md
    • Added models.providers.*.headers.* to SecretRef supported list and clarified models.json persistence for SecretRef-managed providers.
  • docs/reference/secretref-user-supplied-credentials-matrix.json
    • Added models.providers.*.headers.* to the credential matrix.
  • docs/reference/wizard.md
    • Changed default tools.profile to 'coding'.
  • docs/start/onboarding.md
    • Changed default tools.profile to 'coding'.
  • docs/start/wizard-cli-reference.md
    • Changed default tools.profile to 'coding'.
  • docs/start/wizard.md
    • Changed default tools.profile to 'coding'.
  • docs/tools/acp-agents.md
    • Clarified ACP spawn blocking for sandboxed sessions.
  • docs/tools/exec-approvals.md
    • Added note on binding canonical execution context for approved node-host runs.
  • docs/tools/plugin.md
    • Added note on rejecting overlapping routes with different auth levels and nativeNames for command options.
  • docs/tools/skills.md
    • Added note on skill discovery path validation.
  • docs/tools/web.md
    • Updated web search provider links and added pragma: allowlist secret to Brave API key example.
  • docs/web/control-ui.md
    • Updated Control UI token persistence behavior.
  • docs/web/dashboard.md
    • Updated Control UI token persistence behavior.
  • extensions/acpx/openclaw.plugin.json
    • Added mcpServers configuration for ACPX.
  • extensions/acpx/package.json
    • Updated version.
  • extensions/acpx/src/config.test.ts
    • Added tests for mcpServers configuration.
  • extensions/acpx/src/config.ts
    • Added types and functions for McpServerConfig and AcpxMcpServer.
  • extensions/acpx/src/runtime-internals/mcp-agent-command.ts
    • Added new file for MCP agent command resolution.
  • extensions/acpx/src/runtime-internals/mcp-proxy.mjs
    • Added new file for MCP proxy.
  • extensions/acpx/src/runtime-internals/mcp-proxy.test.ts
    • Added new test file for MCP proxy.
  • extensions/acpx/src/runtime-internals/test-fixtures.ts
    • Added config command to commandIndex and mcpServers to createMockRuntimeFixture.
  • extensions/acpx/src/runtime.test.ts
    • Added test for routing ACPX commands through an MCP proxy agent.
  • extensions/acpx/src/service.ts
    • Updated log message to include mcpServers count.
  • extensions/bluebubbles/package.json
    • Updated version.
  • extensions/bluebubbles/src/accounts.ts
    • Refactored account listing and resolution using createAccountListHelpers.
  • extensions/bluebubbles/src/channel.ts
    • Refactored resolveDmPolicy and collectWarnings using compat functions, and updated applyConnectionConfig to use a new helper.
  • extensions/bluebubbles/src/chat.ts
    • Refactored markBlueBubblesChatRead and sendBlueBubblesTyping to use a common endpoint request function.
  • extensions/bluebubbles/src/config-apply.ts
    • Added new file for applying BlueBubbles connection configuration.
  • extensions/bluebubbles/src/monitor-normalize.ts
    • Updated readNumberLike to use parseFiniteNumber.
  • extensions/bluebubbles/src/monitor-processing.ts
    • Updated pairing challenge logic to use issuePairingChallenge and mapAllowFromEntries.
  • extensions/bluebubbles/src/monitor.test.ts
    • Updated createMockAccount and createNewMessagePayload with pragma: allowlist secret and setRequestRemoteAddress.
  • extensions/bluebubbles/src/monitor.ts
    • Refactored webhook request pipeline to use withResolvedWebhookRequestPipeline.
  • extensions/bluebubbles/src/monitor.webhook-auth.test.ts
    • Updated createMockAccount with pragma: allowlist secret and added helper functions.
  • extensions/bluebubbles/src/onboarding.secret-input.test.ts
    • Updated mocks for bluebubbles plugin-sdk.
  • extensions/bluebubbles/src/onboarding.ts
    • Refactored setBlueBubblesDmPolicy and configure to use new compat functions.
  • extensions/bluebubbles/src/request-url.ts
    • Replaced local resolveRequestUrl with import from plugin-sdk.
  • extensions/bluebubbles/src/secret-input.ts
    • Replaced local buildSecretInputSchema with import from plugin-sdk.
  • extensions/bluebubbles/src/send.ts
    • Added parseBlueBubblesMessageResponse and refactored message sending.
  • extensions/copilot-proxy/package.json
    • Updated version.
  • extensions/diagnostics-otel/package.json
    • Updated OpenTelemetry dependencies.
  • extensions/diagnostics-otel/src/service.test.ts
    • Added pragma: allowlist secret comments to sensitive data in tests.
  • extensions/diffs/index.test.ts
    • Updated localReq to accept headers.
  • extensions/diffs/package.json
    • Updated version.
  • extensions/diffs/src/config.test.ts
    • Added FULL_DEFAULTS constant and updated tests.
  • extensions/diffs/src/http.test.ts
    • Added tests for proxy forwarding headers and remote access.
  • extensions/diffs/src/http.ts
    • Refactored viewer access resolution and remote failure handling.
  • extensions/diffs/src/tool.test.ts
    • Refactored PDF screenshotter creation.
  • extensions/feishu/package.json
    • Updated version.
  • extensions/feishu/src/accounts.test.ts
    • Added helper functions for env vars and SecretRef errors, and pragma: allowlist secret comments.
  • extensions/feishu/src/bot.test.ts
    • Updated pairing reply message assertions and pragma: allowlist secret comments.
  • extensions/feishu/src/bot.ts
    • Updated pairing challenge logic to use issuePairingChallenge.
  • extensions/feishu/src/channel.ts
    • Added setFeishuNamedAccountEnabled and refactored security warnings and status summary.
  • extensions/feishu/src/chat.test.ts
    • Added pragma: allowlist secret comments.
  • extensions/feishu/src/client.test.ts
    • Added pragma: allowlist secret comments and helper functions for HTTP timeout tests.
  • extensions/feishu/src/config-schema.test.ts
    • Added pragma: allowlist secret comments.
  • extensions/feishu/src/directory.test.ts
    • Added new test file for Feishu directory.
  • extensions/feishu/src/directory.ts
    • Refactored directory listing to use compat functions.
  • extensions/feishu/src/docx-batch-insert.test.ts
    • Added new test file for docx batch insert.
  • extensions/feishu/src/docx-batch-insert.ts
    • Refactored collectDescendants for efficiency.
  • extensions/feishu/src/docx.account-selection.test.ts
    • Added pragma: allowlist secret comments.
  • extensions/feishu/src/drive.ts
    • Replaced local json function with imports from tool-result.ts.
  • extensions/feishu/src/monitor.reaction.test.ts
    • Added helper functions for reaction tests and setDedupPassThroughMocks.
  • extensions/feishu/src/monitor.startup.test.ts
    • Updated mocks for probeFeishu and feishuClientMockModule.
  • extensions/feishu/src/monitor.test-mocks.ts
    • Added new mock functions for Feishu client and runtime.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/ci.yml
    • .github/workflows/codeql.yml
    • .github/workflows/docker-release.yml
Activity
  • The pull request was authored by linfangw.
  • The title 'Sync/upstream 2026 03 08' suggests a routine synchronization or merge from an upstream branch, indicating a collection of various updates and fixes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a wide range of improvements across the repository, including a major refactoring of the Android app's package structure, significant enhancements to the Dockerfile for smaller and more secure images, and various UI/UX and security hardening updates for the iOS and macOS applications. The Fastlane configuration for iOS deployment has also been substantially improved. However, critical security vulnerabilities were identified in the new acpx extension and the macOS browser proxy logic. Specifically, the acpx extension is vulnerable to arbitrary command execution via untrusted agent names and leaks secrets through process command-line arguments, and the macOS browser proxy introduces a risk of arbitrary file read if the local browser control service is manipulated. Additionally, a configuration issue with detect-secrets was found, involving redundant and partially incorrect filter patterns in the .pre-commit-config.yaml file. These security vulnerabilities and configuration issues should be addressed before merging.

cwd: params.cwd,
spawnOptions: params.spawnOptions,
});
return overrides[normalizedAgent] ?? ACPX_BUILTIN_AGENT_COMMANDS[normalizedAgent] ?? params.agent;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

security-critical critical

The acpx extension's resolveAcpxAgentCommand function falls back to using the provided agent name as a command if it is not found in the built-in commands or configured overrides. This agent name is then passed to mcp-proxy.mjs, which splits it into a command and arguments and executes it using child_process.spawn. Since the agent name can be influenced by Large Language Model (LLM) tool calls or remote gateway requests, an attacker can execute arbitrary binaries on the host system.

}),
"utf8",
).toString("base64url");
return toCommandLine([process.execPath, MCP_PROXY_PATH, "--payload", payload]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

security-high high

The acpx extension passes a base64url-encoded JSON payload to the mcp-proxy.mjs process as a command-line argument. This payload contains the configuration for MCP servers, including environment variables that often hold sensitive information such as API keys. Command-line arguments are visible to all users on the system (e.g., via the ps command), leading to the exposure of these secrets.

Comment on lines +217 to +233
let url = URL(fileURLWithPath: path)
let values = try url.resourceValues(forKeys: [.isRegularFileKey, .fileSizeKey])
guard values.isRegularFile == true else {
throw NSError(domain: "MacNodeBrowserProxy", code: 7, userInfo: [
NSLocalizedDescriptionKey: "browser proxy file not found: \(path)",
])
}
if let fileSize = values.fileSize, fileSize > Self.maxProxyFileBytes {
throw NSError(domain: "MacNodeBrowserProxy", code: 8, userInfo: [
NSLocalizedDescriptionKey: "browser proxy file exceeds 10MB: \(path)",
])
}

let data = try Data(contentsOf: url)
let mimeType = UTType(filenameExtension: url.pathExtension)?.preferredMIMEType
return ProxyFilePayload(path: path, base64: data.base64EncodedString(), mimeType: mimeType)
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

security-high high

The MacNodeBrowserProxy actor reads files from the local disk based on paths returned in the JSON response from a local browser control service. An attacker (e.g., a compromised or malicious gateway) can use the browser.proxy command to send arbitrary HTTP requests to the local service. If the local service can be tricked into returning a path to a sensitive file (e.g., via an echo endpoint or a download feature), the MacNodeBrowserProxy will read that file and return its content to the gateway. It is recommended to restrict file reading to a specific, allow-listed directory and validate that any path returned by the local service is within this allowed directory.

Comment thread .pre-commit-config.yaml
Comment on lines +52 to +71
- --exclude-lines
- '"secretShape": "(secret_input|sibling_ref)"'
- --exclude-lines
- 'API key rotation \(provider-specific\): set `\*_API_KEYS`'
- --exclude-lines
- 'password: `OPENCLAW_GATEWAY_PASSWORD` -> `gateway\.auth\.password` -> `gateway\.remote\.password`'
- --exclude-lines
- 'password: `OPENCLAW_GATEWAY_PASSWORD` -> `gateway\.remote\.password` -> `gateway\.auth\.password`'
- --exclude-files
- '^src/gateway/client\.watchdog\.test\.ts$'
- --exclude-lines
- 'export CUSTOM_API_K[E]Y="your-key"'
- --exclude-lines
- 'grep -q ''N[O]DE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache'' ~/.bashrc \|\| cat >> ~/.bashrc <<''EOF'''
- --exclude-lines
- 'env: \{ MISTRAL_API_K[E]Y: "sk-\.\.\." \},'
- --exclude-lines
- '"ap[i]Key": "xxxxx",'
- --exclude-lines
- 'ap[i]Key: "A[I]za\.\.\.",'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

These --exclude-lines appear to be redundant with the patterns defined in .detect-secrets.cfg. The detect-secrets tool automatically discovers and uses the .detect-secrets.cfg file, which makes these command-line arguments unnecessary and complicates configuration management.

Furthermore, some of the regular expressions are incorrect. For instance, on lines 57 and 59, the dots in gateway.auth.password are not escaped, causing them to act as wildcards. The passw[o]rd pattern, used in .detect-secrets.cfg to prevent self-detection, is also missing here.

To simplify the configuration and fix these issues, I recommend removing these redundant --exclude-lines and relying solely on .detect-secrets.cfg for all filter definitions.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.