Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .changeset/one-version-five-sdks.md

This file was deleted.

22 changes: 22 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# @smooai/observability

## 0.19.2

### Patch Changes

- bdd092f: Every event this SDK has ever sent reported `sdk.version: "0.1.0"`.

`packages/core/src/client.ts` hard-coded `SDK_VERSION = '0.1.0'` while the published package walked from 0.1.0 to 0.19.0. Eighteen minor releases of events landed in the backend labelled with the version of the first one, so "which SDK version produced this event?" β€” the question the field exists to answer β€” has been unanswerable for the entire life of the package. The Rust, Python, Go and .NET ports all carried the same frozen constant.

The constant is now derived, not typed. `scripts/sync-versions.mjs` treats `packages/core/package.json` as the single source of truth and writes it into all eleven version-bearing files across the five SDKs β€” manifests (`Cargo.toml`, `pyproject.toml`, `.csproj`), lockfiles (`Cargo.lock`, `uv.lock`), and the reported-version constants in each language.

It runs in the changesets **`version`** lifecycle, not after publish:

```jsonc
"version": "changeset version && node scripts/sync-versions.mjs"
```

That ordering is the fix, not a detail. The changesets action commits the working tree after `version`, so the synced files land in the release commit and every tag carries the versions it claims. Syncing after `publish` β€” the pattern in the sibling repos β€” mutates manifests in a CI workspace that is never committed, which is why those repos need `cargo publish --allow-dirty` to paper over the dirt.

A `--check` mode runs on **every** PR (`pr-checks.yml`, deliberately not path-filtered) and fails on any mismatch. A `TARGETS` row whose pattern matches zero times, or more than once, is a hard error too β€” a silently-skipped target is the exact failure this script exists to prevent.

One version across languages is the org's existing convention, not a new invention: `@smooai/fetch` is 3.4.1 on npm, crates.io and PyPI alike. The four unreleased SDKs are therefore set to 0.19.0 rather than starting over at 0.1.0.

## 0.19.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@smooai/observability",
"version": "0.19.1",
"version": "0.19.2",
"description": "Smoo AI Observability SDK β€” OTel-first error capture, traces, metrics, and React/Next.js integrations in a single package with subpath exports",
"homepage": "https://github.com/SmooAI/observability",
"bugs": {
Expand Down
Loading