Skip to content

release: 3.12.0#72

Open
stainless-app[bot] wants to merge 3 commits into
mainfrom
release-please--branches--main--changes--next
Open

release: 3.12.0#72
stainless-app[bot] wants to merge 3 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app

@stainless-app stainless-app Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Automated Release PR

3.12.0 (2026-07-14)

Full Changelog: v3.11.2...v3.12.0

Features

  • Document POST /notifications/{id}/duplicate [C-18607] (#165) (3e1c7f9)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

stainless-app Bot and others added 3 commits July 13, 2026 14:32
* Document POST /notifications/{id}/duplicate [C-18607]

Documents the V2 notification template duplicate endpoint added in
trycourier/backend#9536 and registers it for SDK generation.

- openapi.yml: new /notifications/{id}/duplicate path (post,
  operationId notifications_duplicate), modeled on the sibling publish
  endpoint. 201 -> NotificationTemplateResponse, 404 -> NotFound,
  422 -> UnprocessableEntity (source is journey- or broadcast-scoped).
- stainless.yml: adds duplicate: post /notifications/{id}/duplicate so a
  duplicate() method generates across the SDKs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Use real TypeID-style example IDs + add id-conventions.md

The duplicate endpoint example used placeholder IDs (nt_01xyz789,
brand_abc, marketing, nt_123, journey_abc) that don't match the
TypeID convention the rest of the spec follows. Swap them for real
canonical sample IDs (nt_/bnd_/pt_/jry_).

Add specs/id-conventions.md documenting the prefix registry (sourced
from backend lib/courier-ids/constants.ts), the canonical sample IDs to
reuse, and two open questions (journey jry vs jny; brand bnd not yet in
the backend registry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Move ID conventions from specs/ into an example-ids skill

specs/ is for the shipped spec, not editor/agent guidance. Relocate the
convention reference to .agents/skills/example-ids/SKILL.md (surfaced via
the .claude/.cursor/.codex skills symlinks) so it triggers when editing
openapi.yml examples.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@stainless-app

stainless-app Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

🧪 Testing

To try out this version of the SDK:

Download and unzip: 'https://pkg.stainless.com/s/courier-cli/3e1c7f937cdef899737f99a5b3d5563ce2314ebf/dist.zip'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.

Expires at: Thu, 13 Aug 2026 18:41:55 GMT
Updated at: Tue, 14 Jul 2026 18:41:55 GMT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

0 participants