From 973171ea539f2a351c7dc3a824049043cc948057 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 13:50:45 +0000 Subject: [PATCH] Version Packages --- .changeset/space-no-underscore.md | 18 ---------------- .changeset/space-uri-scheme.md | 20 ------------------ packages/contrail/CHANGELOG.md | 34 +++++++++++++++++++++++++++++++ packages/contrail/package.json | 2 +- packages/lexicons/CHANGELOG.md | 26 +++++++++++++++++++++++ packages/lexicons/package.json | 2 +- packages/sync/CHANGELOG.md | 34 +++++++++++++++++++++++++++++++ packages/sync/package.json | 2 +- 8 files changed, 97 insertions(+), 41 deletions(-) delete mode 100644 .changeset/space-no-underscore.md delete mode 100644 .changeset/space-uri-scheme.md diff --git a/.changeset/space-no-underscore.md b/.changeset/space-no-underscore.md deleted file mode 100644 index 10cea65..0000000 --- a/.changeset/space-no-underscore.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -"@atmo-dev/contrail": minor -"@atmo-dev/contrail-sync": minor ---- - -unify the per-space marker field on records as `space` everywhere. previously `listRecords` / `getRecord` HTTP responses used `space: ` while watch events and `WatchRecord` exposed it as `_space`. the underscored form was inconsistent with the surrounding fields (`uri`, `cid`, `did`, etc.) and forced consumers to remember which path produced which name. - -**breaking.** anywhere you read `r._space` on a `WatchRecord` (or a watch event payload's `record._space` / `child._space`), rename to `r.space`. drop-in. - -```ts -// before -if (record._space) ... - -// after -if (record.space) ... -``` - -no migration needed for `listRecords` / `getRecord` consumers — that path was already `space`. diff --git a/.changeset/space-uri-scheme.md b/.changeset/space-uri-scheme.md deleted file mode 100644 index b2c1a20..0000000 --- a/.changeset/space-uri-scheme.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -"@atmo-dev/contrail": minor -"@atmo-dev/contrail-sync": minor -"@atmo-dev/contrail-lexicons": minor ---- - -permissioned spaces now use the `ats://` scheme instead of `at://`. tracks the [permissioned data spec](https://dholms.leaflet.pub/3mhj6bcqats2o), which floats `ats://` as a distinct scheme so spaces can't be confused with atproto record URIs at any layer (logs, query params, dispatch, error messages). - -``` -- at://did:plc:alice/com.example.event.space/birthday -+ ats://did:plc:alice/com.example.event.space/birthday -``` - -what changed: -- `buildSpaceUri` / `parseSpaceUri` (`@atmo-dev/contrail`) emit / accept `ats://`. anything else returns `null` from `parseSpaceUri`. -- generated lexicons no longer claim `format: "at-uri"` on `spaceUri` params, on the `space` record-output field, or on `spaceView.uri` — they're plain `string`. (atproto's `at-uri` format would reject `ats://`.) regenerate committed `lexicons/generated/*` with `contrail-lex generate`; downstream `lex-cli generate` then emits `v.string()` instead of `v.resourceUriString()` for those fields. -- realtime topics are unchanged in shape (`space:`), but `` is now an `ats://` URI. -- record URIs (the `uri` on a record, the `appPolicyRef` field, `notifyOfUpdate` payloads) keep `at://` — those are still atproto record URIs. - -**breaking.** anywhere you build a space URI by string concatenation (`` `at://${did}/${type}/${key}` ``), switch to `ats://` or call `buildSpaceUri()`. anywhere you persist space URIs in your own DB, migrate (`UPDATE … SET space_uri = REPLACE(space_uri, 'at://', 'ats://') WHERE space_uri LIKE 'at://%'`). diff --git a/packages/contrail/CHANGELOG.md b/packages/contrail/CHANGELOG.md index 092800c..90cf2f8 100644 --- a/packages/contrail/CHANGELOG.md +++ b/packages/contrail/CHANGELOG.md @@ -1,5 +1,39 @@ # @atmo-dev/contrail +## 0.4.0 + +### Minor Changes + +- 469bf65: unify the per-space marker field on records as `space` everywhere. previously `listRecords` / `getRecord` HTTP responses used `space: ` while watch events and `WatchRecord` exposed it as `_space`. the underscored form was inconsistent with the surrounding fields (`uri`, `cid`, `did`, etc.) and forced consumers to remember which path produced which name. + + **breaking.** anywhere you read `r._space` on a `WatchRecord` (or a watch event payload's `record._space` / `child._space`), rename to `r.space`. drop-in. + + ```ts + // before + if (record._space) ... + + // after + if (record.space) ... + ``` + + no migration needed for `listRecords` / `getRecord` consumers — that path was already `space`. + +- 469bf65: permissioned spaces now use the `ats://` scheme instead of `at://`. tracks the [permissioned data spec](https://dholms.leaflet.pub/3mhj6bcqats2o), which floats `ats://` as a distinct scheme so spaces can't be confused with atproto record URIs at any layer (logs, query params, dispatch, error messages). + + ``` + - at://did:plc:alice/com.example.event.space/birthday + + ats://did:plc:alice/com.example.event.space/birthday + ``` + + what changed: + + - `buildSpaceUri` / `parseSpaceUri` (`@atmo-dev/contrail`) emit / accept `ats://`. anything else returns `null` from `parseSpaceUri`. + - generated lexicons no longer claim `format: "at-uri"` on `spaceUri` params, on the `space` record-output field, or on `spaceView.uri` — they're plain `string`. (atproto's `at-uri` format would reject `ats://`.) regenerate committed `lexicons/generated/*` with `contrail-lex generate`; downstream `lex-cli generate` then emits `v.string()` instead of `v.resourceUriString()` for those fields. + - realtime topics are unchanged in shape (`space:`), but `` is now an `ats://` URI. + - record URIs (the `uri` on a record, the `appPolicyRef` field, `notifyOfUpdate` payloads) keep `at://` — those are still atproto record URIs. + + **breaking.** anywhere you build a space URI by string concatenation (`` `at://${did}/${type}/${key}` ``), switch to `ats://` or call `buildSpaceUri()`. anywhere you persist space URIs in your own DB, migrate (`UPDATE … SET space_uri = REPLACE(space_uri, 'at://', 'ats://') WHERE space_uri LIKE 'at://%'`). + ## 0.3.0 ### Minor Changes diff --git a/packages/contrail/package.json b/packages/contrail/package.json index 4b6db28..5571988 100644 --- a/packages/contrail/package.json +++ b/packages/contrail/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail", - "version": "0.3.0", + "version": "0.4.0", "description": "Index AT Protocol records with typed XRPC endpoints. Cloudflare Workers + D1, SvelteKit, Node.js.", "type": "module", "sideEffects": false, diff --git a/packages/lexicons/CHANGELOG.md b/packages/lexicons/CHANGELOG.md index d0f0e74..605796e 100644 --- a/packages/lexicons/CHANGELOG.md +++ b/packages/lexicons/CHANGELOG.md @@ -1,5 +1,31 @@ # @atmo-dev/contrail-lexicons +## 0.4.0 + +### Minor Changes + +- 469bf65: permissioned spaces now use the `ats://` scheme instead of `at://`. tracks the [permissioned data spec](https://dholms.leaflet.pub/3mhj6bcqats2o), which floats `ats://` as a distinct scheme so spaces can't be confused with atproto record URIs at any layer (logs, query params, dispatch, error messages). + + ``` + - at://did:plc:alice/com.example.event.space/birthday + + ats://did:plc:alice/com.example.event.space/birthday + ``` + + what changed: + + - `buildSpaceUri` / `parseSpaceUri` (`@atmo-dev/contrail`) emit / accept `ats://`. anything else returns `null` from `parseSpaceUri`. + - generated lexicons no longer claim `format: "at-uri"` on `spaceUri` params, on the `space` record-output field, or on `spaceView.uri` — they're plain `string`. (atproto's `at-uri` format would reject `ats://`.) regenerate committed `lexicons/generated/*` with `contrail-lex generate`; downstream `lex-cli generate` then emits `v.string()` instead of `v.resourceUriString()` for those fields. + - realtime topics are unchanged in shape (`space:`), but `` is now an `ats://` URI. + - record URIs (the `uri` on a record, the `appPolicyRef` field, `notifyOfUpdate` payloads) keep `at://` — those are still atproto record URIs. + + **breaking.** anywhere you build a space URI by string concatenation (`` `at://${did}/${type}/${key}` ``), switch to `ats://` or call `buildSpaceUri()`. anywhere you persist space URIs in your own DB, migrate (`UPDATE … SET space_uri = REPLACE(space_uri, 'at://', 'ats://') WHERE space_uri LIKE 'at://%'`). + +### Patch Changes + +- Updated dependencies [469bf65] +- Updated dependencies [469bf65] + - @atmo-dev/contrail@0.4.0 + ## 0.3.0 ### Minor Changes diff --git a/packages/lexicons/package.json b/packages/lexicons/package.json index 6b5e03d..3bcab5d 100644 --- a/packages/lexicons/package.json +++ b/packages/lexicons/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-lexicons", - "version": "0.3.0", + "version": "0.4.0", "description": "Generate atproto lexicon JSON (and optionally TypeScript types via @atcute/lex-cli) from a Contrail config.", "type": "module", "files": [ diff --git a/packages/sync/CHANGELOG.md b/packages/sync/CHANGELOG.md index cff3b46..f570219 100644 --- a/packages/sync/CHANGELOG.md +++ b/packages/sync/CHANGELOG.md @@ -1,5 +1,39 @@ # @atmo-dev/contrail-sync +## 0.4.0 + +### Minor Changes + +- 469bf65: unify the per-space marker field on records as `space` everywhere. previously `listRecords` / `getRecord` HTTP responses used `space: ` while watch events and `WatchRecord` exposed it as `_space`. the underscored form was inconsistent with the surrounding fields (`uri`, `cid`, `did`, etc.) and forced consumers to remember which path produced which name. + + **breaking.** anywhere you read `r._space` on a `WatchRecord` (or a watch event payload's `record._space` / `child._space`), rename to `r.space`. drop-in. + + ```ts + // before + if (record._space) ... + + // after + if (record.space) ... + ``` + + no migration needed for `listRecords` / `getRecord` consumers — that path was already `space`. + +- 469bf65: permissioned spaces now use the `ats://` scheme instead of `at://`. tracks the [permissioned data spec](https://dholms.leaflet.pub/3mhj6bcqats2o), which floats `ats://` as a distinct scheme so spaces can't be confused with atproto record URIs at any layer (logs, query params, dispatch, error messages). + + ``` + - at://did:plc:alice/com.example.event.space/birthday + + ats://did:plc:alice/com.example.event.space/birthday + ``` + + what changed: + + - `buildSpaceUri` / `parseSpaceUri` (`@atmo-dev/contrail`) emit / accept `ats://`. anything else returns `null` from `parseSpaceUri`. + - generated lexicons no longer claim `format: "at-uri"` on `spaceUri` params, on the `space` record-output field, or on `spaceView.uri` — they're plain `string`. (atproto's `at-uri` format would reject `ats://`.) regenerate committed `lexicons/generated/*` with `contrail-lex generate`; downstream `lex-cli generate` then emits `v.string()` instead of `v.resourceUriString()` for those fields. + - realtime topics are unchanged in shape (`space:`), but `` is now an `ats://` URI. + - record URIs (the `uri` on a record, the `appPolicyRef` field, `notifyOfUpdate` payloads) keep `at://` — those are still atproto record URIs. + + **breaking.** anywhere you build a space URI by string concatenation (`` `at://${did}/${type}/${key}` ``), switch to `ats://` or call `buildSpaceUri()`. anywhere you persist space URIs in your own DB, migrate (`UPDATE … SET space_uri = REPLACE(space_uri, 'at://', 'ats://') WHERE space_uri LIKE 'at://%'`). + ## 0.3.0 ### Minor Changes diff --git a/packages/sync/package.json b/packages/sync/package.json index f23cde0..ef9e485 100644 --- a/packages/sync/package.json +++ b/packages/sync/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-sync", - "version": "0.3.0", + "version": "0.4.0", "description": "Client-side reactive watch-store over contrail's watchRecords endpoints. SSE + WebSocket transports, optimistic updates, optional IndexedDB cache.", "type": "module", "sideEffects": false, -- 2.51.2