Skip to content

feat: Discord transport#32

Closed
thewilloftheshadow wants to merge 4 commits intoopenclaw:mainfrom
thewilloftheshadow:shadow/discord-transport
Closed

feat: Discord transport#32
thewilloftheshadow wants to merge 4 commits intoopenclaw:mainfrom
thewilloftheshadow:shadow/discord-transport

Conversation

@thewilloftheshadow
Copy link
Member

@thewilloftheshadow thewilloftheshadow commented Dec 15, 2025

  • Introduced a discord.js-based provider (src/discord/*) that ingests DM/guild messages, saves media, updates session routing, and delivers agent replies via the Discord REST API.
  • Wired Discord through gateway, CLI, cron, and UI schemas: --provider discord works for clawdis send/agent, cron jobs can target channel=discord, and macOS cron picker gained the new option. Gateway startup, session routing, and send RPC support the new provider.
  • Updated docs/configs (README, config guide, new docs/discord.md, etc.) so setup is documented, plus added tests covering the Discord helpers.
  • Added a Surface key to the payload to accurately label platforms in the session intros

@thewilloftheshadow thewilloftheshadow marked this pull request as ready for review December 15, 2025 16:13
@steipete
Copy link
Contributor

Thank you for this pull request. This is certainly an interesting addition. I do worry that the current security decisions we have here are not a fit for Discord (unless you use it as the only person). In order for that to be merged and make me feel comfortable, we first need to add proper Dockerization and change the security model of Claude so it has more guardrails. Especially if this is then going to be used by a team. But would love to hear your thoughts on this.

@thewilloftheshadow
Copy link
Member Author

For sure! I primarily envision using this myself in my personal server, which is just me and a few other private bots, where I can keep notes for myself and work across multiple devices, and don't see myself personally using it within a multi-user context, similarly to the existing group chat support, but primarily using it with DMs.

The reason I wouldn't use it in true DMs on Discord is because I can work across multiple contexts at once via multiple channels within the discord server.

@thewilloftheshadow thewilloftheshadow marked this pull request as draft December 21, 2025 06:21
@thewilloftheshadow
Copy link
Member Author

thewilloftheshadow commented Dec 21, 2025

@steipete would you be interested in me narrowing the scope of this to solely DMs for now, and waiting to look at server support after more guardrails/etc has been added down the road? Definitely hoping to have Discord support at some point since I want to use this, but don't use Whatsapp or Telegram

@steipete
Copy link
Contributor

I haven't forgotten about this - wanted to drive the rest forward first to ship instead of dyning in feature creep.

@steipete
Copy link
Contributor

landed on main. Thanks for the help!

@steipete steipete closed this Dec 26, 2025
@thewilloftheshadow thewilloftheshadow deleted the shadow/discord-transport branch December 28, 2025 08:12
dgarson referenced this pull request in dgarson/clawdbot Feb 2, 2026
docs: Add GraphRAG entity extraction & knowledge graph proposal
frodo-harborbot added a commit to harborworks/openclaw that referenced this pull request Feb 16, 2026
* Add recommended variables section and config-linked secrets

Frontend:
- Split into Required (ANTHROPIC_API_KEY), Recommended (BRAVE_SEARCH, OPENAI),
  and Custom Variables sections
- New 'recommended' category

Convex:
- Added 'recommended' to secrets category union

Daemon:
- CONFIG_PATCHES map: known secrets that need gateway config changes
  (BRAVE_SEARCH_API_KEY → tools.web.search, TELEGRAM_BOT_TOKEN → channels+plugins)
- syncSecrets now applies config patches via WS before restarting gateway
- Config patches are deep-merged when multiple config-linked secrets are set

* Add docker-compose.dev.yml for local development with local images

* Fix docker-compose.dev.yml: add frontend service, use gateway/Dockerfile for local builds

* Fix frontend Dockerfile: include root deps and convex generated files

* Implement secret deletion: remove from .env and un-patch config

Convex:
- remove mutation now sets pendingDelete flag instead of deleting doc
- New internal query listPendingDeletesInternal + deleteInternal mutation
- New HTTP endpoints: GET /api/daemon/secrets/deletes, POST /api/daemon/secrets/deleted

Daemon:
- syncSecrets now polls for pending deletions after processing new secrets
- Removes deleted vars from .env file
- Applies CONFIG_REMOVALS patches for config-linked secrets (disables/clears)
- Confirms deletion to Convex (deletes the doc)
- Gateway restarts if any secrets were added or removed

* Fix delete: filter pendingDelete from list query, quote env values

- list query now excludes secrets with pendingDelete=true so they
  disappear from UI immediately on delete
- Env file values wrapped in single quotes to handle spaces

* Fix env file quoting: no wrapping, strip quotes on read

API keys don't have spaces. Previous single-quote escaping was
compounding on each read/write cycle. Now writes plain KEY=value
and strips any leftover quotes when reading.

* Wrap env values in double quotes with proper escaping

* Add delete button to recommended variables when set
songliu0403-rgb pushed a commit to songliu0403-rgb/openclaw that referenced this pull request Feb 26, 2026
ddupg pushed a commit to ddupg/openclaw that referenced this pull request Feb 27, 2026
添加 ensureModelInput() 防御性函数,确保 model.input 始终为数组,
防止上游 SDK 中 model.input.includes() 调用时因 undefined 而崩溃。

Fixes openclaw#32
Piboonsak added a commit to Piboonsak/openclaw_github that referenced this pull request Mar 3, 2026
Config changes (openclaw#33):
- Switch primary model to anthropic/claude-sonnet-4-5 (Claude Sonnet 4.6)
- Add model to deploy.sh post-deploy config, update fallback chain

Nginx changes (openclaw#32, openclaw#21):
- Increase /line/ proxy_read_timeout from 120s to 300s for complex agent responses

Docker build (openclaw#39):
- Enable OPENCLAW_INSTALL_BROWSER=1 build-arg to include Chromium in image

Deploy pipeline fix:
- deploy-vps.yml now actually applies nginx config (was only staging to .new)
- Added backup + rollback safety for nginx config changes
- Removed broken nginx path from deploy.sh (was referencing wrong VPS path)

Issues addressed: openclaw#9, openclaw#20, openclaw#21, openclaw#22, openclaw#23, openclaw#32, openclaw#33, openclaw#37, openclaw#39, openclaw#42, openclaw#45, openclaw#46
Piboonsak added a commit to Piboonsak/openclaw_github that referenced this pull request Mar 3, 2026
LINE OA users were getting 'access not configured' pairing prompt instead of
AI responses. The channels.line.dmPolicy was set to 'pairing', requiring each
user to be individually approved - impractical for a public-facing LINE OA.

Changes:
- config/openclaw.prod.json5: channels.line.dmPolicy -> 'open'
- docker/deploy.sh: add post-deploy step to set dmPolicy=open on VPS

Refs: openclaw#32
Piboonsak added a commit to Piboonsak/openclaw_github that referenced this pull request Mar 3, 2026
…E OA

- Add channels.line.dmPolicy=open to deploy.sh post-deploy config
- Update openclaw.prod.json5 template with open policy and KI-013 reference
- Fixes: LINE OA users blocked by pairing requirement (KI-013)

Refs: KI-013, openclaw#32
elliot-ylambda added a commit to elliot-ylambda/magister-openclaw that referenced this pull request Mar 7, 2026
…dcast

Add email broadcast system and first waitlist update
CoffeeNoir pushed a commit to CoffeeNoir/openclaw that referenced this pull request Mar 8, 2026
…ntation

- PathOverviewPage: completion badge, CTA (Start/Continue/Review), offline cache
- PathDetailPage: module list with status badges, 'next up' highlight, offline cache
- App.tsx: add /paths/:pathId route
- i18n: DE/EN keys for all new strings (offline banner, badges, CTA, module status)
- Responsive layout (max-width 768px, works on iPhone 12 + iPad)
- Accessibility: role=progressbar, aria-labels, role=status/alert
AngryAnt3201 added a commit to AngryAnt3201/openclaw that referenced this pull request Mar 9, 2026
…tool, outbound

- openclaw#12: Add Zod schema validation to credential store JSON.parse calls,
  returning empty/default store on validation failure instead of trusting
  untrusted data via type assertion.
- openclaw#26: Add Zod schema validation to browser-tool proxy responses,
  throwing descriptive error on malformed data instead of propagating it.
- openclaw#32: Add URL redaction (key, token, secret, api_key, apikey,
  access_token, auth, password, client_secret query params) and
  Authorization header redaction to outbound payload log formatting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

2 participants