Skip to content

feat(openclaw): update sandbox with Slack support, expanded policies, WS proxy patch#53

Open
mjamiv wants to merge 1 commit intoNVIDIA:mainfrom
mjamiv:feat/openclaw-sandbox-update
Open

feat(openclaw): update sandbox with Slack support, expanded policies, WS proxy patch#53
mjamiv wants to merge 1 commit intoNVIDIA:mainfrom
mjamiv:feat/openclaw-sandbox-update

Conversation

@mjamiv
Copy link

@mjamiv mjamiv commented Mar 26, 2026

Summary

Updates the sandboxes/openclaw/ directory with battle-tested configurations for running OpenClaw with Slack Socket Mode, multiple LLM providers, and full gateway lifecycle management inside OpenShell sandboxes.

Changes

policy.yaml — Expanded network policies

  • 12 service policies covering Anthropic, OpenAI, Google, Telegram, Slack (REST + Socket Mode), GitHub, npm/PyPI registries, Brave Search, OpenRouter, and LinkedIn
  • Separate slack and slack_websocket policies with documented rationale for the split (tls: skip on WS endpoints prevents the L7 proxy from breaking Socket Mode)
  • Comments explaining the *.slack.com wildcard gotcha on OpenShell ≤ 0.0.15

openclaw-ws-proxy-patch.jsNew file

  • Monkey-patches the ws WebSocket constructor to tunnel Slack Socket Mode connections through the OpenShell CONNECT proxy
  • Required because the ws library does not natively support HTTP CONNECT proxies for WebSocket upgrades
  • Related: #387 (feature request for native WebSocket proxy support in OpenShell)

openclaw-slack-manifest.yamlNew file

  • Complete Slack app manifest (23 bot scopes, 12 events, Socket Mode enabled)
  • Paste into api.slack.com/apps for one-click app creation

Dockerfile

  • Bumps openclaw@2026.3.11openclaw@latest
  • Copies WS proxy patch and Slack manifest into the image
  • Sets NODE_OPTIONS="--require /sandbox/openclaw-ws-proxy-patch.js" to auto-load the patch

openclaw-start.sh — Rewritten as lifecycle manager

  • openclaw-start — onboard + start gateway (default)
  • openclaw-start pair CODE — approve Slack/Telegram pairing
  • openclaw-start stop / status / logs — full gateway management
  • Uses nohup so the gateway survives SSH disconnects
  • Uses openclaw gateway run (foreground mode under nohup) instead of service-manager commands

README.md

  • Documents all new features, policy coverage table, Slack setup guide
  • Explains WebSocket proxy patch and why it is needed
  • Troubleshooting section for CoreDNS, WS disconnects, and gateway issues

Testing

These configurations have been tested end-to-end on a live OpenShell deployment with:

  • Slack Socket Mode (bot DMs, channel mentions, reactions)
  • Multiple LLM providers (Anthropic, OpenAI) through the CONNECT proxy
  • Gateway persistence across SSH disconnects via nohup
  • CoreDNS patching for external DNS resolution

… WS proxy patch

- policy.yaml: Add network policies for Anthropic, OpenAI, Google, Telegram,
  Slack (REST + Socket Mode), GitHub, npm/PyPI, Brave Search, OpenRouter,
  LinkedIn. Document the Slack wildcard gotcha and tls:skip requirement.

- openclaw-ws-proxy-patch.js: New file. Monkey-patches the ws WebSocket
  constructor to tunnel Slack Socket Mode connections through the OpenShell
  CONNECT proxy. Required until native WS proxy support lands (see #387).

- openclaw-slack-manifest.yaml: New file. Complete Slack app manifest with
  23 bot scopes and 12 events for one-click app creation.

- Dockerfile: Bump openclaw to @latest, add WS proxy patch and Slack
  manifest, set NODE_OPTIONS to auto-load the patch.

- openclaw-start.sh: Rewrite as a full lifecycle manager with subcommands
  (start, stop, status, logs, pair). Uses nohup for gateway persistence
  across SSH disconnects.

- README.md: Document all new features, policy coverage, Slack setup guide,
  WS proxy explanation, and troubleshooting section.
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.

1 participant