From 653a39b7089ac5d56c09256435865f2c02fea1b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:51:52 +0000 Subject: [PATCH] Version Packages --- .../fts-no-duplicate-rows-on-backfill.md | 17 -------------- packages/contrail-appview/CHANGELOG.md | 22 +++++++++++++++++++ packages/contrail-appview/package.json | 2 +- packages/contrail-authority/CHANGELOG.md | 6 +++++ packages/contrail-authority/package.json | 2 +- packages/contrail-base/CHANGELOG.md | 2 ++ packages/contrail-base/package.json | 2 +- packages/contrail-community/CHANGELOG.md | 7 ++++++ packages/contrail-community/package.json | 2 +- packages/contrail-record-host/CHANGELOG.md | 6 +++++ packages/contrail-record-host/package.json | 2 +- packages/contrail/CHANGELOG.md | 10 +++++++++ packages/contrail/package.json | 2 +- packages/lexicons/CHANGELOG.md | 6 +++++ packages/lexicons/package.json | 2 +- packages/sync/CHANGELOG.md | 2 ++ packages/sync/package.json | 2 +- 17 files changed, 69 insertions(+), 25 deletions(-) delete mode 100644 .changeset/fts-no-duplicate-rows-on-backfill.md diff --git a/.changeset/fts-no-duplicate-rows-on-backfill.md b/.changeset/fts-no-duplicate-rows-on-backfill.md deleted file mode 100644 index 551a21c..0000000 --- a/.changeset/fts-no-duplicate-rows-on-backfill.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@atmo-dev/contrail-appview": patch ---- - -Stop accumulating duplicate FTS rows when records are re-applied during backfill. - -The FTS-sync path only deleted an existing FTS row before inserting when the -record was already in `existingMap`. Backfill runs with `skipReplayDetection`, -which leaves `existingMap` empty, so every re-applied record looked brand-new -and appended another FTS row. The FTS virtual table has no uniqueness -constraint, so these accumulated, and the search JOIN fanned each event out into -one result row per duplicate. Make the delete-then-insert unconditional so FTS -sync is idempotent regardless of replay detection. - -The unconditional delete also evicts a stale FTS row when an update clears all -searchable fields: in that case there is no content to re-insert, but the prior -row must still be removed so old terms stop matching. diff --git a/packages/contrail-appview/CHANGELOG.md b/packages/contrail-appview/CHANGELOG.md index 2258d4b..004b210 100644 --- a/packages/contrail-appview/CHANGELOG.md +++ b/packages/contrail-appview/CHANGELOG.md @@ -1,5 +1,27 @@ # @atmo-dev/contrail-appview +## 0.12.2 + +### Patch Changes + +- 32ace91: Stop accumulating duplicate FTS rows when records are re-applied during backfill. + + The FTS-sync path only deleted an existing FTS row before inserting when the + record was already in `existingMap`. Backfill runs with `skipReplayDetection`, + which leaves `existingMap` empty, so every re-applied record looked brand-new + and appended another FTS row. The FTS virtual table has no uniqueness + constraint, so these accumulated, and the search JOIN fanned each event out into + one result row per duplicate. Make the delete-then-insert unconditional so FTS + sync is idempotent regardless of replay detection. + + The unconditional delete also evicts a stale FTS row when an update clears all + searchable fields: in that case there is no content to re-insert, but the prior + row must still be removed so old terms stop matching. + + - @atmo-dev/contrail-base@0.12.2 + - @atmo-dev/contrail-authority@0.12.2 + - @atmo-dev/contrail-record-host@0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail-appview/package.json b/packages/contrail-appview/package.json index 105fb9a..2c34590 100644 --- a/packages/contrail-appview/package.json +++ b/packages/contrail-appview/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-appview", - "version": "0.12.1", + "version": "0.12.2", "description": "Public-records appview for contrail — jetstream ingestion, backfill, query layer, feeds, labels, profiles, per-collection XRPC routes.", "type": "module", "sideEffects": false, diff --git a/packages/contrail-authority/CHANGELOG.md b/packages/contrail-authority/CHANGELOG.md index b22d1c6..7df5b30 100644 --- a/packages/contrail-authority/CHANGELOG.md +++ b/packages/contrail-authority/CHANGELOG.md @@ -1,5 +1,11 @@ # @atmo-dev/contrail-authority +## 0.12.2 + +### Patch Changes + +- @atmo-dev/contrail-base@0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail-authority/package.json b/packages/contrail-authority/package.json index e9b5f7a..c2fe2d8 100644 --- a/packages/contrail-authority/package.json +++ b/packages/contrail-authority/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-authority", - "version": "0.12.1", + "version": "0.12.2", "description": "Default space-authority implementation for contrail — member list, invites, app policy, credential issuance. Contrail's binary-membership ACL flavor; for ladder-style access levels see @atmo-dev/contrail-community.", "type": "module", "sideEffects": false, diff --git a/packages/contrail-base/CHANGELOG.md b/packages/contrail-base/CHANGELOG.md index 6f563b4..76e4b60 100644 --- a/packages/contrail-base/CHANGELOG.md +++ b/packages/contrail-base/CHANGELOG.md @@ -1,5 +1,7 @@ # @atmo-dev/contrail-base +## 0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail-base/package.json b/packages/contrail-base/package.json index 2bac115..74d7a51 100644 --- a/packages/contrail-base/package.json +++ b/packages/contrail-base/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-base", - "version": "0.12.1", + "version": "0.12.2", "description": "Shared infrastructure for the contrail family of packages — interfaces (SpaceAuthority, RecordHost, CommunityIntegration), credential primitives, binding resolvers, realtime infra, schema scaffolding. No routes, no tables of its own.", "type": "module", "sideEffects": false, diff --git a/packages/contrail-community/CHANGELOG.md b/packages/contrail-community/CHANGELOG.md index b55968d..3ce8ae5 100644 --- a/packages/contrail-community/CHANGELOG.md +++ b/packages/contrail-community/CHANGELOG.md @@ -1,5 +1,12 @@ # @atmo-dev/contrail-community +## 0.12.2 + +### Patch Changes + +- @atmo-dev/contrail@0.12.2 +- @atmo-dev/contrail-base@0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail-community/package.json b/packages/contrail-community/package.json index 2e5e287..cfac893 100644 --- a/packages/contrail-community/package.json +++ b/packages/contrail-community/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-community", - "version": "0.12.1", + "version": "0.12.2", "description": "Community module for contrail — community-owned spaces with tiered access levels (member → moderator → admin), invite tokens, DID provisioning, and the access-level reconciler that keeps spaces_members in sync.", "type": "module", "sideEffects": false, diff --git a/packages/contrail-record-host/CHANGELOG.md b/packages/contrail-record-host/CHANGELOG.md index 19527d0..76e3524 100644 --- a/packages/contrail-record-host/CHANGELOG.md +++ b/packages/contrail-record-host/CHANGELOG.md @@ -1,5 +1,11 @@ # @atmo-dev/contrail-record-host +## 0.12.2 + +### Patch Changes + +- @atmo-dev/contrail-base@0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail-record-host/package.json b/packages/contrail-record-host/package.json index 22712c5..fd21d45 100644 --- a/packages/contrail-record-host/package.json +++ b/packages/contrail-record-host/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-record-host", - "version": "0.12.1", + "version": "0.12.2", "description": "Default record-host implementation for contrail — stores records and blobs for permissioned spaces, enforces local enrollment as the host's consent layer.", "type": "module", "sideEffects": false, diff --git a/packages/contrail/CHANGELOG.md b/packages/contrail/CHANGELOG.md index f1d8879..5aa1de8 100644 --- a/packages/contrail/CHANGELOG.md +++ b/packages/contrail/CHANGELOG.md @@ -1,5 +1,15 @@ # @atmo-dev/contrail +## 0.12.2 + +### Patch Changes + +- Updated dependencies [32ace91] + - @atmo-dev/contrail-appview@0.12.2 + - @atmo-dev/contrail-base@0.12.2 + - @atmo-dev/contrail-authority@0.12.2 + - @atmo-dev/contrail-record-host@0.12.2 + ## 0.12.1 ### Patch Changes diff --git a/packages/contrail/package.json b/packages/contrail/package.json index f5097d3..53e25d0 100644 --- a/packages/contrail/package.json +++ b/packages/contrail/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail", - "version": "0.12.1", + "version": "0.12.2", "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 c6d5003..310d7cd 100644 --- a/packages/lexicons/CHANGELOG.md +++ b/packages/lexicons/CHANGELOG.md @@ -1,5 +1,11 @@ # @atmo-dev/contrail-lexicons +## 0.4.15 + +### Patch Changes + +- @atmo-dev/contrail@0.12.2 + ## 0.4.14 ### Patch Changes diff --git a/packages/lexicons/package.json b/packages/lexicons/package.json index 02bdf2c..0cab6b9 100644 --- a/packages/lexicons/package.json +++ b/packages/lexicons/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-lexicons", - "version": "0.4.14", + "version": "0.4.15", "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 617787c..8e0b9e1 100644 --- a/packages/sync/CHANGELOG.md +++ b/packages/sync/CHANGELOG.md @@ -1,5 +1,7 @@ # @atmo-dev/contrail-sync +## 0.12.2 + ## 0.12.1 ## 0.12.0 diff --git a/packages/sync/package.json b/packages/sync/package.json index 5631640..559587d 100644 --- a/packages/sync/package.json +++ b/packages/sync/package.json @@ -1,6 +1,6 @@ { "name": "@atmo-dev/contrail-sync", - "version": "0.12.1", + "version": "0.12.2", "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