Skip to content

Add carousel sends media headers and mixed interactive controls - #75

Open
purpshell wants to merge 7 commits into
mainfrom
codex/interactive-message-buttons
Open

purpshell wants to merge 7 commits into
mainfrom
codex/interactive-message-buttons

Conversation

@purpshell

@purpshell purpshell commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Add typed carousel sends, image/video/document button headers and mixed reply/URL/call controls. Validate card media, control bounds and stable reply IDs before one HTTP send. Reject unsupported card footers; the outer carousel retains its footer.

The source contract still pins SDK #345 at 77dc45bd8a5ae592b0f76563d303738b2c0c3426 with publication disabled. The installed registry dependency is unchanged and lacks the required exports, so clean builds remain blocked. No raw-transport workaround or invented package version.

Fresh footer regression added; it has not run because the serialized qualification request expired before starting. Prior-head Node/Windows CI failed in the known SDK dependency build gate; successor natural CI must qualify this head. Smallest next action: supply an authorized matching published SDK version and update the registry dependency/lock, then run clean qualification. Package publication itself is outside this task.

Draft. No API, Admin, billing/Usage, tracking, onboarding or feature-availability change. Merge and release remain with Release.

@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

The included review limit has been reached and this organization has disabled usage-based review continuation. Wait for reviews to reset or ask a billing admin to change After included review limits.

  • Ask an admin to enable usage-based reviews

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Next included review available in 11 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available. Your 56 included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Team
  • Run ID: 80fb02fa-f9fc-4ea1-9060-651c8c289152
Commits

Reviewing files that changed from the base of the PR and between a9a19cd and 82943f6.

Files selected for processing: 7
  • README.md
  • contracts/interactive-messages.json
  • scripts/prepare-release.mjs
  • src/commands/message/send/buttons.ts
  • src/commands/message/send/carousel.ts
  • src/services/message-content.ts
  • test/commands/message-sends.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@purpshell purpshell changed the title Support catalog buttons and valid interactive combinations Add carousel sends media headers and mixed interactive controls Oct 14, 2026
@purpshell
purpshell force-pushed the codex/interactive-message-buttons branch from a4280c5 to 3fcec37 Compare October 28, 2026 04:46
sdks#345 was reconciled with SDK main 4357c53b and rebound its doc snippets;
its head is now 77dc45bd. The installed registry SDK pin and release hold are
unchanged.
@purpshell
purpshell marked this pull request as ready for review October 31, 2026 04:46
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-31T04:48:54.438138Z 82943f6 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-31T04:48:37.665187Z 82943f6 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 82943f61eb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

base64: z
.string()
.min(1)
.regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate large base64 sources without recursive regex matching

For carousel cards containing several megabytes of inline media, this regex throws RangeError: Maximum call stack size exceeded instead of accepting valid base64. On the available Node 24 runtime, evaluating this exact expression against 'A'.repeat(5_000_000) reproduces the failure; a carousel containing that source and a second small card remains below the documented 10 MiB JSON-input cap. Since safeParse does not catch exceptions thrown by regex evaluation, these otherwise valid sends fail before transport. Use a stack-safe character/padding validation and length check, and add a regression covering a multi-megabyte source.

Useful? React with 👍 / 👎.

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