openclaw - ✅(Solved) Fix [Feature]: Title: Add image param to message event-create for Discord cover art [2 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#60889Fetched 2026-04-08 02:46:04
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Participants
Timeline (top)
cross-referenced ×2closed ×1labeled ×1referenced ×1

Discord events support cover images (https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event-json-params).

CLI: openclaw message event create --help → No --image.

Agent tool likely missing too. Add --image <path/url/base64> (like send/media).

Use case: Event promo w/ thumbnails.

Root Cause

Only occurs when agent creates events, because missing parameter

PR fix notes

PR #60883: feat: add cover image support to Discord event create

Description (problem / solution / changelog)

Summary

Discord scheduled events support cover images, but the CLI and agent tool have no way to provide one. This adds an optional --image parameter that accepts a URL or local file path, validates the image (PNG/JPG/GIF, max 8MB), and passes it to the Discord API.

No behavior change when the parameter is omitted.

Linked Issue

Closes #60889

Usage

CLI:

openclaw message event create --guild-id 123 --event-name "Show" --start-time 2026-04-10T20:00:00Z --image /path/to/cover.png

Agent tool:

{ "action": "event-create", "guildId": "123", "eventName": "Show", "startTime": "2026-04-10T20:00:00Z", "image": "https://example.com/cover.jpg" }

What changed

FileChange
extensions/discord/src/send.types.tsDISCORD_MAX_EVENT_COVER_BYTES constant (8MB)
extensions/discord/src/send.guild.tsresolveEventCoverImage - loads, validates, and converts to data URI
extensions/discord/src/send.tsBarrel export
extensions/discord/src/actions/runtime.tsForward options to guild action handler
extensions/discord/src/actions/runtime.guild.tsPass image and mediaLocalRoots through eventCreate case
extensions/discord/src/actions/handle-action.guild-admin.tsRead image param and forward with mediaLocalRoots
src/agents/tools/message-tool.tsAdded image to event schema
src/cli/program/message/register.discord-admin.tsAdded --image CLI option

Notes

  • Follows the same loadWebMediaRaw + MIME validation + data URI pattern as uploadEmojiDiscord
  • Threads mediaLocalRoots through the guild action path so configured local directories work
  • Backward compatible, no config or migration needed
  • Typecheck and formatting pass

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • extensions/discord/src/actions/handle-action.guild-admin.ts (modified, +4/-1)
  • extensions/discord/src/actions/runtime.guild.ts (modified, +10/-0)
  • extensions/discord/src/actions/runtime.ts (modified, +1/-1)
  • extensions/discord/src/send.guild.ts (modified, +21/-0)
  • extensions/discord/src/send.ts (modified, +1/-0)
  • extensions/discord/src/send.types.ts (modified, +1/-0)
  • src/agents/tools/message-tool.ts (modified, +3/-0)
  • src/cli/program/message/register.discord-admin.ts (modified, +1/-0)

PR #62647: feat: add cover image support to Discord event create

Description (problem / solution / changelog)

Add --image <path/url/base64> parameter for attaching cover art to Discord scheduled events, matching the existing send/media pattern.

Supports URLs, local file paths, and data URIs with MIME validation (PNG, JPG, GIF) and 8 MB size enforcement.

Closes #60889

Summary

Describe the problem and fix in 2–5 bullets:

If this PR fixes a plugin beta-release blocker, title it fix(<plugin-id>): beta blocker - <summary> and link the matching Beta blocker: <plugin-name> - <summary> issue labeled beta-blocker. Contributors cannot label PRs, so the title is the PR-side signal for maintainers and automation.

  • Problem:
  • Why it matters:
  • What changed:
  • What did NOT change (scope boundary):

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes #
  • Related #
  • This PR fixes a bug or regression

Root Cause (if applicable)

For bug fixes or regressions, explain why this happened, not just what changed. Otherwise write N/A. If the cause is unclear, write Unknown.

  • Root cause:
  • Missing detection / guardrail:
  • Contributing context (if known):

Regression Test Plan (if applicable)

For bug fixes or regressions, name the smallest reliable test coverage that should catch this. Otherwise write N/A.

  • Coverage level that should have caught this:
    • Unit test
    • Seam / integration test
    • End-to-end test
    • Existing coverage already sufficient
  • Target test or file:
  • Scenario the test should lock in:
  • Why this is the smallest reliable guardrail:
  • Existing test that already covers this (if any):
  • If no new test is added, why not:

User-visible / Behavior Changes

List user-visible changes (including defaults/config).
If none, write None.

Diagram (if applicable)

For UI changes or non-trivial logic flows, include a small ASCII diagram reviewers can scan quickly. Otherwise write N/A.

Before:
[user action] -> [old state]

After:
[user action] -> [new state] -> [result]

Security Impact (required)

  • New permissions/capabilities? (Yes/No)
  • Secrets/tokens handling changed? (Yes/No)
  • New/changed network calls? (Yes/No)
  • Command/tool execution surface changed? (Yes/No)
  • Data access scope changed? (Yes/No)
  • If any Yes, explain risk + mitigation:

Repro + Verification

Environment

  • OS:
  • Runtime/container:
  • Model/provider:
  • Integration/channel (if any):
  • Relevant config (redacted):

Steps

Expected

Actual

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios:
  • Edge cases checked:
  • What you did not verify:

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? (Yes/No)
  • Config/env changes? (Yes/No)
  • Migration needed? (Yes/No)
  • If yes, exact upgrade steps:

Risks and Mitigations

List only real risks for this PR. Add/remove entries as needed. If none, write None.

  • Risk:
    • Mitigation:

Changed files

  • extensions/discord/src/actions/handle-action.guild-admin.ts (modified, +2/-2)
  • extensions/discord/src/actions/runtime.guild.ts (modified, +5/-4)
  • extensions/discord/src/actions/runtime.test.ts (modified, +167/-0)
  • extensions/discord/src/actions/runtime.ts (modified, +1/-0)
  • extensions/discord/src/channel-actions.ts (modified, +2/-0)
  • extensions/discord/src/send.guild.ts (modified, +40/-11)
  • src/agents/tools/message-tool.ts (modified, +1/-3)
  • src/cli/program/message/register.discord-admin.ts (modified, +1/-1)
RAW_BUFFERClick to expand / collapse

Summary

Discord events support cover images (https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event-json-params).

CLI: openclaw message event create --help → No --image.

Agent tool likely missing too. Add --image <path/url/base64> (like send/media).

Use case: Event promo w/ thumbnails.

Problem to solve

Ability for agent to create events on discord with cover art

Proposed solution

Add parameter for base64 image

Alternatives considered

No response

Impact

Only occurs when agent creates events, because missing parameter

Evidence/examples

No response

Additional information

No response

extent analysis

TL;DR

Add an --image parameter to the openclaw message event create CLI command to support cover images for Discord events.

Guidance

  • Review the Discord API documentation for creating guild scheduled events to ensure the --image parameter is correctly implemented.
  • Verify that the --image parameter accepts a base64-encoded image, a file path, or a URL, similar to the send/media command.
  • Update the agent tool to include the --image parameter, allowing users to specify a cover image when creating events.
  • Test the updated CLI command and agent tool to ensure they correctly create events with cover images on Discord.

Example

openclaw message event create --image <path/to/image.png> --other-parameters

Note: Replace <path/to/image.png> with the actual file path or base64-encoded image.

Notes

The solution assumes that the Discord API supports creating events with cover images using a base64-encoded image, a file path, or a URL. If the API has specific requirements or limitations, the implementation may need to be adjusted accordingly.

Recommendation

Apply workaround: Add the --image parameter to the CLI command and update the agent tool to support creating events with cover images, as this is a specific and targeted solution to the identified problem.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING