docs(mcp): document scheduledAt window and raw-email required fields - #100
Merged
Conversation
Bring the send-tool schema guidance in line with the hosted API's validation so MCP agents and CLI users learn the constraint at the schema level, before a rejected send: - scheduledAt now states the timestamp must be in the future and at most 30 days ahead (with a nudge to check the current date first). This shared field flows through senderkit_send and senderkit_send_raw, their manifest-derived CLI help, and the SDK README. - senderkit_send_raw subject and html now say they are required when the channel is email; a text-only email send is rejected, so plain text should be wrapped in minimal HTML. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XCeS6cafCLddV6dakQCKC9
…ories The `pnpm audit --audit-level=moderate` CI gate started failing on two freshly-published high advisories affecting transitive deps — breaking main and every open PR regardless of content: - js-yaml >=4.0.0 <4.3.1 (quadratic CPU on !!omap): the existing override floor sat at >=4.3.0, one patch below the fix. Bumped to >=4.3.1. - nanoid <3.3.17 (custom generators can loop indefinitely): pulled in via postcss under next/vite; no override existed. Added nanoid >=3.3.17 <4 (the whole tree resolves nanoid 3.x). Lockfile now resolves js-yaml 4.3.1 and nanoid 3.3.18. `pnpm audit --audit-level=moderate` is clean; frozen install, build, test:coverage, and recursive typecheck all pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XCeS6cafCLddV6dakQCKC9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the send-tool schema guidance in line with the hosted API's validation, so MCP agents and CLI users learn the constraints at the schema level — before a rejected send — instead of after a
400. Documentation/guidance only; no wire-format or behavior change.MCP (
senderkit_send,senderkit_send_raw)scheduledAtnow states that the timestamp must be in the future and at most 30 days ahead, with a nudge to check the current date before computing it. This shared field description flows through both send tools.senderkit_send_rawsubject/htmlnow say they are required when the channel isemail: a text-only email send is rejected, so plain text should be wrapped in minimal HTML.CLI
The
senderkit send/senderkit send-rawhelp text is derived from the same manifest schema, so the sharpenedscheduledAt,subject, andhtmldescriptions surface automatically in--help.SDK (README)
The scheduling section of the SDK README now notes that
scheduledAtmust be in the future and at most 30 days ahead and that the API rejects a past or too-distant timestamp with400.Notes
@senderkit/sdk+@senderkit/cli, patch).pnpm typecheck,build, andtestpass for@senderkit/sdkand@senderkit/cli(86 + 87 tests).🤖 Generated with Claude Code
Generated by Claude Code