Freshly shipped updates
2 updates in this release, covering 1 addition, 1 improvement.
- Improved
**SDKs and agent skills extracted to public repos** — the packages/sdk (TypeScript), packages/sdk-python, packages/sdk-go, and packages/skills directories have moved out of this private monorepo into separate public repos: sendry-js, sendry-python, sendry-go, sendry-skills.
Each gets its own CI + tag-driven publish workflow (npm with provenance, PyPI via OIDC trusted publisher, Go via tag push). Renamed leftover sendr Python package and Go package to sendry and updated stale sndr_live_ example keys to sn_live_. The OpenAPI drift snapshot moved from packages/sdk/openapi.{json,hash} to openapi/openapi.{json,hash} — sdk:snapshot / sdk:check now write/read there and the SDK Validation CI job is removed.
- Added
**Campaign recipients preview before send** — GET /v1/campaigns/:id/recipients now falls back to a preview drawn from the campaign's audience or segment when no campaign_recipients rows exist yet, so draft / scheduled campaigns show who the campaign will be sent to instead of an empty table.
Preview rows carry preview: true and a pending status; the dashboard recipients tab surfaces them with a "Pending send" badge and an info banner.